ॐGYANAGI · SEVA← Back to GYANAGI
ॐ
SEVA · MISH RIN LEDGER

Give. Seek. Serve.

A transparent charitable ledger concept for receiving contributions and reviewing requests for aid. Contributions are recorded after confirmed payment; aid requests are assessed by Mishrin as an advisory layer and require authorised human approval before money can leave the fund.

Live Mishrin Ledger Balance
INR₹—
USD$—
Loading recorded ledger balance…

Seek Help

Tell Seva what you need, why it is urgent, and how the requested amount would be used. Mishrin can structure and assess the request, but it cannot independently transfer money.

For immediate danger or a medical emergency, contact local emergency services or a qualified professional first.
MISH RIN LEDGER

Public trust, private controls.

The public page shows only aggregate information. Individual donor/request details and ledger controls belong behind authenticated administration. A production deployment should use a persistent database, payment-provider webhooks, audit logs, encryption, backups, and appropriate charitable/tax registrations.

Recorded donations—
Fund balance—
Aid requests—
+usd.toLocaleString('en-US',{minimumFractionDigits:2,maximumFractionDigits:2});$('heroBalanceStatus').textContent=d.configured?(usd===null?'INR balance loaded; USD conversion unavailable':'INR balance loaded · USD converted at live rate'):'Ledger setup mode — no funds recorded';$('requestCount').textContent=d.request_count??'0'}}catch{}} $('payBtn').onclick=async()=>{const amount=Number($('donorAmount').value);const status=$('payStatus');if(!amount||amount<1){status.textContent='Enter a valid donation amount.';return}status.textContent='Preparing secure checkout…';try{const r=await fetch('/api/seva/donation/order',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({amount,name:$('donorName').value,email:$('donorEmail').value})});const d=await r.json();if(!r.ok)throw new Error(d.error||'Checkout is not configured.');if(d.checkout_url){location.href=d.checkout_url;return}if(d.key_id&&window.Razorpay){const rp=new Razorpay(d.options);rp.open();return}status.textContent=d.message||'Payment gateway is not configured yet.'}catch(e){status.textContent=e.message}} $('helpBtn').onclick=async()=>{const status=$('helpStatus');const payload={name:$('helpName').value,contact:$('helpContact').value,amount:$('helpAmount').value,category:$('helpCategory').value,story:$('helpStory').value};if(!payload.name||!payload.contact||!payload.amount||!payload.story){status.textContent='Please complete the required fields.';return}status.textContent='Submitting securely…';try{const r=await fetch('/api/seva/aid-request',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)});const d=await r.json();if(!r.ok)throw new Error(d.error||'Could not submit request.');status.innerHTML='Request received. Reference: '+String(d.reference||'pending')+'';['helpName','helpContact','helpAmount','helpStory'].forEach(id=>$(id).value='');loadStats()}catch(e){status.innerHTML=''+e.message+''}} loadStats();