Glossary
Short definitions of the terms used across the noircash documentation, with links to where each is explained.
Bonding curve
The Pons contract NOIR trades on from launch until graduation. It sells NOIR for ETH and buys it back, at a price set by its reserves. → The pool
Commitment
The hash stored in the tree for a note: cm = H(1, stub, shares). It reveals neither the owner nor the amount.
→ Notes
Creator fee
The part of every Pons trade fee paid to NOIR's creator fee recipient, the fee harvester: the standard fee minus Pons' 30% share, plus the creator tax if there is one (NOIR has none). Paid in ETH. → Fees
Creator tax
An optional fee a Pons launch can add to every trade on top of the standard fee, set at launch and frozen. NOIR launches with none (0%), so a trade pays only Pons' 1%. → Fees
CRS
The common reference string: public parameters the prover loads before proving. The app serves its own copy so that proving contacts no third party. → The circuit
Dummy note
A zero-value input or output that fills an unused slot, since every transaction has exactly two inputs and two outputs. It looks like any other note on-chain. → The circuit
EIP-712
The Ethereum standard for signing typed data. The wallet signs Spend(bytes32 transaction) under the vault's
EIP-712 domain for every private transaction, and the circuit checks that signature.
→ Keys
EntryPoint
The ERC-4337 contract (v0.8) that bundlers call. It asks the vault to validate a private transaction, pays the gas from the vault's deposit, then runs the execution step. → Gas
ERC-4337
The account abstraction standard. The vault is itself an ERC-4337 account, so a private transaction travels as a UserOperation sent by a bundler, and the user's address never signs or pays for it. → Gas
ExtData
The public part of a private transaction that the proof does not compute but is bound to: recipient, allowed caller, gas fee, caller data and the two note ciphertexts. Its hash is a public input, so nobody can change it after the wallet signs. → Contracts
Fee harvester
FeeHarvester, NOIR's Pons creator fee recipient: it receives NOIR's creator fees in ETH. Its harvest
function keeps the vault's gas deposit funded and spends the rest on NOIR, which it donates to the vault.
→ Contracts
Gas fee
The network fee of a private transaction, paid in shares out of the spent notes (ext.gasFee). It must cover the
operation's maximum gas cost plus 20%, valued at the price average. → Fees
Gas reserve
The NOIR collected from gas fees, held by the vault until the harvester sells it for ETH (when the gas deposit is short) or donates it to holders. → Gas
Graduation
The moment NOIR moves from its bonding curve to its Uniswap v4 pool, once the curve has collected 4.2 ETH. It takes
two permissionless calls on the Pons factory, graduate and createGraduatedPool. → The pool
Harvest
A call to FeeHarvester.harvest(), open to anyone for a 0.5% tip: it claims the creator fees, tops up the gas
deposit, and buys NOIR for the vault within 3% of the price average. → The vault
Indexer
An optional service that stores every vault event and serves it to all wallets alike. Wallets check its data against the on-chain root and fall back to the chain. → The note tree
Note
A private piece of value: a number of vault shares owned by one key. On-chain it is only a commitment and an encrypted payload that only the owner can read. → Notes
Nullifier
The value published when a note is spent: nf = H(2, nk, cm, index). Only the owner can compute it, it cannot be
linked back to the note, and the contract refuses the same nullifier twice. → Notes
Nullifier key
nk, the secret derived from the activation signature that proves ownership of a note inside the proof and
derives its nullifier. → Keys
Owner key
opk = H(nk, wallet key), the public key registered on-chain. Notes are made out to it, and spending needs both
nk and a signature from the wallet key it binds. → Keys
Placeholder proof
Random bytes of a real proof's size, used to estimate a UserOperation's gas. The vault reports it as a failed signature, which bundlers accept while estimating, so the wallet signs and proves only once. → Gas
Pons
Pons V2, the launchpad on Robinhood Chain that created NOIR. It runs NOIR's bonding curve and graduated pool and collects the trade fees. → Trust model
Price average
The vault's moving average of NOIR's market price (tokensPerEthEma), read from the curve or the Pons pool and
used to value gas fees and bound harvester trades. Each block's price (the last one poked in it) enters clamped to ±10% of the average
with weight 1/8, so the average moves at most 1.25% per L1 block. → Gas
Privacy set
The notes a spend hides among. A proof shows that the spent notes are somewhere in the note tree without saying which, so the more notes the tree holds, the better every user is protected. → Key concepts
Public NOIR
NOIR held at an address like any ERC-20 balance: visible to everyone and not earning the holder yield. NOIR bought anywhere but through the router, and NOIR taken out of the vault, is public until shielded. → Public balances
Registration
Publishing your owner key and viewing key on the vault (register). After it, others can send you private notes.
It does not change NOIR held publicly at your address. → Get started
Root history
The last 64 roots of the note tree, all accepted by the contract, so a proof made against a slightly older root still works. Final roots of full trees stay valid forever. → The Merkle tree
Sale escrow
Where the NOIR of an ERC-4337 sale waits between validation and execution (pendingSales). Execution sells it for
ETH through the router; if that fails, the NOIR goes to the ETH recipient. → Sell
Seed shares
The shares of the NOIR the deployer bought with 0.001 ETH at deployment and locked in a note nobody can spend. They keep the first holders from being diluted by the vault's virtual shares or by fees donated before them. → NOIR on Pons
Share
The unit a note holds. One share is worth NOIR in the vault / total shares, and donated fees raise that value
without adding shares. → The vault
Shield
Moving public NOIR into the vault as a private note (approve the vault, then shield). A purchase through the
router is shielded in the same transaction. → Public balances
SIWE
Sign-In with Ethereum (EIP-4361). The message your wallet signs to activate privacy is in this form and names the app's domain, so wallets warn if another site asks for it. → Keys
Stub
H(opk, rho, r): a note without its amount. A buyer picks the stub, and the contract completes it with the share
amount known only on-chain. → Notes
Unshield
Moving NOIR out of the vault to an address as public NOIR. The amount becomes visible and stops earning. → Unshield
UserOperation
An ERC-4337 transaction request. A private transaction's UserOperation carries the transaction and its proof as its signature, and the vault as its sender. → Gas
Vault
PrivateVault, the contract that holds the NOIR behind all notes (totalBacking) with the total number of shares
(totalShares). Harvested fees are donated to it. → The vault
Viewing key
The X25519 key pair that encrypts and finds your notes. Anyone with the private part can see your notes but cannot spend them. → Keys
Wallet key
The secp256k1 public key of the wallet that activated privacy, bound into the owner key. Every spend needs a signature by it. → Keys