rh chain in / zcash out
live
exit in street name.
tokenized stock positions are fully public. every holder, every size, every entry. zecco burns the position on robinhood chain and hands you a shielded note on zcash. the total burned stays verifiable by anyone. who burned what stops being anyone’s business.
contract0x1b9b99df6314c9fa84e595706208effd3f6283d4
01 / the problem
a stock token position is a public record.
on robinhood chain the position is the ledger entry. it carries the mint, the size and the address that holds it, and it stays legible to anyone with an explorer tab open. privacy was never removed from the design. it was never in it.
100%
of holders, visible
every wallet holding a stock token is listed by address and sorted by size. one explorer query, no permission needed.
1 tx
prices your entry
the fill is a transaction, the transaction has a timestamp, the timestamp has a price. your basis is public arithmetic.
0
quiet exits
sell and the tape shows it. transfer and the graph follows it. hold and the balance says so. there is no private door.
02 / how it works
three moves, two chains, one thing only you keep.
- 01robinhood chain
burn the position.
the stock token goes into the burn contract and does not come back. the contract writes two things in public: a commitment hash and an amount. no mint, no holder, no entry price.
- 02your machine
derive the commitment.
mint, amount, salt and burn tx hash down to one value. you compute it locally and publish only the hash. the four inputs together are the opening, and they never leave.
- 03zcash
hold a shielded note.
a note lands in your shielded pool carrying that opening. your viewing key reads it. to everyone else it is one more leaf in a tree of identical leaves.
03 / the system
one system, four parts.
burn contract
robinhood chaintakes the token, keeps it. emits the commitment hash and the amount. holds no key that can mint anything back.
commitment
derived locallyone hash over mint, amount, salt and burn tx. the only thing about your position that ever becomes public.
shielded note
zcashcarries the opening to you and nobody else. spendable, transferable, unreadable without your viewing key.
indexer
anyone can run itreplays public burn events and rebuilds the tree. keeps no secret, grants no permission, can be replaced by you.
04 / the rule
notes outstanding equals tokens burned. always.
the burn contract publishes every amount it ever destroys. the tree is rebuilt from those events and nothing else. hold public data from both chains and you arrive at the same root and the same total as everyone else. supply cannot drift from burns, and nobody has to be asked whether it did.
sum(notes) == sum(burned) — checked at every block, by anyone, forever.
05 / the record
the record, as it happens.
syncing
total burned
—
units, all mints
notes outstanding
—
leaves in the tree
tree root
—
derived from events
replaying burn events…
this is the entire public surface: a hash, an amount, a block. no mint, no holder, no entry. the numbers above run on simulated data so you can watch the shape of it without spending anything.
burn one yourself06 / no minter
nobody mints your note.
there is no privileged key because there is nothing for one to sign. you derive the commitment yourself. the indexer only watches public events and rebuilds the tree from them. if it lies, your root stops matching. if it disappears, you rebuild the same root from the same events. nothing to trust, only things to check.
what is public
- commitment hashone opaque value per burn.
- amount burnedso the total can be checked.
- block and txso the event can be replayed.
- tree rootthe same for everyone who looks.
what stays yours
- the mintwhich stock it was.
- the saltwhat makes the hash yours.
- the linkburn tx to note, never published.
- the balancereadable by your viewing key only.
07 / questions
the things worth asking.
what exactly becomes public when i burn?
a commitment hash and an amount, written by the burn contract along with the usual block and transaction data. the mint is not published, the holder is not published, and the note that lands on zcash is not linked to the burn in public.
if the amount is public, is the position really private?
amounts are published so the total can be audited, but they are not attributed. an observer sees that some quantity was burned in some block. tying that to a person, a mint or a note would require the opening, which never leaves your machine.
who can mint a note?
no one. there is no minter key. the commitment is derived by you from your own inputs, and the tree is rebuilt from public events by whoever cares to run an indexer.
what happens if the indexer goes away?
you run another one. it replays burn events from robinhood chain and arrives at the identical root. the indexer is a convenience, never an authority.
can supply drift away from what was burned?
not without being visible. every note corresponds to one burn event, and both sides are public quantities, so the equality is checkable at any block by anyone.
is this live?
live. the burn contract is deployed at 0x1b9b99df6314c9fa84e595706208effd3f6283d4. the app published on this site still runs on simulated data, so the flow and the invariant can be inspected without spending anything.
exit in street name.
the ledger keeps the total. it forgets the name. try the flow on simulated data, or follow the contract as it fills.