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

Total14,000,000,000 FIC (1.4 × 1018 fils)
Where it livesThe genesis block's coinbase, as ordinary spendable outputs
Shape1,000 outputs of 14,000,000 FIC each
When it's spendableImmediately — genesis outputs are exempt from coinbase maturity
Mainnet recipientPlaceholder, 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 block10 FIC + the fees of that block's transactions
Depends on stake amountNo
Depends on stake ageNo
Enforced asAn 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 launchDisabled on every network
If enabled at interval kReward 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 spacing64 seconds
Blocks per year31,536,000 s ÷ 64 s ≈ 492,750
New FIC per year492,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

MainnetTestnetRegtest
Last PoW block00500 (override for testing)
PoW subsidy0028,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

ConstantMainnetTestnetRegtestEffect
Coinbase/coinstake maturity5005010Confirmations before an output can be spent or staked (genesis outputs excepted)
Minimum stake age≈ 8.9 h≈ 53 min10 blocksEnforced as confirmation depth, not a timestamp
Target spacing64 s64 s1 s
Unit1 FIC = 100,000,000 fils

Minimum transaction fees are paid entirely to the staker who produces the block — they are never burned.