ReferenceCore release 0.1.0

Constants & domains

Source-derived protocol, note, Merkle, fee, packet and Poseidon domain constants for Core v0.1.0.

Protocol constants

ConstantValue
Core protocol version0.1.0
Note encoding version2
Encrypted note payload version1
Note plaintext / encrypted payload145 / 186 bytes
CPMM fee denominator10,000
Accepted CPMM fee tiers100, 200, 300 bps
Protocol / creator / LP nominal split50% / 20% / 30% remainder
Shield fee5 bps
Permanently locked LP1,000 LP base units (9 decimals)
Merkle depth / capacity16 / 65,536 leaves per generation
Accepted root history32 roots
Page depth / page capacity12 / 4,096 leaves
Pages per generation16
Solana transaction packet limit1,232 bytes
Groth16 curve / proof sizeBN254 / 256 bytes

Domain separators

PurposeHex value
Protocol / note commitment / Private Swap / Unshield0x5a4b43504d4d0003
Owner commitment0x5a4b43504d4f0003
Nullifier0x5a4b43504d4e0003
SDK/Poseidon encoding labelzkcpmm-v2/poseidon/bn254-x5/circom

The labels and values are not secrets. Domain separation is part of the hash construction. For the derivations and limb ordering, see Poseidon, Note model and Nullifiers.

PreviousError codes
Source baseline: frozen Core v0.1.0 / SDK v0.1.1.