This page explains Parallax’s Bitcoin‑inspired emission schedule, coinbase maturity mechanism, and how block rewards are managed in the protocol state.
Parameter | Symbol | Value | Notes |
---|---|---|---|
Initial reward | R₀ | 50 × 10¹⁸ wei | 50 LAX per block |
Halving interval | H | 210,000 blocks | ≈ 4 years at 10 min intervals |
Coinbase maturity | M | 100 blocks | Reward unlock delay |
Lockbox address | — | 0x0000000000000000000000000000000000000042 | State location for maturity records |
Sum of all issued rewards up to each halving epoch (LAX units).
Reward in LAX per block at each epoch.
The Parallax monetary schedule mirrors Bitcoin’s: 21 million total supply, 50 → 25 → 12.5 ... halvings every 210,000 blocks.
calcBlockReward(height):
if height == 0:
return 0
reward = 50 * 1e18
halvings = height / 210000
if halvings > 63:
return 0 // reward effectively zero
divisor = 2 ** halvings
return reward / divisor
Block rewards are locked until maturity — preventing instant spend and ensuring deterministic unlocks.
Finalize(block):
height = block.number
reward = calcBlockReward(height)
unlock = height + CoinbaseMaturityBlocks
if reward > 0:
lockbox[unlock].addr = coinbase
lockbox[unlock].amt = reward
// Pay matured rewards for current height
if lockbox[height].amt > 0:
AddBalance(lockbox[height].addr, lockbox[height].amt)
Clear(lockbox[height])
Parallax enforces predictable scarcity and zero pre‑mine issuance.
totalIssued(upToHeight):
sum = 0
for h in 1..upToHeight:
sum += calcBlockReward(h)
return sum
// approaches 21e6 * 1e18 wei
Reward maturity tracking inside the state trie.
schedKeyAddr(height):
return keccak256("maturity:addr:" || height)
schedKeyAmt(height):
return keccak256("maturity:amt:" || height)
Parallax’s issuance is fully deterministic. Rewards halve every 210,000 blocks until they converge toward zero. Every coin in circulation is traceable to on-chain mining output, making Parallax a fair-launch, work-secured network with no premine or hidden subsidies.