Letters of disclosure
Answer the auditor. Tell nobody else.
A private bank is not a bank that cannot answer questions. It is one that answers exactly the question asked, to exactly the person asking, and keeps a record that it did. A letter opens one transfer to one reader. The chain keeps the fact and the moment; the figure and the reader stay between you.
- Scoped: one transfer, one reader, revocable by simply not writing the next one
- Verifiable: the reader re-encrypts with your randomness and matches the delta on chain
- Recorded: DisclosureLog.file keeps a timestamped receipt, hashed reader, hashed payload
transfer 0x7c1e…9b04 (block 18,204,311)
from gwen.bankhaus
to atlas.bankhaus
amount 1,250.00 USDG
randomness 0x12a0…e3f7
check Enc(1,250.00, r, pk_atlas) == recipientDelta ✓
receipt DisclosureLog #41 · 2026-10-06 11:52 UTC
How a letter works
You pick the transfer
Every delta you ever sent was built in your browser with a randomness r you kept. The letter is the figure and that r.
The reader checks
They encrypt the figure with your r to the recipient's public key and compare with the delta the chain stores. Equal, or not.
You file the receipt
file(txReference, keccak(reader), keccak(payload)). Anyone can see you answered on that day; nobody can see whom or what.
On chain
function file( string txReference, // which transfer bytes32 viewerHash, // keccak(reader), so receipts cannot be mined for counterparties bytes32 disclosureCommitment // keccak(payload), so the reader can check what they hold ) returns (uint256 receiptId); receiptIdsOf(profile) // your letters, newest last receiptIdsForTransfer(txRef) // every letter about one transfer
Who asks for letters
- Auditors
A year of transfers to one counterparty, opened to one firm, each with a receipt.
- Counterparties
Prove you paid an invoice in full without publishing your balance.
- Courts and regulators
Answer a specific order with a specific figure. The record shows you complied, and when.
- Yourself
Scoped read access for a second device or a tax tool, without handing over the view key.