Tokenomics
Every constant that affects supply
If a consensus constant that touches supply isn't on this page, that's a bug in this
page. The source of truth is the node's own source code
(src/kernel/chainparams.cpp and src/consensus/params.h), and a
unit test fails automatically if this document and the code ever drift apart.
Supply, in one line
Supply at height N = 14,000,000,000 + 10 × N FIC, less anything provably burned. Fees move existing coins between people and create none.
The premine
| Total | 14,000,000,000 FIC (1.4 × 1018 fils) |
| Where it lives | The genesis block's coinbase, as ordinary spendable outputs |
| Shape | 1,000 outputs of 14,000,000 FIC each |
| When it's spendable | Immediately — genesis outputs are exempt from coinbase maturity |
| Mainnet recipient | Placeholder, pending the genesis key ceremony |
There is no other premine output, no founder reward, no developer fund, and no tax on staking rewards. The project this was forked from had an opt-in developer donation; it was removed from the code entirely, not merely disabled.
Why 1,000 outputs rather than one. A coin must wait for coinbase maturity before it can stake again. Genesis outputs are exempt so the chain can start, but each staked block turns the output it used into a new coinstake output that must then wait out the full maturity period. With a single premine output, the chain would produce one block and then stop — nothing else could stake. With 1,000, a mature genesis output stays available until the first coinstake outputs come of age, after which the chain sustains itself.
Why the mainnet recipient is still a placeholder. It currently pays a provably unspendable public key — a "nothing up my sleeve" point whose private key nobody knows. A mainnet started from it could neither spend nor stake the premine, so it could never produce a block; the node refuses to start mainnet while this placeholder is in place. The real recipient is set at a genesis key ceremony, and mainnet's genesis block is re-mined at that point. The staking kernel accepts only single-key outputs, so the ceremony also has to decide how much of the premine sits in single-key hot outputs to bootstrap the chain, versus cold storage — a decision for people, not code.
The staking reward
| Per proof-of-stake block | 10 FIC + the fees of that block's transactions |
| Depends on stake amount | No |
| Depends on stake age | No |
| Enforced as | An exact amount — a block minting a single fil more or less is invalid |
A larger stake wins blocks more often, in proportion to its size. It does not earn more per block. There is no rate of return on a balance anywhere in the protocol, and no maximum stake age. Why that distinction matters is covered on the Shariah design notes page.
Halving
| At launch | Disabled on every network |
| If enabled at interval k | Reward at height h becomes 10 FIC >> (h / k), reaching zero after 30 halvings |
The code path exists and is tested so it can be switched on later, but doing so changes consensus — it would need a scheduled activation height and a coordinated network upgrade, not a silent flip.
Emission
| Target block spacing | 64 seconds |
| Blocks per year | 31,536,000 s ÷ 64 s ≈ 492,750 |
| New FIC per year | 492,750 × 10 ≈ 4,927,500 FIC |
| As a share of the premine | ≈ 0.035% a year |
Emission is per block, not per unit of time, so the real figure follows the real block count and difficulty retargeting toward 64-second blocks. Because the reward is a fixed number of coins, annual inflation falls every year as a share of total supply.
Proof of work
| Mainnet | Testnet | Regtest | |
|---|---|---|---|
| Last PoW block | 0 | 0 | 500 (override for testing) |
| PoW subsidy | 0 | 0 | 28,000,000 |
Mainnet and testnet reject proof-of-work from block 1 onward — the entire supply beyond the genesis premine is minted by staking. Regtest keeps a short proof-of-work window purely because the inherited test harness needs to mine blocks on demand in automated tests.
Other constants that bear on supply
| Constant | Mainnet | Testnet | Regtest | Effect |
|---|---|---|---|---|
| Coinbase/coinstake maturity | 500 | 50 | 10 | Confirmations before an output can be spent or staked (genesis outputs excepted) |
| Minimum stake age | ≈ 8.9 h | ≈ 53 min | 10 blocks | Enforced as confirmation depth, not a timestamp |
| Target spacing | 64 s | 64 s | 1 s | — |
| Unit | 1 FIC = 100,000,000 fils | — | ||
Minimum transaction fees are paid entirely to the staker who produces the block — they are never burned.