EVA — economic parameters & tokenomics
The hardest part of an optimistic oracle is economics, not code. This is the parameter spec to tune before mainnet (placeholder values are in the contracts today). Core invariant throughout:
Cost to corrupt a resolution must exceed the profit from corrupting it.
Assets (recap)
| Role | Asset | Why |
|---|---|---|
| Market bets / collateral | USDT | stable |
| Oracle bonds (propose/dispute) | USDT | stable, sized vs value-at-risk |
| Vote stake / governance | EVA | captures protocol value; cost-to-corrupt anchor |
EVA is NEVER used for bonds. Bonds stable, security from EVA stake.
1. Bonds (Assertion)
- Purpose: make lying unprofitable on the fast path. A liar loses their bond to the honest party.
- Sizing:
bond = max(MIN_BOND, bondPct × valueAtRisk)where valueAtRisk ≈ the market's open interest / the funds that depend on this resolution. A $1M market must not be guarded by a $100 bond. - Recommended start:
MIN_BOND= 50–100 USDT;bondPct= 1–5% of market TVL, capped sanely. TodayAssertiontakes a fixedbondAmountper question — the factory/market should compute it from TVL (TODO: pass TVL-derived bond at CreateAssertion). - Liveness (challenge window): UMA uses ~2h for markets. On TON account for message latency +
keeper cadence → start 2–6h.
Assertion.livenessbounds: (0, 1 year]. - ArbitrationWindow (dispute timeout → refund both): 7 days (matches "give the DVM time"); tunable.
2. Vote slashing/rewards (StakeVoteResolver)
- SlashBps (losing voter penalty → winner reward pool). Code placeholder 1000 (10%) for visible tests. UMA slashes ~0.1% (10 bps) per wrong/missed vote. Recommended prod: 50–200 bps. Tradeoff: higher = stronger honesty incentive but harsher on honest mistakes / griefable.
- NoRevealBps (commit-but-no-reveal penalty → protocol surplus). Start ≈ SlashBps. Add a surplus-sweep for the owner (TODO).
- Reward = winner's pro-rata share of the slash pool (
weight/winStake × pool). Optional emissions later (not implemented).
3. Quorum (StakeVoteResolver)
- SPAT = winner ≥ 65% of revealed stake (UMA value;
SpatBps = 6500). Below → round reopens. - GAT = minimum revealed stake for validity. Code placeholder
1 EVA. Prod: tie to circulating staked EVA (e.g. ≥ 5–10% of total staked must reveal), analogous to UMA's fixed 5M UMA floor. - Windows: commit + reveal. Code placeholder 1h + 1h. Prod: 24–48h each (UMA total 48–96h), so global voters can participate.
4. EVA tokenomics
- Supply: fixed (e.g. 100M–1B); exact number cosmetic. No bond use.
- Distribution: must be wide enough that no single party can reach SPAT cheaply (anti-capture). Reserve for: stakers/early users, team (vested), treasury, ecosystem.
- Staking: lock EVA in
StakeVoteResolverto vote; rewards from slashes (+ optional emissions). - Value accrual: demand to participate in resolution + (deferred) protocol fees.
5. Bootstrapping (the chicken-and-egg)
- When EVA is cheap/illiquid, the vote is cheap to capture (51% on resolution). So: Phase 1 = trusted committee (M-of-N) runs resolution; Phase 2 (EVA stake vote) activates only once EVA has real market value + distribution. The resolver interface is identical, so this is a launch switch, not a rewrite. This gating is a governance decision, not code.
6. Cost-to-corrupt — worked check
- Max value-at-risk per resolution =
V(funds depending on it). - To force a false outcome an attacker must control ≥ SPAT (65%) of revealed stake.
- Required honest-stake floor:
0.65 × stakedValue > V⇒stakedValue > V / 0.65 ≈ 1.54 V. So total staked EVA value should exceed ~1.5× the largest single market's value-at-risk. - Buying 65% of EVA also moves EVA's price up sharply and is forfeit if the attack is voted down →
attack cost ≫ V. Keep markets' V well below
0.65 × stakedValue; cap per-market size accordingly.
Open / deferred
- TVL-derived bond sizing wired into the factory/market.
- Protocol fee (monetization) — DEFERRED by owner.
- Emissions schedule; no-reveal surplus sweep; delegated voting.
- All numbers above are starting points — finalize with simulation before mainnet.