Genesis
The genesis block is compiled into the node (core.DefaultNetZeroTestnetGenesisBlock). A fresh data directory gets it automatically; there is no init step and no genesis file to distribute. A test pins its hash so it cannot drift.
Fields
| Field | Value |
|---|---|
| Hash | 0x347a85f05266dc87e3b627e0a077516b974a68e6c28b45a5ef101fefade3b975 |
| Number | 0 |
| Timestamp | 0x68d4a800 (2025-09-25 00:00:00 UTC) |
| Gas limit | 30,000,000 |
| Base fee | 1,000 gwei |
| Difficulty | 1 |
| Extra data | "NetZero Chain testnet" padded to 32 bytes · 10 × 20-byte validator addresses · 65 zero bytes |
Validator seats at genesis
| Seat | Address |
|---|---|
| 0 | 0xb3eAC5879185f77091CA3211c8eC25687b24e552 |
| 1 | 0x00447C95169f21ec657F42569685029ecdE63d0a |
| 2 | 0x1815d98fD047992260aC28571E22C752E01687A9 |
| 3 | 0xa2e048775Bd6a8EE07B14748Ae71F682D8311a2e |
| 4 | 0x32281c1021101c09FbC720B12Aa43b035fA83BC8 |
| 5 | 0x894F9271e394aAaEE906379f2D139Dab00345E2F |
| 6 | 0x50FA1ce6f82ff0094B281625eFa6aD241e73391a |
| 7 | 0x978448840461AC21bDA33952A722e32CAb687C56 |
| 8 | 0x082289ea4df869Cb2D5815cb4ef88E4BF1F2459B |
| 9 | 0x470dFD615b0f16BFB34ea06cfa1D9f15001F2671 |
These are test keys derived from fixed strings (netzero-testnet-validator-N); cmd/nzc-testkeys prints them. A mainnet genesis uses keys generated in hardware by each operator.
Verify your node
curl -s -X POST http://127.0.0.1:8545 -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x0",false],"id":1}'The hash must match the value above. If it does not, you are on a different network (or a reset testnet; check Testnet Status).
Chain configuration in the genesis
All Ethereum forks through Shanghai are active from block 0. The netzero section carries the consensus and economic parameters listed in Chain Parameters. Every node checks the stored configuration against the compiled one on start and refuses incompatible changes.
