Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/AUDIT_PREP.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Mainnet must use freshly generated program keypairs (see `docs/launch/MAINNET_DE
- Audit probability from `verification_percent`
- Tolerance band 0.05 operating point and within-band damage budget
- `slash_bounty_bps` reporter share on forfeit
- Zero-fraud treasury burn projection (~8.15% of rewards at p=0.1)
- Zero-fraud treasury burn projection (~8.15% of rewards at p=0.1 with 1.35x reward margin)

## Attachments for the auditor

Expand Down
17 changes: 9 additions & 8 deletions docs/TOKENOMICS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ Issue #6. Design consistent with the economic model already coded in
engineering and product design document. It is not a legal opinion. Issue #5
(counsel review) gates any public token offer.

## Token

The ticker is **$LEVI**. The name is set; the mainnet launch is deliberately
sequenced after a credible public run demonstrates the bonded training economy
working end to end, not before. A token with no proven protocol behind it has
nothing to price.

## Design goals

1. Pay for accepted learning work (Proof of Gradient), not for raw hash power.
Expand Down Expand Up @@ -39,7 +32,7 @@ From `genesis_parameters()` and `calibration_table()`:

| Preset | Round cost (H100) | Round reward (1.35x) | Bond at p=0.1 | Expected catch rounds |
|---|---|---|---|---|
| 125M proof | $0.0120 | $0.0162 | $0.146 | 10 |
| 125M proof | $0.0120 | $0.0162 | $0.15 | 10 |
| 1B genesis | $0.240 | $0.324 | $2.91 | 10 |
| 7B scale | $3.36 | $4.53 | $40.79 | 10 |

Expand All @@ -61,6 +54,9 @@ be sized for it.
## Supply sketch (pre-legal, adjustable)

Working totals for modelling only. Counsel may require structural change.
These percentages live only in this document. Round economics in
`economy.py` and `docs/assets/tokenomics.json` are bond/reward/audit math, not
supply allocation.

| Allocation | Share | Vesting | Purpose |
|---|---|---|---|
Expand All @@ -71,6 +67,11 @@ Working totals for modelling only. Counsel may require structural change.
| Early contributors / community | 10% | TGE unlock + short vest | Genesis participants, bug bounties |
| Liquidity / market making | 5% | At TGE under multisig policy | CEX/DEX depth if pursued |

Total 100%. The +10% team allocation was taken entirely from the training
rewards endowment (45% to 35%). Training rewards remain the largest single
bucket (35% > 25%), so the thesis that the network that trains the model owns
the primary share of emission still holds.

Emission is not a fixed block subsidy. Each run configures epoch earning rates on
the coordinator; the treasury tops up the run vault. Unused endowment stays
unminted or locked, never inflated ad hoc.
Expand Down
3 changes: 2 additions & 1 deletion docs/assets/tokenomics.json
Original file line number Diff line number Diff line change
Expand Up @@ -161,5 +161,6 @@
}
],
"slash_bounty_fraction_default": 0.5,
"slash_bounty_bps_default": 5000
"slash_bounty_bps_default": 5000,
"reward_margin": 1.35
}
26 changes: 11 additions & 15 deletions sim/leviathan_sim/economy.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,6 @@ def break_even_bond(audit_probability: float, reward_per_round: float) -> float:
return reward_per_round * (1.0 - audit_probability) / audit_probability


REWARD_COST_MULTIPLIER = 1.35


@dataclass(frozen=True)
class RunPreset:
label: str
Expand All @@ -85,11 +82,15 @@ def h100_round_cost_usd(
return seconds / 3600.0 * usd_per_gpu_hour


REWARD_MARGIN = 1.35
AUDIT_FEE_MULTIPLIER = 1.1


def calibration_table(audit_probabilities: list[float]) -> list[dict]:
rows = []
for preset in PRESETS:
cost = h100_round_cost_usd(preset)
reward = REWARD_COST_MULTIPLIER * cost
reward = REWARD_MARGIN * cost
for p in audit_probabilities:
rows.append(
{
Expand All @@ -107,15 +108,12 @@ def calibration_table(audit_probabilities: list[float]) -> list[dict]:
def audit_burn_projection(
audit_probabilities: list[float],
n_workers: int = 100,
fee_multiplier: float = 1.1,
fee_multiplier: float = AUDIT_FEE_MULTIPLIER,
) -> list[dict]:
"""Zero-fraud equilibrium: with nobody to slash, verifier income is pure
treasury burn. A replay audit redoes one contribution's compute, so the fee
floor is the per-contribution H100 cost times a verifier margin."""
rows = []
for preset in PRESETS:
cost = h100_round_cost_usd(preset)
reward = REWARD_COST_MULTIPLIER * cost
reward = REWARD_MARGIN * cost
for p in audit_probabilities:
fee = fee_multiplier * cost
burn = p * n_workers * fee
Expand All @@ -135,13 +133,9 @@ def audit_burn_projection(


def genesis_parameters(audit_probability: float = 0.1, band: float = 0.05) -> dict:
"""The published operating point for the Genesis Run testnet, derived from
the same (1-p)/p discipline as the calibration table. Values are per worker
per the 1B preset; testnet bonds use these numbers denominated in the
testnet collateral mint."""
preset = next(p for p in PRESETS if p.params_billion == 1.0)
cost = h100_round_cost_usd(preset)
reward = REWARD_COST_MULTIPLIER * cost
reward = REWARD_MARGIN * cost
return {
"preset": preset.label,
"audit_probability": audit_probability,
Expand All @@ -150,5 +144,7 @@ def genesis_parameters(audit_probability: float = 0.1, band: float = 0.05) -> di
"bond_usd": break_even_bond(audit_probability, reward),
"bond_rounds_of_reward": (1.0 - audit_probability) / audit_probability,
"expected_rounds_to_catch": 1.0 / audit_probability,
"audit_burn_share_of_rewards": audit_probability * 1.1 / REWARD_COST_MULTIPLIER,
"audit_burn_share_of_rewards": (
audit_probability * AUDIT_FEE_MULTIPLIER / REWARD_MARGIN
),
}
3 changes: 1 addition & 2 deletions sim/tests/test_economy.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from leviathan_sim.economy import (
REWARD_COST_MULTIPLIER,
EconomyConfig,
StakeLedger,
audit_burn_projection,
Expand Down Expand Up @@ -50,7 +49,7 @@ def test_calibration_bond_scales_with_reward():

def test_zero_fraud_burn_share_is_preset_independent():
rows = audit_burn_projection([0.1])
expected = 0.1 * 1.1 / REWARD_COST_MULTIPLIER
expected = 0.1 * 1.1 / 1.35
for row in rows:
assert abs(row["burn_share_of_rewards"] - expected) < 1e-9
assert row["treasury_burn_per_round_usd"] > 0.0
Expand Down
Loading