Key concepts
The handful of ideas behind voidcash - notes, the vault, the privacy set, keys, registration, private gas, the exit fee and the burn, and VOID.
Notes, commitments and nullifiers
- A note is a private amount of one asset, HYPE or a token the vault lists (today VOID), that belongs to one owner. Your private balance in each asset is the sum of your unspent notes of it.
- A commitment is how a note appears on-chain: a hash that reveals neither the amount nor the owner. Next to it the chain stores the note's contents encrypted to the owner, so the owner's app can find and read it.
- A nullifier marks a note as spent. Only the owner can compute it, and nobody else can link it back to the note.
→ Notes, commitments and nullifiers
The vault
The vault is one contract on Elysium that holds the HYPE and the tokens behind every note. Three actions use it:
| Action | From | To |
|---|---|---|
| Shield | HYPE or a listed token in your wallet | A new private note |
| Send privately | Your notes | A new note for the recipient, plus your change |
| Unshield | Your notes | Public HYPE or tokens at any address |
A note holds an amount of one asset. It does not earn or change in value: it holds what was put in it until it is spent.
Tokens are listed one at a time by the vault's admin; today they are VOID, VOLTA (Volta's own token), BLOB and YIELDEX. Shielding a token takes two wallet transactions, an approval and the shield, which the app sends from one click. Payment links and private addresses work with HYPE only.
The privacy set
Every note ever created lives in one Merkle tree. A proof shows that you spend some notes in that tree without saying which ones. The privacy set is the number of notes you hide among: the more people use voidcash, the larger it is, and the better everyone is protected. The app shows it in its figures as "Privacy set".
Shields and unshields are public. Early on the set is small, so the timing and amounts of what goes in and out matter more. Staying private has practical advice.
Keys from one signature
You never write down a new seed phrase. Your wallet signs one message, and the app derives from it:
- a viewing key, which finds and decrypts your notes;
- a nullifier key, which proves inside the proof that you own a note.
Spending also needs a fresh signature from your wallet for each transaction. So a leaked activation signature reveals your notes but cannot move them. Your wallet must sign deterministically, so that the same message always gives the same keys.
→ Keys
Registration
You register your public keys on the vault once, with one ordinary transaction. Other people's apps read them from the vault to send you private notes at your address. Registration is optional: you can shield, send and unshield without it. It is public, so anyone can see that your address uses voidcash, but not what it holds.
A private address is a second way to be paid: a link anyone can pay, which does not show your address. See Private address.
Private gas
If a private transaction were sent from your wallet, the chain would show your address as its sender. So the vault is its own ERC-4337 account: a bundler submits each private action, and the action pays its gas in HYPE from the notes it spends. What an action overpays for gas goes to the fee collector, never to the bundler.
Gas is always HYPE. A private action that moves a token pays its gas from one of your private HYPE notes, spent in the same proof, so you need some shielded HYPE to move a token privately.
→ Gas
The exit fee and the burn
Shielding and private sends carry no fee beyond gas. An unshield pays 1% of what it pays out, in the asset it pays. A HYPE exit fee goes to the fee collector, which splits what arrives in half:
- half to the team;
- half buys VOID on its Volta pool and sends it to the dead address, where nobody can spend it.
A token's exit fee, VOID's included, goes to the team in that token, and feeds no burn.
An unshield that pays out more than the vault's large-exit threshold for its asset waits 24 hours before it is paid, and the vault's guardian can stop it in that time. A token also has a cap on what its exits can pay out at once in each 24-hour window; exits beyond it wait 24 hours too.
VOID
VOID is an ordinary ERC-20 launched on Volta, a launchpad on Elysium. It trades on a Uniswap v4 pool against native HYPE. VOID is the vault's first listed token: you can shield it, send it privately and unshield it like HYPE. It gives no claim on the vault's HYPE and is not needed to use voidcash, and the app does not trade it. It is burned by the fee collector's buys and by Volta's own buyback.
→ VOID
Introduction
voidcash is a private balance of HYPE and listed tokens on Elysium. Shield into encrypted notes, send privately, and unshield to any address.
Whitepaper
The technical paper behind voidcash - notes, keys, transactions, private gas, exits, the fee and the burn, and the security and privacy analysis.