Strategies
Three colors, one formula.
Each color holds a fixed board of ERC-4626 USDC vaults on Base. Below, every venue is read live from the chain: its TVL, its share price, and the yield it actually paid over the last 43,200 blocks (about 24 hours). The target weights are computed from those live numbers with the protocol formula, exactly as allocate() would.
Method
How the targets above are computed
Computed in your browser from live data with the protocol formula (LOGIC.md §3), in integer math. Nothing is deployed yet: these are the weights each color would set if its epoch ran now.
- Read. For each venue:
totalAssets()now, andconvertToAssets(1 share)now and 43,200 blocks earlier. - Measure. Realised APR = share-price growth, annualised over the real time between the two blocks, capped at 50 %. A falling share price marks the venue impaired and excludes it.
- Score. Blend each venue's share of depth (TVL, capped at 1 B USDC) with its share of APR, using the color's tilt.
- Fill. Spread 95 % of the color in proportion to score, cap each venue, hand the excess to the others (water-filling, up to 8 passes). 5 % stays liquid.
Realised APR at target = Σ target × realised APR of each venue; the 5 % buffer earns nothing. It describes the past 24 h, before the 10 % performance fee. It is not a forecast.
// per venue i of a color depth_i = min(totalAssets_i, 1e9 USDC) dShare_i = depth_i * 1e18 / Σ depth aShare_i = apr_i * 1e18 / Σ apr score_i = (dShare_i * (1e4 - tilt) + aShare_i * tilt) / 1e4 // tilt: Stable 0 · Balanced 5000 · Growth 10000 // cap : Stable 4000 · Balanced 3500 · Growth 3500 bps target_i ∝ score_i on 9500 bps target_i ≤ cap excess → others (≤ 8 passes) buffer = 10000 - Σ target_i