SHIPPED
Vesting cliff sell pressure
N heterogeneous recipients with sampled urgency profiles unlock at
the cliff and route real swaps through the deepest WETH/USDC pool.
Each recipient’s schedule is power-law tilted (TWAP, panic
seller, patient drip-feed). Outputs cumulative price impact +
per-recipient realized USDC.
$ mayavi run vesting_cliff.yaml
swaps: 200 successful
realized: $25,630.49 USDC
report: data/reports/report_xxx.html
SHIPPED
Multi-cohort cliff collision
Real launches have team + seed + advisors with different unlock
dates. Mayavi models each cohort separately so you can see what
happens when team and seed unlocks land in the same week.
Cohort-level breakdowns + peak-step impact KPI surface the worst
moment for the protocol.
$ mayavi run multi_cohort.yaml
swaps: 436 successful (33 recipients)
realized: $125,566.85 USDC
cohorts: team / seed / advisor breakdown
SHIPPED
Gymnasium env + cloud-GPU PPO
Wrap any liquidation decision as a gymnasium.Env and
train a PPO policy with Stable-Baselines3. Same code runs on a
consumer GTX 1650 and on Modal A10G — one
modal run command swaps you to cloud.
Local GTX 1650: FPS=140, 14s wallclock
Modal A10G: FPS=298, 6s wallclock
Pipeline parity: 0 code changes
SHIPPED
Aave V3 leveraged borrower — PPO vs baselines
Real Pool, real interest accrual, real liquidation math. PPO
trained 50,000 timesteps on Modal A10G ($0.14 actual GPU spend)
against a 10-WETH supply / $7k-USDC borrow on the deployed Aave
V3 Pool at block 19M. Scored against noop and
repay_all baselines on the same fork over 32
deterministic eval episodes per strategy. Receipts:
aave_ppo_v1_2026-05-04.json,
methodology in
docs/validation.md § 1b.
$ mayavi train aave_borrower --remote modal
noop: -0.0761% (interest compounds on debt)
ppo (50k): +0.0713% (+14.7 bps vs noop)
repay_all: +0.0899% (analytical near-optimum)
ppo captures ~79% of optimum at $0.14 cloud cost.
PHASE 2
Adversarial multi-agent training
Train a vesting agent against a learned MEV searcher and a learned
oracle manipulator. This is where RL meaningfully beats TWAP —
TWAP becomes exploitable, and the principal must adapt.
PHASE 2
Bonding curves & ve-token staking
Stress-test bonding curve dynamics, ve(3,3) inflation, gauge weight
rotation. Same engine, new agent library.
SHIPPED
Stablecoin depeg → CDP cascade
Multi-agent stress test: N leveraged WETH-long Aave V3 borrowers
(configurable, default 5 at HF ≈ 1.28) plus a
liquidator wallet running one LiquidatorAgent per
borrower. A one-shot OracleShockAgent spikes the
AaveOracle USDC price (default $1.50, 50%) at a configurable
step; borrowers' HF crashes below 1.0 and the cascade fires
liquidationCall for real on the deployed Pool. Report
ships borrower-cascade-index + cumulative-seizure-USD KPI charts.
Methodology in
docs/validation.md § 1c.
$ mayavi run mayavi/scenarios/depeg_cascade.yaml
borrowers: 5 (HF~1.28, WETH-long)
shock: step 3, USDC -> $1.50
liquidations: cascade fires next step
report: cascade KPIs + per-step pool tick
SHIPPED
Real-launch vesting-cliff replay — ENA
Sim-to-real validation against actual token launches. Ethena
(ENA) first major cliff at block 22,180,000
(Apr 2 2025) replayed against on-chain Uniswap V3
DEX outflow over the 24h post-cliff window; per-pool delta
asserted < 30% per the Phase 2 honest-posture rule
(target ≤10%, acceptance ≤30%, above 30% documents a
Phase 3 gap rather than tightens the tolerance).
Wormhole (W) was scoped out: deepest W/WETH liquidity sits on
Solana and Base, well below the $1M Ethereum-mainnet TVL
threshold the comparison needs — reintroduction is queued
behind cross-chain replay support. Full rationale in
docs/validation.md § 3.
$ mayavi run mayavi/scenarios/launch_replay_ena.yaml
fork_block: 22,180,000 (Etherscan-verified)
cliff_block: 22,181,090 (2025-04-02 12:00 UTC)
pool: ENA/WETH 0.30% Uniswap V3
gate: delta_pct < 0.30 (24h cumulative outflow)