Incentive Mechanism

VRAM HUB uses a two-stage incentive pipeline: (1) loss-delta scoring evaluated inside a TEE, and (2) OpenSkill Bayesian rating that converts per-window scores into stable reward weights.

Miner Contribution: Loss Delta

For each miner $i$ evaluated in window $t$, a Nautilus enclave computes:

$$s_i^t = L(\theta^t;, D_i) - L(\theta^t + \delta_i;, D_i)$$

where:

  • $\theta^t$ — model parameters at the start of window $t$ (the anchored checkpoint)
  • $D_i$ — miner $i$'s deterministically assigned data batch
  • $\delta_i$ — miner $i$'s compressed gradient
  • $L$ — cross-entropy loss

A positive $s_i^t$ means miner $i$'s gradient improved the model on their assigned batch. A negative value means it hurt.

Data Assignment

Each miner receives a unique but reproducible data subset:

$$\text{seed} = \text{SHA256}(\text{uid} ,|, \text{window})$$ $$\text{pages} = \text{Sample}(\text{dataset},, \text{seed},, \text{batch_size})$$

Validators use the same seed to verify which data was assigned — making the evaluation deterministic and independent of the miner's self-reported assignment.

Gradient Compression

Miners apply momentum accumulation before compression:

Momentum buffer update:

$$m_i^{t+1} = \gamma \cdot m_i^t + \eta \cdot g_i^t$$

Weight decay:

$$\theta^{t+1} = (1 - \lambda),\theta^t$$

Top-k DCT compression:

$$\tilde{g}_i^t = \text{TopK}!\left(\text{DCT}(m_i^{t+1}),; k\right)$$

where $k$ is set by the topk_compression hyperparameter. Only the top $k$ DCT coefficients (by magnitude) are transmitted, dramatically reducing upload bandwidth.

OpenSkill Rating

Raw per-window loss deltas are noisy. VRAM HUB uses the Plackett-Luce OpenSkill model to convert noisy window scores into stable Bayesian skill estimates $(\mu_i, \sigma_i)$.

Rating Update (Per Window)

Miners are ranked by their loss delta $s_i^t$. The OpenSkill update is:

Team performance scale:

$$c = \sqrt{\sum_i \sigma_i^2 + \beta^2 + n\beta^2}$$

Omega factor (rank-weighted gradient):

$$\omega_i = \frac{1}{c}!\left(1 - \sum_{q=0}^{r_i} \frac{e^{\mu_i/c}}{A_q}\right), \quad A_q = \sum_{j:,\text{rank}(j),\geq, q} e^{\mu_j/c}$$

Mu update:

$$\mu_i^{t+1} = \mu_i^t + \sigma_i^2 \cdot \omega_i$$

Sigma update:

$$\sigma_i^{t+1} = \sigma_i^t \cdot \sqrt{1 - \sigma_i^2 \cdot \delta_i}$$

Ordinal (conservative lower bound):

$$\text{ord}_i = \mu_i - 3\sigma_i$$

The ordinal represents a conservative estimate: even accounting for uncertainty, the miner is expected to be at least this good.

Why Bayesian Ratings?

Simple averaging of per-window scores is vulnerable to:

  • Noise amplification — a single anomalous window dominates
  • New miner disadvantage — new miners need many windows to establish reputation

OpenSkill addresses both:

  • New miners start with high $\sigma$ (high uncertainty), which shrinks as more data accumulates
  • A consistently good miner has high $\mu$ and low $\sigma$, producing a high ordinal
  • A miner that was good but has degraded will see $\mu$ decay via the drift term $\tau$

Reward Distribution

Rewards are distributed proportional to squared ordinals (normalized):

$$w_i = \frac{(\text{ord}i - \text{ord}{\min})^2}{\sum_j (\text{ord}j - \text{ord}{\min})^2}$$

The squaring amplifies the gap between top and median performers — incentivizing sustained high performance rather than mediocrity.

Each window, reward_distributor.move emits tokens distributed by $w_i$.

Validator Incentives

Validators earn a share of the per-window validator allocation in proportion to their stake and submission completeness. Validators that submit scores for fewer miners receive proportionally less.

This ensures validators are incentivized to evaluate all registered miners, not just the cheapest ones.

VRAM Token Emission Schedule

Token: VRAM · Hard cap: 21,000,000 VRAM · Decimals: 9

Window cadence: 10 minutes → ~52,596 windows/year

Genesis emission: 70 VRAM/window → 10,080 VRAM/day

The emission schedule follows a supply-based halving model — halving triggers when cumulative mining tokens issued cross fixed thresholds (not time-based):

Phase Trigger (mining tokens issued) Emission/Window Miner (7143 BPS) Validator (2857 BPS)
1 (Genesis) 0 → 7M issued 70 VRAM 50 VRAM 20 VRAM
2 7M → 10.5M issued (cap) 35 VRAM 25 VRAM 10 VRAM

Total mining + validation cap: 10,500,000 VRAM (50% of supply)

The mining allocation exhausts when 10.5M tokens are issued (HALVING_TRIGGER_2 == MINING_ALLOCATION); Phase 3 is unreachable — can_emit() returns false before it would be entered.

Testnet vs. Mainnet split:

Mode miner_bps validator_bps treasury_bps Notes
Testnet 10,000 0 0 100% to miners as contribution points; validators earn nothing
Mainnet 7,143 2,857 0 Treasury 30% pre-minted at TGE — no per-window treasury cut

The mainnet BPS split activates at TGE via governance (update_bps in hparams.move).

Token Distribution

Total supply: 21,000,000 VRAM

Bucket % Amount Vesting
Mining & Validation Rewards 50% 10,500,000 Continuous emission, supply-based halving
Treasury 30% 6,300,000 Pre-minted at TGE. 6-month cliff, 48-month linear vest
Team 8% 1,680,000 Pre-minted at TGE. 12-month cliff, 36-month linear vest
Liquidity 7% 1,470,000 Pre-minted at TGE. 100% unlocked — seeds VRAM/SUI pool on Cetus/DeepBook
Community Airdrop 5% 1,050,000 Pre-minted at TGE. Converts from testnet contribution points

Pre-minted allocations (50% = 10.5M VRAM) are minted in a single atomic premint_tge_allocations call at TGE and transferred to the deployer multisig for vesting distribution.

Anti-Gaming Properties

Attack Why It Fails
Upload a gradient that minimizes loss on your data but hurts others Other miners' data is different; your score is only on your assigned batch
Copy another miner's gradient Loss delta is evaluated on your assigned data — copying another miner's gradient for their data produces zero or negative delta on yours
Submit a pre-computed gradient from a prior window Checkpoint hash is checked; gradients computed from a stale checkpoint will produce wrong loss
Collude with a validator Validator cannot forge enclave signatures; signed scores must come from the registered enclave
Sybil — split one miner into many wallets Each shard trains on a different data subset; unless shards produce identical gradients (which scores zero) the split earns at most the same total reward, not a multiple