| Term | Definition |
|---|---|
| Note | A private UTXO: an encrypted value container owned by an inbox key |
| Note commitment | Poseidon2(rkCommitment, valueCommitment, nullifiersHash). The only public trace of a note. |
| Note nullifier | Poseidon2(commitment, nk). Published when the note is spent. |
| Transaction nullifier | Poseidon2(nk, nonce·2³² + chainId, rkHash). Stops replay of a signed transaction. |
| Nullifiers hash | Hash of the six input nullifiers, bound into every output commitment |
| Viewing key | (pk, nk, ivk, ovk), derived from a wallet signature. Reads, never spends. |
| Inbox key | (pk, keyData, pnk, ek), registered on-chain once |
| Nullifying key (nk) | Secret used to derive nullifiers |
| Public nullifying key (pnk) | Poseidon2(nk) |
| Incoming viewing key (ivk) | Decrypts incoming notes |
| Outgoing viewing key (ovk) | Recovers notes you sent |
| Encryption key (ek) | Grumpkin point ivk · G |
| veiled balance | Sum of your unspent notes. Also called veiled balance. |
| Deposit | Deposit public funds into the pool |
| Private transfer | Private payment between inbox keys |
| Private withdrawal | Exit to a public address. Amount and recipient are public. |
| Private swap | Swap through a Uniswap V2 router inside the pool |
| Instant withdrawal | Proven and sent immediately |
| Round withdrawal | Queued and sent at a round |
| Round | A scheduled departure time for Round withdrawals |
| Join cutoff | Minutes before a round after which new withdrawals roll to the next round |
| Staggered withdrawal | One exit divided into up to five independently scheduled legs |
| Intent | A prepared withdrawal returned by veilify_prepareWithdrawal |
| Gas reserve | Native amount set aside per Round leg |
| Veilify Network | The virtual EVM network your wallet signs for |
| Virtual chain ID | Chain ID of Veilify Network. VIRTUAL_CHAIN_ID in the contract. |
| Settlement chain | Robinhood Chain, where the pool lives |
| RPC proxy | The Veilify Network endpoint |
| Relayer | Allowlisted submitter that pays gas and collects the proven fee |
| Gatekeeper | Service that screens and approves or rejects deposits |
| Gas escrow | ETH sent with a deposit to pay the gatekeeper’s gas |
| Trace key | Gatekeeper-chosen key bound into a deposit note, for retrospective taint recovery |
| Pull intent | EIP-712 consent letting the gatekeeper pull an ERC-20 deposit |
| Privacy pool | The Veilify pool contract |
| LeanIMT | Lean Incremental Merkle Tree, depth ≤ 32 |
| Poseidon2 T4 | ZK-friendly hash used for commitments and trees |
| BN254 | Pairing curve for proofs |
| Grumpkin | Curve over BN254’s scalar field, used for note encryption |
| UltraHonk | Proof system (Barretenberg) |
| Noir | Circuit language |
| UUPS | Upgrade pattern where the implementation authorizes upgrades |
| Faerie Gold attack | Creating two identical notes so only one can be spent. Prevented by nullifiersHash. |
| Trial decryption | Trying every new note with your ivk to find yours |
Appendix
Glossary
Terms used throughout the Veilify docs.