Chain Parameters
Source of truth: params.NetZeroTestnetChainConfig in the node repository. Values are read from the genesis configuration by every node; changing one is a hard fork.
Identity
| Parameter | Testnet | Mainnet intent |
|---|---|---|
| Chain ID | 20500 | decided at mainnet |
| Network ID | 20500 | same as chain ID |
| Genesis hash | 0x347a85f05266dc87e3b627e0a077516b974a68e6c28b45a5ef101fefade3b975 | new genesis |
| Currency | USDn, 18 decimals | USDn, backed 1:1 |
Consensus
| Parameter | Testnet | Mainnet intent |
|---|---|---|
| Engine | NetZero PoSA with attestation finality | same |
| Slot (block time) | 3 s | 3 s |
| Seats | 10 | 10 |
| Quorum for finality | 7 | 7 |
| Epoch (validator-set checkpoint) | 200 blocks (10 min) | 28,800 blocks (1 day) |
| Decay start | block 20,000 (parameter only; conversion needs the ValidatorSet contract, phase 4) | 5 years (52,560,000 blocks) |
| Decay interval | 5,000 blocks | 1 year (10,512,000 blocks) |
| In-turn / out-of-turn difficulty | 2 / 1 | same |
| Recent-seal limit | a seat cannot seal 2 of the last 6 blocks | same |
| Future block tolerance | 2 s | 2 s |
| Vote wait at seal | up to 1.5 s | tune on testnet |
EVM
| Parameter | Value |
|---|---|
| EVM level | Shanghai (all forks through Shanghai active from genesis; no Cancun). The withdrawals list carries mining shares |
| Gas limit | 30,000,000 (validators vote within 1/1024 per block) |
| Base fee | EIP-1559 with floor 1,000 gwei |
| Block coinbase | Fee sink 0x0000000000000000000000000000000000001006 |
PREVRANDAO | 1 or 2 (the difficulty field); not random |
Economics
| Parameter | Testnet | Mainnet intent |
|---|---|---|
| Fee split: Carbon Fund | 50% (5000 bps) | 50% |
| Fee split: miner pool | 40% (4000 bps) | 40% (or 50/0 for years 1–5, founder decision) |
| Fee split: proposer | 10% (1000 bps) | 10% |
| Base fee burn | none | none |
| Block subsidy | none | none |
| Incentive per block | 0.05 USDn (50,000,000 gwei) | 0.05 USDn, halving yearly |
| Incentive Pool genesis balance | 1,000,000 test-USDn | funded against reserves |
| Carbon Fund address | 0x…1001 | contract at the same address |
| Incentive Pool address | 0x…1002 | contract at the same address |
| Shares per block target / cap | 100 / 250 (testnet) | 200 / 1,000 |
| Share anchor age | 4–12 blocks | same |
| Share hash | keccak256 (NZC-SHARE-v1 domain) | RandomY |
| Shares active from | block 29,400 | genesis |
| Share difficulty | starts at 2^22 hashes, retargets per epoch toward the target, ×4 / ÷4 per epoch, floor 2^16 | same rule, RandomY-scaled base |
| Elected-seat bond | 25,000 USDn | tbd |
Genesis allocation (testnet)
| Account | Balance |
|---|---|
Faucet 0xEd79CD281262f3B6e51071B5CE825374fc298217 | 10,000,000 test-USDn |
Incentive Pool 0x…1002 | 1,000,000 test-USDn |
| Each of the 10 validators | 100 test-USDn |
No other balances. On mainnet there is no allocation to any person; the Incentive Pool and liquidity are funded only against reserves the company actually holds.
