Skip to content

Krypton tokenomics: the W4 reward model

On 2026-05-30 we ratified all 13 knobs of Krypton's reward model — the decision gate we called W4. The implementation is now built and determinism-proven on a 4-validator network. This post explains what we decided, why, and what the numbers actually mean if you are staking or evaluating the chain.


The problem we were solving

When we started W4, Krypton's execution layer had block.coinbase == 0x0, the base fee went nowhere, and inflation was explicitly zeroed in the chain spec. FeeDistributor — the contract that routes value to validators and delegators — had a real, tested settle() interface but no source of funds behind it. The invariant that prevents phantom rewards (distribute must revert if the source returns 0) meant validators earned exactly nothing.

W4 had to answer: what funds the security budget, at what rate, and on what schedule?


Three candidates, one winner

We evaluated three reward sources against six axes (security-budget adequacy, dilution, implementation cost, value capture, sovereignty alignment, and maturity):

Proof-of-Liquidity / BGT was dropped. Krypton is a Berachain fork, so PoL is technically "free," but keeping it would mean importing a two-token economy (BERA/BGT), a bribe market, vault whitelisting, and boost accounting — the entire Berachain economic identity that the sovereignty design explicitly replaces. PoL is also still emission-driven; it does not escape the dilution question, it just routes emissions through LPs and bribes where value leaks away from security.

Fee redirect is sustainable but pays nothing at launch. A new L1 has near-zero fee volume for its first 12–24 months; burning that source before it exists would be pointless.

Inflation is the only source adequate from block 1. It is dilutive, so it must taper — but it gives the chain a real security budget immediately and is production-proven (Cosmos SDK x/mint, Polkadot NPoS).

The ratified model combines both non-PoL sources: inflation as the primary source at launch, fee redirect as the growing source, with the inflation cap declining as fees mature. This is the Ethereum lesson — issuance should fall as fees rise — expressed as an explicit, governable schedule.


Supply and allocation

Genesis total supply: 1,000,000,000 KRY. Total supply grows only via the capped inflation source after genesis, net of any base-fee burn once governance enables it.

KRY is the native gas and staking token. Delegation sends native KRY into StakingRouter, which mints non-transferable stKRY (ERC20Votes) as the reward-share and governance-weight receipt. Raw KRY does not vote — this prevents flash-loan governance attacks.

Bucket%KRYVesting
Community & Ecosystem40%400M~25% liquid at TGE; remainder linear over 3–4 years
Treasury / Foundation20%200MGovernance-timelock-controlled; no cliff, spend-rate-limited
Core contributors / team18%180M1-year cliff, 4-year linear
Early backers / investors15%150M1-year cliff, 3–4-year linear
Genesis validators / staking bootstrap7%70MLocked-staked at genesis; unbonds on the standard schedule

Insider buckets (team + backers = 33%) are all behind a 1-year cliff. Community + ecosystem + treasury = 60% is community-aligned.

One genesis bootstrap detail is worth being explicit about: the 7% validator bucket alone represents 7% of total supply bonded — far below the 50% target bonded ratio. Launching that far under-target would drive the bonding-ratio rule to pin inflation at the 8% cap with high early yield until stake caught up organically. The ratified fix (R2/R5) is to lock approximately 40–50% of supply as stake at genesis — the 7% validator bucket plus a genesis-locked slice of the Treasury and Community/Ecosystem buckets — so day-0 bonded is near the 50% target and inflation starts at the intended ~7%, not at the cap.


Inflation schedule

The core mechanism is a bonding-ratio-targeting rule — the same approach used by Cosmos x/mint and Polkadot's ideal staking rate — wrapped in a declining cap so it is a bootstrap subsidy, not a perpetual tax.

ParameterRatified value
goalBonded (target bonded ratio)0.50
inflationInitial7%
inflationMax (cap, year 0)8%
inflationMin (floor, year 0)2%
inflationRateChange0.13 / year
Cap taperinflationMax declines 8% → 1.5% linearly over 8 years
Floor taperinflationMin declines 2% → 0.5% over the same period
Terminal (year 8+)~1.5% cap / 0.5% floor

The adjustment is computed each epoch: if bonded ratio is below 50%, inflation drifts up toward the cap to bid for more stake; if above 50%, it drifts down toward the floor. This is self-regulating — the curve pays more precisely when security is thin, less when over-bonded, without governance touching it.

