Skip to main content

SRX

Native coin. Used for fees, validator rewards, and staking (Voyager).

Units

1 SRX = 100,000,000 sentri

Everything internal is u64 in sentri. No floats.

Supply

Hard cap (post tokenomics-v2 fork): 315,000,000 SRX. Can't change without another fork.

SourceSRX%
Premine63,000,00020%
Block rewards≤252,000,00080%

Premine

WalletSRXPurpose
Founder21,000,000Treasury, ops
Ecosystem21,000,000Grants, partnerships
Early Validator10,500,000Validator incentives
Reserve10,500,000Emergency

Tokenomics v2 fork (2026-04-26)

The original v1 schedule (1 SRX × 42M halving × 210M cap) had a math gap: geometric series asymptoted at 84M from mining + 63M premine = 147M effective max, leaving 63M of the 210M cap unreachable. The v2 fork retargets emission to BTC-parity 4-year halving (126M blocks at 1s) + raises cap to 315M. Geometric: 1 SRX × 126M × 2 = 252M from mining + 63M premine = 315M (reachable). Premine ratio drops 30% nominal v1 → 20% v2 (industry-leading optics). Validator runway extended to ~year 20.

Activated:

  • Testnet: h=381651 (2026-04-26 afternoon)
  • Mainnet: h=640800 (2026-04-26 evening, env-armed)

Halving (post v2 fork)

Block reward halves every 126M blocks (~4 years, BTC parity at 1s blocks).

EraBlocks (post-fork-relative)RewardStart (~)
00 – 125.9M1 SRX2026
1126M – 251.9M0.5 SRX~2030
2252M – 377.9M0.25 SRX~2034
3378M – 503.9M0.125 SRX~2038

Pre-fork blocks (history before fork-height was reached) used the v1 42M-block schedule. Halving count is fork-aware: pre-fork uses height / 42M, post-fork uses (height - fork_height) / 126M so cumulative halvings don't reset at fork moment.

fn get_block_reward(height: u64) -> u64 {
let halvings = halvings_at(height); // fork-aware
BLOCK_REWARD.checked_shr(halvings).unwrap_or(0)
.min(max_supply_for(height) - total_minted)
}

Fees

Min fee: 0.0001 SRX (10,000 sentri).

ceil(fee/2) → burned permanently
floor(fee/2) → block validator

Odd sentri goes to burn. Eventually burns > rewards = deflation.

Address Format

0x + 40 hex chars. Derived from Keccak-256(secp256k1 pubkey)[12..32]. Same as Ethereum — MetaMask/ethers.js work out of the box.

Constants

CHAIN_ID = 7119
MAX_SUPPLY = 21_000_000_000_000_000 // 210M in sentri (v1, pre-fork)
MAX_SUPPLY_V2 = 31_500_000_000_000_000 // 315M in sentri (v2, post-fork)
BLOCK_REWARD = 100_000_000 // 1 SRX (unchanged across forks)
HALVING_INTERVAL = 42_000_000 // blocks (v1)
HALVING_INTERVAL_V2 = 126_000_000 // blocks (v2, BTC-parity 4y at 1s)
BLOCK_TIME_SECS = 1
MIN_TX_FEE = 10_000 // 0.0001 SRX
CHAIN_WINDOW_SIZE = 1000
STATE_ROOT_FORK_HEIGHT = 100_000
TOKENOMICS_V2_HEIGHT = u64::MAX // env-overridable; default disabled