Supply & Emission

Supply & Emission

UltraDAG has a fixed maximum supply of 21 million UDAG with a Bitcoin-style halving schedule. Zero pre-mine — all tokens distributed through per-round emission. This page covers the emission curve, distribution model, and supply enforcement.


Maximum Supply

ParameterValue
Max supply21,000,000 UDAG
Smallest unit1 sat = 0.00000001 UDAG
Sats per UDAG100,000,000
Max supply in sats2,100,000,000,000,000

The maximum supply is a hard protocol constant — no governance proposal can increase it.


Emission Schedule

Block Reward

New UDAG is minted each round (not per vertex) according to a halving schedule:

EraRoundsReward per RoundCumulative Emission
10 — 10,499,9991.00000000 UDAG10,500,000 UDAG
210,500,000 — 20,999,9990.50000000 UDAG15,750,000 UDAG
321,000,000 — 31,499,9990.25000000 UDAG18,375,000 UDAG
431,500,000 — 41,999,9990.12500000 UDAG19,687,500 UDAG
64< 1 sat21,000,000 UDAG

Halving Interval

$$ \text{halving_interval} = 10{,}500{,}000 \text{ rounds} $$

At 5-second rounds:

$$ 10{,}500{,}000 \times 5\text{s} = 52{,}500{,}000\text{s} \approx 1.66 \text{ years} $$

Full Emission Timeline

The emission curve follows a geometric series. Over 64 halvings (~106 years), the total minted supply asymptotically approaches 21,000,000 UDAG:

Era  1: +10,500,000.00 UDAG  (50.00% of max)
Era  2:  +5,250,000.00 UDAG  (75.00% of max)
Era  3:  +2,625,000.00 UDAG  (87.50% of max)
Era  4:  +1,312,500.00 UDAG  (93.75% of max)
Era  5:    +656,250.00 UDAG  (96.88% of max)
...
Era 64:          < 1 sat      (100.00% of max)
Reward precision
When the halved reward drops below 1 sat (the smallest representable unit), the reward becomes 0 and emission stops permanently. This occurs after approximately 64 halvings.

Emission-Only Genesis (Zero Pre-Mine)

No genesis allocations. Total supply starts at 0 on mainnet. Every UDAG enters circulation through per-round protocol emission:

RecipientShareMechanism
Validators & Stakers75%Proportional to effective stake (own + delegated)
DAO Treasury10%Governed by Council proposals (TreasurySpend)
Council of 2110%Equal split among seated council members
Founder5%Protocol development, earned through emission
Testnet faucet
Testnet builds include a 1,000,000 UDAG faucet reserve for testing. This is feature-gated and excluded from mainnet genesis. On mainnet, all participants (founder, treasury, council) start at 0 and earn through emission.

Reward Distribution

Each round, newly minted UDAG is distributed as follows:

Distribution Flow

The round reward (1 UDAG) is split into a Validator Pool (75%), Council Pool (10%), DAO Treasury (10%), and Founder (5%). The Validator Pool is then distributed among active validators. The Council Pool is split equally among council seats.

Validator Rewards

The validator pool (75% of round reward) is distributed to validators:

  • Active validators (producing vertices): receive rewards proportional to effective stake
  • Passive stakers (staked but not in top 100): receive 50% of what an equivalent active validator would earn

$$ \text{validator_reward}_i = \text{round_reward} \times (1 - \frac{\text{council_emission_percent}}{100}) \times \frac{\text{effective_stake}_i}{\sum \text{effective_stakes}} $$

Council Rewards

10% of the round reward (default, governable 0-30%) goes to the Council of 21:

$$ \text{council_share} = \text{round_reward} \times 0.1 $$

This is distributed equally among occupied council seats.


Per-Round Protocol Distribution

Per-round, not per-vertex
Rewards are minted **once per finalized round**, not once per vertex. In a round with multiple finalized vertices from different validators, the protocol mints exactly one round reward. This prevents inflation variance based on the number of vertices produced.

The distribution sequence each round:

  1. Calculate the current era’s reward: reward = initial_reward >> (round / halving_interval)
  2. Cap at remaining supply: reward = min(reward, MAX_SUPPLY - total_supply)
  3. Mint reward sats into existence (increment total_supply)
  4. Distribute (100 - council_emission_percent)% to validator pool (proportional to effective stake)
  5. Distribute council_emission_percent% to council pool (equal per seat)
  6. Verify supply invariant

Fee Handling

Transaction fees are not part of the emission — they come from existing circulating supply:

AspectBehavior
Fee collectionFees are collected from the transaction sender
Fee destinationFees go to the vertex producer via deferred coinbase (collected from successful txs only)
CoinbaseVertex coinbase contains collected fees only (no minted reward)
Fee-exempt operationsStake, Unstake, Delegate, Undelegate, SetCommission
Minimum fee10,000 sats (0.0001 UDAG) for non-exempt transactions

Minted rewards are distributed separately via distribute_round_rewards(). Fees are included in the vertex producer’s coinbase independently.


Supply Cap Enforcement

The protocol enforces the supply cap at multiple levels:

Minting Cap

let reward = base_reward >> (current_round / HALVING_INTERVAL);
let capped = std::cmp::min(reward, MAX_SUPPLY_SATS - total_supply);

If total_supply equals MAX_SUPPLY_SATS, no new UDAG is minted. The protocol continues operating on fees only.

Supply Invariant

After every state transition:

$$ \text{liquid} + \text{staked} + \text{delegated} + \text{treasury} = \text{total_supply} \leq \text{MAX_SUPPLY} $$

Violation triggers immediate node halt (exit code 101).

Slashing is Deflationary

When a validator is slashed for equivocation, the slashed amount is burned — removed from total_supply. This makes slashing deflationary:

$$ \text{total_supply}{\text{new}} = \text{total_supply}{\text{old}} - \text{slashed_amount} $$

Burned supply can never be re-minted. The effective max supply decreases permanently with each slash event.


Comparison with Bitcoin

PropertyUltraDAGBitcoin
Max supply21,000,00021,000,000
Smallest unitsat (10^-8)sat (10^-8)
Halving interval10,500,000 rounds (~1.66 yr)210,000 blocks (~4 yr)
Initial reward1 UDAG/round50 BTC/block
Full emission~106 years~140 years
Deflation mechanismSlashing burnsLost coins
Fee modelMin fee + exempt staking opsMarket-driven fees

Next Steps