—Blockchain Policy · TA-1
Expense auditing and pre-incorporation equity, where the blockchain does exactly one job and the spending never leaves your browser.
Try it yourself
equity.agents.org.in01The problem
Whoever administers an expense system can change an amount, swap an approver, or backdate a claim — and then change the log that would have caught them. The control that fails is not the rule. It is the record.
Spending nobody can verify
One database, one administrator, one set of credentials protecting both the data and its audit trail.
Ownership nobody can prove
Before incorporation there is no register of members. A founder split lives in a chat thread with no timestamp and no signature.
02The tension
Moving records onto a public ledger fixes integrity and creates a worse problem. Vendor relationships, payroll and burn rate become world-readable. The usual answer — a permissioned chain — reintroduces the trusted operator the whole exercise was meant to remove.
So: how do you get independent verification without disclosure?
03The insight
What genuinely requires a chain is a public, adversarial timestamp — a commitment that cannot be backdated, cannot be quietly withdrawn, and is witnessed by parties with no relationship to the company. Databases cannot do that. Neither can one timestamping authority, which is a single point of trust and coercion.
| Ordering and tamper-evidence | SHA-256 hash chain — on the device |
|---|---|
| Attribution | ed25519 signatures — verifiable anywhere |
| Unforgeable timestamp | Merkle root in a Solana memo — on chain |
| Confidentiality | By omission — only the root is published |
| Selective disclosure | Merkle inclusion proof — on the device |
04The product
Four people, five months of spending in four currencies, and a cap table that exists before the company does. The faces are generated from the wallet addresses — there is no account, no directory, and nothing to look anybody up in.
Pied Piper · 5 members
Expense · approved
Jared Dunn
IndiGo · Travel · 104 days ago
$311.75
from ₹26,000 INR
1 USD = 83.40 INR · frozen at submission
05Mechanism one
Edit an old row and its hash changes, which breaks the link to every entry that followed. Rewriting one line means rewriting the whole tail, in public.
06Mechanism two
A Merkle root over a batch is written into an SPL Memo transaction. The entries themselves never leave the browser.
On-chain anchor
SPL Memo payload
eQ1|org_m8kd2p|0-51|6e1ab2c7f4d0a93b5c8e2f71d4a06b93e5c17f8a2d6b04e91c3f7a5d8b2e6d695e7
Vendors, amounts and salaries stayed on the device. Anyone without the entries learns only that a commitment exists.
Public verifiability
Anyone holding the entries can rebuild the tree and check it.
Zero disclosure
Anyone without them learns only that a commitment exists.
Selective proof
One inclusion proof shows one transaction. Nothing else.
07A trap worth naming
A tree commits to hashes as stored. Edit an entry’s payload but leave its stored hash alone and the inclusion proof still verifies perfectly — it proves a hash was published, not that this content produced it.
The fix: recompute the entry hash from its own fields and check it against the leaf, in addition to the path. Only the conjunction is reported as verified.
Found while building the MCP server, which re-implements verification independently — the reason it does not simply import the app’s code.
08No backend
No accounts, no database, no server-side log. Everything that moves between two people uses a transport we do not operate.
| URL fragment | Signed fundraise offers. Fragments are never transmitted to a server. |
|---|---|
| QR code | The same payloads, between two devices with no network at all. |
| Solana | Merkle roots, transfers and payment requests, on a chain nobody owns. |
| Files | AES-256-GCM backups, and a folder inside storage you already trust. |
09Ownership
Founder splits use largest-remainder apportionment, so the parts add back to exactly 100% rather than 99.99%. Options are modelled as options — a right to buy, not stock.
Pied Piper · fully diluted
Exact splits
Floor everything, then leftovers go to the largest fractions.
Vesting with cliffs
Recomputed live. Nothing before the cliff, then it all lands at once.
Agents contribute
An agent gets a wallet for attribution; a named operator legally holds the shares.
10Correctness
An expense stores the amount as incurred, its currency, the rate, and where that rate came from. Store only the converted figure and nobody can later tell 90 EUR at 1.08 from 97 EUR at 1.00.
Expense · approved
Jared Dunn
IndiGo · Travel · 104 days ago
$311.75
from ₹26,000 INR
1 USD = 83.40 INR · frozen at submission
This matters more for crypto than fiat, and structurally: a figure derived from a live price at read time could never participate in the hash. Exclude it and the chain verifies a record with no amounts in it; include it and the hash breaks on the next price tick. Freezing the rate at write is what makes the chain verifiable at all.
11Threat model
| Edits a stored entry | Detected — recomputed hash diverges, every later link breaks |
|---|---|
| Rewrites the whole suffix | Detected once anchored — the published root disagrees |
| Forges an approval | Prevented — needs the signer's private key |
| Compromises our host | Nothing to take — there is no server and no database |
| Clears browser storage | Not covered — this is what backup and folder sync are for |
| Steals a recovery phrase | Not covered — wallet security is out of scope |
| Submits a fake receipt | Not covered — integrity is not truth |
A threat model that claims total coverage is not a threat model.
12Demonstration
The audit view can edit an expense amount behind your back and leave the stored hash alone — exactly what somebody with database access would do.
Integrity check · after tampering
Chain broken at entry 12. 3 of 54 entries no longer verify.
A demonstration a sceptic can run in ten seconds beats any assertion in the paper.
13Policy position
A hash-chained, wallet-signed, publicly anchored statement is timestamped, attributable and tamper-evident — properties a court weighs alongside other evidence. It does not create or transfer legal title, and it is not notarisation in any jurisdiction by default.
Securities law is the sharp edge
A publicly posted bearer link can turn a private placement into a public offering. The interface says so where the link is made.
Erasure versus immutability
A real tension, resolved by publishing only roots. A root is not personal data, so there is nothing on chain to erase.
14Honest limits
15In one line
An unforgeable, non-disclosing, publicly witnessed timestamp. Ordering, attribution, policy and confidentiality are handled by cheaper mechanisms that need no publication at all.
That division is what makes it deployable: a spending record an outsider can verify, and an ownership record that exists before the company does — without publishing your salaries, trusting a vendor, or running a server.
Try it yourself
equity.agents.org.in