Docs / Shrouding and exits
Using Oarkel
Shrouding and exits
How value enters the pool and how it leaves.
On this page
Shrouding
A shroud is one transaction from your wallet to the pool:
- Your browser picks a note owner hash and encrypts the note details to your own key.
- You send ETH, or approve and send $OARKEL, together with the owner hash and the encrypted note.
- The pool takes the shroud fee, computes the note commitment from the amount it actually received, appends it to the note tree and emits it in an event.
Everyone can see that your address deposited a certain amount. From then on, nobody can see what that note does next.
Unshrouding
To withdraw, your browser picks notes that cover the amount, builds a proof and submits it with the recipient address. The pool checks the proof, records the nullifiers, pays the recipient and stores a change note for whatever is left.
The recipient can be any address, including one that has never been used. That is the point: there is no public link between the deposit that funded a note and the exit that spent it.
What stays public
| Event | Public | Private |
|---|---|---|
| Shroud | Depositing address, asset, amount, time | Which note it became |
| Private transfer | That a transfer happened, its fee | Sender, recipient, amount |
| Unshroud | Recipient, asset, amount, time | Which notes paid for it, who owned them |