BN254 scalar field

All public inputs and commitments live in
The contract range-checks every public input against p before verification.

Grumpkin

Grumpkin’s base field is BN254’s scalar field. Elliptic-curve operations inside a BN254 circuit are therefore native. It has prime order.

Poseidon2 T4

On-chain hashing uses Poseidon2T4Unrolled, a linked library with hash2, hash3 and hashMany. It must match the Noir implementation exactly. The library is deployed once per chain and linked into the implementation at compile time.

LeanIMT

A Lean Incremental Merkle Tree (from zk-kit) grows its depth as leaves are added, up to 32. Veilify keeps a persistent set of every root the tree has had. A proof against any historical root is accepted, because the tree is append-only. Double-spends are stopped by nullifiers, not root freshness.