The cap taper is revenue-gated (R6), not calendar-gated. The band contracts as fee revenue covers the security budget, so the chain cannot taper itself into under-security if fee adoption lags.

What this means for staking yield

Inflation accrues to the whole supply but distributes only to bonded stake, so gross staking yield is approximately inflation / bondedRatio:

Bonded ratioInflationGross yield
30% (under-target)~8%~27%
50% (at target)7%~14%
70% (over-target)~4%~5.7%

At the 50% target, the net yield to a typical delegator is ~11.3% (14% gross × 90% after the 10% treasury cut × 90% after the 10% operator commission). The operator retains roughly 1.3 percentage points and the treasury roughly 1.4 percentage points. By year 8, the same target yields a much lower gross/net, with fees expected to carry the rest of the security budget.


Fee policy

Ratified: redirect 100% of the base fee to FeeSource at genesis (baseFeeBurnBps = 0). Burn is a governance dial, default off.

ComponentGenesis policy
Base fee100% redirect to FEE_SINKFeeDistributor
Priority tipProposer-routed to FeeDistributor, pooled by consensus stake
MEVProposer-keeps at launch; revisit post-GA

Ethereum burns the base fee because it has enormous fee volume — the burn is deflationary. A new L1 with near-zero fee volume that burned its base fee would be eliminating its only organic validator revenue while it has none. The baseFeeBurnBps dial lets governance turn on partial burn later as a smooth parameter change, not a hard fork.


Splits

Every epoch's distributable reward goes through three layers:

CutDefaultCap / notes
Treasury1000 bps (10%)Off the top; governance-set
Validators + delegators pool9000 bps (90%)Split per-validator by consensus weight
— Operator commission (within a validator)1000 bps (10%)Hard cap at 2000 bps (20%); rate-limited changes
— Delegatorsremainder (~90% of validator's gross)Accrued via a MasterChef-style accRewardPerShare accumulator

Net to a delegator: ~81% of the reward their stake earns (90% pool share × 90% after the default 10% commission). All of these are governable via the on-chain governor + timelock.

Slashing interacts cleanly: a slash reduces every delegator's pooled-share redemption pro-rata. Rewards accrue on shares; slashing burns share value. The two compose without touching each other's logic.


Edge and light nodes: zero emissions

Light and edge nodes get zero emissions — ever. The Genesis-Operator / "Krypton Home" program is funded from the Treasury (the 10% cut and the 200M genesis bucket) plus optional fee-discount rebates. No KRY is minted to edge nodes.

This closes what we called decision #4 (the rejected per-Pi emission model) for good. Because the edge budget is a fixed slice of an already-capped pool, it cannot become a dilution spiral: if the treasury runs dry, the program pauses. It cannot mint its way out.


How value reaches validators on-chain

Two IRewardSource implementations plug into the existing FeeDistributor without re-architecting anything:

InflationSource — primary at launch. beacon-kit already mints a fixed amount to a fixed address every block via EVMInflationWithdrawal. The patch re-parametrizes that live mint: the per-block amount becomes a state-carried, curve-derived value, and the destination becomes INFLATION_SINK (a predeploy). InflationSource.settle() transfers the accrued balance into FeeDistributor each epoch.

FeeSource — grows with usage. bera-reth is patched to set block.coinbase = FEE_SINK (hardcoded in the block environment, not relying on a proposer to forward — the proposer-forward variant is non-deterministic and would fork the chain) and to route base fee minus baseFeeBurnBps plus priority tips to FEE_SINK. FeeSource.settle() sweeps the balance into FeeDistributor.

A CompositeRewardSource wraps both; FeeDistributor points at that. Both patches have been built, applied to pristine v1.3.9 / v1.3.3 source, and proven deterministic on a 4-validator network: identical EL stateRoot, CL app_hash, and INFLATION_SINK / FEE_SINK balances across all nodes over 139+ finalized blocks (4+ epochs).

The remaining gate before mainnet is the external audit. Both patches are consensus-critical (a non-deterministic mint amount forks the chain) and are in the audit scope alongside the ABCI bridge.


Governance

Every parameter in this model is a governance knob: inflation band, taper schedule, treasury cut, commission cap, base-fee burn rate, reward-source selection. Changes flow through KryptonGovernor (OZ Governor + TimelockController) with stKRY snapshot voting. No EOA admin key in the steady state. The timelock is the primary defense against flash-loan governance.

For technical details on running a validator node or an overview of node types, see the docs.

Last updated: