Refund of the earlier vault
Every note held in the earlier vault at its last state is refunded in full, automatically, into a private note of the vault.
On 12 October 2026 the earlier ZeroTrace vault (0xf3935bec6247170B28e1755c85957A72f243D84D) was emptied by a forged proof, which its verifier
accepted because of a flaw in the proof system's library (see the
post-mortem). Every note that was still yours in that vault is refunded in
full, into a private note of the vault.
Who is refunded
Every note that was unspent in the earlier vault at its last state, block 86632173, just before it was emptied:
- your own notes;
- payments waiting at your private address;
- payment links paid there and not claimed yet.
A note you had already spent, sold or unshielded by then is not refunded: what it held had already left it.
How much
Each note is refunded what it was worth at that state, to the wei: what unshielding it would have paid. The refund contract holds the whole amount owed to every note, 90,409,186.61 ZERO.
| What | How it is worked out |
|---|---|
A note of s shares | s × (B + 1) / (S + 1,000,000), rounded down |
B, the earlier vault's ZERO at that state | 90,422,335.996 ZERO |
S, its shares at that state | 20,520,873,138,048,082,021,922,500,621,968 |
The ZERO arrive as a new note of the vault, at the vault's share price when the refund is paid. From then on the note earns like any other.
How to get it
Turn on privacy with the same wallet
Open the app and turn on privacy with the wallet you used before. Your keys are the same as in the earlier vault, so the app finds your notes there.
Sign each refund
The app refunds your notes by itself: one refund for every two notes, each asking for one signature in your wallet. You need no ETH: the refund contract pays the gas.
See it in your balance
Each refund shows in your history as Refund, and the ZERO are in your private balance, ready to send, sell or unshield.
A refund above 10,000,000 ZERO is paid 24 hours after you sign it, automatically: the app shows when it arrives, and you need do nothing more. Smaller refunds arrive at once.
A payment link paid in the earlier vault is refunded to whoever opens it: open it on the claim page with privacy turned on, and its ZERO arrive in your own private note.
There is no deadline. A note can be refunded once, by whoever holds its keys.
What stays private
A refund goes through the same ERC-4337 path as a private transaction: your address does not appear on-chain, and the refund lands in a private note only you can read. What a refund makes public is the size of the notes it refunds, as an unshield does.
The refund contract
NoteRefund (0x702DF8c7b312b06Fc6947Faf788C5deF7776DBE1) holds the refund and pays each note once. It checks every claim with the
vault's current verifier, against the earlier vault's note tree as it was at block 86632173, so only a note that was
yours then can be refunded. What is not claimed stays in the contract for its holders, with no deadline; only in an
emergency, with claims paused, can its admin withdraw it.
A refund above 10,000,000 ZERO is recorded when it is claimed and paid 24 hours later; until then the guardian can stop it. Anyone can pay it once the 24 hours have passed, and the team's keeper does.
It runs behind a proxy, like the vault: its guardian can pause claims, and its upgrader can replace its code. Both roles are described in the trust model, and the contract in Contracts.