Skip to content

Glossary ​

Terms used throughout this guide and the API reference.

Keys ​

TermDefinition
nskSpending key. A field element from which every other key is derived. Holding nsk is required to spend. See Connecting a wallet.
ivkIncoming viewing key. Derived from nsk; decrypts notes sent to any address of the account.
nkNullifier key. Derived from nsk; computes nullifiers. Included in a full viewing key.
dDiversifier. 16 bytes that select one address of an account.
Diversifier indexInteger in [0, 2^32) naming one address of an account; addressAt(index). Index 0 is wallet.address.
pkPublic key of one address. Binds a note commitment to its owner.
pk_dDiversified public key of one address. The ECDH target that notes are encrypted to.
ck_dClue key of one address. Lets a sender attach an FMD clue to a note.
dkDetection key secret. Tests FMD clues for every address of the account; can be delegated to a server.
Outgoing keyDerived from nsk; seeds the randomness of every output the account sends. With a payee's address, opens what the account sent to that payee. See Output randomness.
Incoming viewing key (IVK)Encoded ivk (lelantosivk1…). Reads incoming notes; cannot tell which are spent. See Watch-only wallets.
Full viewing key (FVK)An incoming viewing key plus nk (lelantosfvk1…). Reads incoming notes and their spent status.
Shielded addressBech32m string with prefix lelantos encoding d, pk_d, pk, and ck_d. An account has one per diversifier index. See Addresses.

Pool and transactions ​

TermDefinition
MASPMulti-Asset Shielded Pool. The contract holding shielded funds for every registered asset.
NoteA shielded value: one asset, one amount, one owner. Balances are sums of unspent notes.
Commitment (cm)The public hash of a note, appended to the Merkle tree.
Nullifier (nf)A value derived from a note and nk, published when the note is spent. The pool rejects a repeated nullifier.
Merkle treeAppend-only tree of note commitments. A spend proves its inputs are in the tree.
Tree depth (treeDepth)Height of the Merkle tree. Must match the deployed contract and circuit.
Deposit (shield)Moving tokens from a public balance into the pool.
TransferMoving value between shielded addresses. Publishes no amount.
Withdraw (unshield)Moving value from the pool to a public address.
SwapAtomic unshield, trade, and re-shield. See Swap.
Credit noteThe note created by a swap's re-shield leg when the trade fills; quote.credit is its value.
Refund noteThe note a swap re-shields in the input asset when the trade fails or passes its deadline. A handle registration has one too.
HandleA short name in the LelantosNameRegistrar that publishes one shielded address, served as an ENS subname of each parent the deployment holds. See Names.
Published addressThe account's address at PUBLISHED_DIVERSIFIER_INDEX, the one registerName puts under its handle.
Controller keyThe secp256k1 key, derived from nsk, whose signature changes a handle's published value.
EscrowHolding state of a mined deposit before the relayer adds it to the tree; DepositResult.escrow identifies it.
FlushThe relayer's flushBatch transaction, which adds escrowed deposits to the tree.
publicInA deposit's public amount, in circuit units.
publicOutA withdrawal's public gross amount, in circuit units.
ChangeOutput notes returning unspent input value to the sender.
ConsolidationA self-transfer that merges several small notes into fewer notes.
CoverA set of notes whose total is at least the target amount.
DustNotes below the selector's dust threshold.

Amounts ​

TermDefinition
Circuit unitsThe integer amounts used inside the pool (CircuitAmount): note values, publicIn, publicOut.
Base unitsERC-20 base units (10 ** decimals per token; TokenAmount).
Gross / netA withdrawal's or swap's amount before (gross, published) or after (net, delivered) the protocol fee.
MoneyAn amount in both integer spaces, { asset, amount, baseUnits }, as results report it.
scalePer-asset multiplier from circuit units to token units, set in the registry.
indexPer-asset yield index, scaled by RAY. Equals RAY when the asset earns no yield.
RAY10n ** 27n, the fixed-point base for index.
rateThe pool's { gross, supply } pair for a yield-bearing asset. Used to size payments.
bpsBasis points; 1 bps = 0.01%.
depositBps, withdrawBpsPer-asset protocol fee rates for each direction. See Fees.
DenominationA fixed withdrawal amount from an asset's ladder.
LadderAn asset's ascending list of denominations. See Denominations.

Circuit and proving ​

TermDefinition
Circuit shapeNumber of input and output notes a proof supports. The shipped shape is TRANSACT_4X6.
nIn, nOutInput and output counts of the circuit shape (4 and 6).
Groth16The zero-knowledge proof system used for spends.
WitnessThe private inputs to a proof, computed before proving.
zkeyThe proving key file (~33 MB for 4x6).
Prover artifactsThe circuit .wasm and the .zkey needed to prove.
Output shufflingRandomizing the order of output notes so the payee and fee outputs cannot be identified by position.

Detection and sync ​

TermDefinition
Trial decryptionAttempting to decrypt every note with ivk to find the wallet's notes.
FMDFuzzy message detection. Clues let a detection key find probable matches with a tunable false-positive rate.
γ (gamma)FMD precision parameter; controls the false-positive rate.
Sync strategyfull (download all notes, decrypt locally) or matches (server-side detection). See Syncing.
Subscription tokenBearer credential identifying a matches subscription.
CursorPosition in the note feed from which the next sync resumes.
Spent setThe local copy of every published nullifier.

Services and selection ​

TermDefinition
RelayerService that submits spends on chain, pays gas, and flushes deposits. Paid by a shielded fee note.
fmd-webserverRead-only indexer serving encrypted notes, tree chunks, and nullifier chunks.
MetaquoterService returning swap routes and minOut.
NativeAdapterContract that wraps and unwraps ETH for native deposits and withdrawals.
SwapWrapperContract that executes a swap's trade between its two legs.
Permit2Uniswap's token-approval contract, used to authorize deposit transfers.
SFRTSmallest-First, Random Tiebreak. The default coin-selection algorithm.
Spend cooldownMinimum age in blocks before a received note can be spent.
LeaseA note selected by a spend in flight, withheld from other spends until it settles.
opIdCorrelation id of one operation, on its phases, result, errors, and state().ops.