Protocol Integrity
Verify the Supply

Verify the Supply

Total supply · live estimate
Total DERO supply, live estimate derived from the emission schedule
Derived from the fixed emission schedule — verifiable by anyone, trusted from no one.

The ticker above is projected in your browser from the schedule (height extrapolated at 18s/block — it drifts slightly and is not a node feed); the recompute below is the same schedule pinned to a fixed sample height, so it reads lower by whatever the chain has advanced since. Feed either the same height and they agree exactly.

DERO's total supply is a deterministic function of block height. You don't take it on faith — you recompute it from the schedule and get the same number every time, on any machine, with no node in the loop.

How it's calculated

DERO's supply comes from two places:

  • Genesis — the 12,281,254 DERO premine carried over from the original DERO chain, plus a one-time 2,717-DERO launch credit (0.002 DERO to each account registered before block 144,000, so it could claim its old-chain balance).
  • Block rewards — each block mints coins on a fixed schedule. The reward started at 0.615 DERO and is right-shifted every 7,000,000 blocks (0.615 → 0.3075 → 0.15375 → …, floored to a whole atomic unit each step), shrinking to zero near block 112,000,000.

At any height, total supply is that genesis allocation plus every block reward paid so far — and nothing else. Creating coins and moving them are separate systems: new coins come only from genesis and the block reward — no admin key, no discretionary minting. A transaction can only move coins that already exist; balance proofs force its inputs to equal its outputs and range proofs forbid negative amounts, so no transfer can add a single unit to the supply. Minting coins with a transaction isn't a loophole the protocol closes — it's a mechanism the protocol never had (why a "mint" can't pass validation). Because the reward depends only on block height, you can get the exact number three ways:

  • Recompute it from the formula — below.
  • Ask any nodebelow.
  • Read the sourcebelow.

Compute it

The current total is one script — no node, no trust, paste it anywhere. (Set TIP to any height to get that height's supply; 112,000,000 prints the maximum.)

BASE = 123000            # pre-shift base (derived; grep BaseReward); genesis pays BASE>>1 = 0.615
RRI  = 7_000_000         # reward halves every RRI blocks
PREMINE = 1_228_125_400_000
CREDIT  = 271_739_600    # one-time launch credit: 0.002 DERO x 1,358,698 accounts < block 144,000
TIP = 7_380_505          # a sample block height
 
cbr = lambda h: BASE >> ((h + RRI) // RRI)
s, r, e = PREMINE + CREDIT, TIP, 0
while r > 0:
    n = min(r, RRI); s += cbr(e) * n; r -= n; e += RRI
 
print(f"{s // 100000}.{s % 100000:05d} DERO")   # TIP 7,380,505 -> 16705976.68350 DERO

100,000 atomic units = 1 DERO. That is DERO's total supply — the same CalcSupply a node runs, recomputed offline and identical for everyone, no node in the loop.

Cross-check against a node

curl -s http://YOUR_NODE:10102/json_rpc \
  -d '{"jsonrpc":"2.0","id":"1","method":"DERO.GetInfo"}' | jq .result.total_supply

Set the script's TIP to the node's topoheight, and a current node returns the same total (nodes drop the decimals) — the script above is the CalcSupply a node runs. Only older linear builds differ (deroproject/derohe, DEROFDN main): their total_supply prices every block at the current reward, so it undercounts after each halving — a quirk of that display formula, not the chain.

Maximum supply

20,893,411 DERO — and it stops there for good. That full ceiling is 20,890,694 of scheduled emission (the block reward halves to exactly zero near block 112,000,000) plus the one-time 2,717-DERO launch credit. No mechanism issues coins after.

Audit the source

Everything above is a few functions in the daemon — read them yourself:

git clone -b community-dev https://github.com/DEROFDN/derohe.git && cd derohe
grep -n "BaseReward"           blockchain/transaction_execute.go   # the reward base
grep -n "func CalcBlockReward" blockchain/transaction_execute.go   # the halving
grep -n "PREMINE"              config/config.go                    # the premine
grep -n "func CalcSupply"      blockchain/supply.go                # premine + credit + rewards
grep -n "271739600"            blockchain/supply.go                # the one-time launch credit