Protocol · NIP-028
30-second blocks
From block 10, the testnet produces a block every 30 seconds instead of every 60. Confirmations arrive twice as fast, while the reward per block is halved and its schedule stretched, so the coins issued per day and the length of each reward step stay exactly as before. Mainnet keeps 60-second blocks; NIP-028 is not scheduled there.
Measured live
Is it really 30 seconds?
Figures from the public RPC and the explorer, refreshed every 30 seconds.
Before and after
What changed at block 10
| Blocks 1–9 | From block 10 | |
|---|---|---|
| Target block time | 60 s | 30 s |
| Block reward | 50,000 XNA | 25,000 XNA |
| Reward step (−5%) | Every 14,400 blocks | Every 28,800 blocks |
| Time between reward steps | ≈ 10 days | ≈ 10 days |
| Coins issued per day | ≈ 72,000,000 XNA | ≈ 72,000,000 XNA |
| Maximum reorg depth | 60 blocks | 120 blocks |
| Reorg depth in time | 60 minutes | 60 minutes |
| Block version | Any valid version | Bit 0x40000000 required |
| Peers accepted | Any supported protocol | Protocol 70029 or newer |
The reward follows 50,000 × 0.95n ÷ 2 XNA, where n counts the 28,800-block
steps. Blocks 1–9 paid 50,000 XNA each, with the 60-second schedule.
Consensus
How the switch is enforced
- Difficulty. Dark Gravity Wave averages the last 180 blocks against each block's own target spacing, so a window that straddles block 10 adjusts gradually instead of jumping.
-
Version bit. Every block from height 10 must set
0x40000000; blocks without it are rejected asbad-version-nip028. Miners on old software cannot extend the chain. - Peers. Once the tip reaches block 10, peers older than protocol 70029 are disconnected. The reset testnet goes further and announces 70030 from the first handshake.
- Reorg cap. The deepest allowed reorganisation doubles to 120 blocks: still 60 minutes.
For developers
Block-based timelocks run twice as fast
Anything counted in blocks (OP_CHECKSEQUENCEVERIFY, height-based
OP_CHECKLOCKTIMEVERIFY, coinbase maturity, confirmation targets) now passes in half the
wall-clock time. Timelocks written as timestamps are unaffected.
| Wait | At 60 s | At 30 s |
|---|---|---|
| 6 confirmations | 6 min | 3 min |
| 100 blocks | 1 h 40 min | 50 min |
| 2,016 blocks | ≈ 1.4 days | ≈ 16.8 h |
| 28,800 blocks | 20 days | 10 days |
Check it yourself
Measure the spacing from the RPC
curl -s -X POST https://rpc-testnet.neurai.org/rpc \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"1.0","id":1,"method":"getchaintxstats","params":[1000]}'
# window_interval / window_block_count = average seconds per block