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
| Constant | Value |
|---|---|
| Core protocol version | 0.1.0 |
| Note encoding version | 2 |
| Encrypted note payload version | 1 |
| Note plaintext / encrypted payload | 145 / 186 bytes |
| CPMM fee denominator | 10,000 |
| Accepted CPMM fee tiers | 100, 200, 300 bps |
| Protocol / creator / LP nominal split | 50% / 20% / 30% remainder |
| Shield fee | 5 bps |
| Permanently locked LP | 1,000 LP base units (9 decimals) |
| Merkle depth / capacity | 16 / 65,536 leaves per generation |
| Accepted root history | 32 roots |
| Page depth / page capacity | 12 / 4,096 leaves |
| Pages per generation | 16 |
| Solana transaction packet limit | 1,232 bytes |
| Groth16 curve / proof size | BN254 / 256 bytes |
Domain separators
| Purpose | Hex value |
|---|---|
| Protocol / note commitment / Private Swap / Unshield | 0x5a4b43504d4d0003 |
| Owner commitment | 0x5a4b43504d4f0003 |
| Nullifier | 0x5a4b43504d4e0003 |
| SDK/Poseidon encoding label | zkcpmm-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.
Source baseline: frozen Core v0.1.0 / SDK v0.1.1.