The last five receipts of a made-up studio
- #1041Agent: Invoice drafterInvoice Sharma Traders for ₹70,800.00
approval.propose26 Oct, 10:28 am - #1042Person: PriyaIssued INV/2026-27/0117 to Sharma Traders
kubera.invoice.create26 Oct, 10:42 am - #1043Person: Priyaapproval.approve
approval.approve26 Oct, 10:42 am - #1044Person: PriyaRecorded ₹70,800.00 on INV/2026-27/0117, fully paid
kubera.payment.record3 Nov, 3:10 pm - #1045INDRA: INDRAPosted the day’s note to #general
sandesh.message.post4 Nov, 12:00 am
01 / 08
Every action leaves a receipt
In INDRA every change is an action: a draft proposed, an invoice issued, a payment recorded, a room marked clean. Each one writes a receipt that says who did it (a person, an agent or INDRA itself), what, and when.
The receipt is written inside the same database transaction as the change. So there is a receipt if and only if the change really happened.
02 / 08
Written as one exact line
To fingerprint a receipt, INDRA first writes it as one line of JSON with every key in alphabetical order and nothing left undefined.
It sounds fussy. It is the point: the same receipt must always produce exactly the same characters, or its fingerprint would change on its own.
03 / 08
A fingerprint of that line
That line goes through SHA-256, which turns any text into 64 hexadecimal digits. The same text always gives the same fingerprint. Change one character and the fingerprint changes completely.
Type in the box, or change one digit, and watch.
04 / 08
Each receipt holds the one before
Every receipt carries one more field:
prevHash, the fingerprint of the receipt before it. And that field is inside the line that gets fingerprinted.So each receipt is tied to everything that came before it. The order is not a matter of trust; it is written into the fingerprints.
05 / 08
A seal only your business can make
Then INDRA signs each fingerprint with your business’s Ed25519 private key. Anyone holding the public key can check the signature. Nobody can make one without the private key.
The stage is checking all five signatures in your browser right now. Gold means exactly one thing in INDRA: the signature verified.
06 / 08
Change one receipt
Say someone edits receipt #1044 in the database after the fact: ₹70,800 becomes ₹7,080. Its contents no longer give the fingerprint that was signed.
Run the check. It stops at exactly that receipt and says why.
07 / 08
The forger rebuilds the chain
A careful forger recomputes the fingerprint of #1044, then of every receipt after it, fixing each link. Now every fingerprint and every link checks out.
But the signatures were made over the old fingerprints, and the forger can’t sign the new ones without your private key. The check fails at #1044 again, this time on the signature.
08 / 08
Check it yourself
Deleting a receipt fails too: the numbers run in sequence, so a gap shows. In the app, Receipts → Verify the chain runs this same check over every receipt your business has.
You can also export a bundle for your CA or an auditor: the receipts, the public key and the rules for checking, so they can verify it offline without trusting INDRA. One honest limit: a receipt proves a record wasn’t changed after it was written, and who wrote it. Whether it was true is what the person’s approval is for.
