Research
Sizing vaults to pools
A $100,000 vault is the ceiling, not the default. Every vault takes the largest position that stays within 20% of its pool's in-range liquidity.
A fixed ceiling is the wrong unit
A liquidity position is a claim on a pool, and its share determines what it earns and what it loses. A $100,000 position is small in a $1.97M pool and dominant in a $74K pool. One dollar cap for both would leave a deep pool underused or let a thin pool be overwhelmed.
Uptick sizes downward. A thin pool gets a smaller vault, not no vault: a token that passes the feed, pool, volume and price checks is admitted, then capped at the size its liquidity can absorb. A cap below $10,000 is the exception, because fixed opening and rebalancing cost would dominate, so the token is not opened.
The cap is not a marketing figure. The StockVault contract enforces it through depositCap, so a deposit above the cap reverts rather than being accepted and held outside the strategy.
How the cap is computed
The pass reads every token in the Robinhood Chain registry, confirms code, and examines the Chainlink feed and USDG pools. The conditions are explicit.
| Condition | Threshold |
|---|---|
| Chainlink Stock Token feed | Present, readable and positive |
| Feed age | At most 4 days |
| Pool | Deepest USDG v3 pool by active liquidity across the 5% band |
| Pool volume | At least $100,000 per day, 7-day average |
| Vault cap | At least $10,000 and at most $100,000 |
| Pool price against feed | Within 300 bps |
Depth is active liquidity within 5% of the feed price, in dollars. The vault's share is its position divided by its position plus depth. The rule takes the largest position where that share is at most 20%, capped at $100,000 and floored to whole dollars. In symbols, V divided by V plus depth is at most 0.20. A token is eligible only if the result is at least $10,000.
The checks run in order: feed, pool, volume, price, cap. A token that fails one is reported with the reason and does not reach the vault table.
What the cap does to a token
The ceiling binds on the deepest pools; depth binds everywhere else. NVDA and USO support the full $100,000. MU, TSLA, GME and AMD do not, so their caps come from the pool.
| Token | Pool depth, 5% band | Vault cap | Binding limit |
|---|---|---|---|
| NVDA | $1.61M | $100,000 | Ceiling |
| USO | $1.97M | $100,000 | Ceiling |
| MU | $347K | $86,710 | Pool depth |
| TSLA | $333K | $83,206 | Pool depth |
| GME | $197K | $49,212 | Pool depth |
| AMD | $74K | $18,436 | Pool depth |
A pool can pass every market test and still receive a cap well below the ceiling. MU has a readable feed, a USDG pool and enough volume, and its vault is $86,710 because that is the largest position the pool can hold at a 20% share. AMD passes the same tests and receives $18,436. Neither is a smaller version of the same product; each is the size its pool supports.
Seventeen vaults, seventeen caps
At block 93099228, 196 tokens are in the registry, 35 have a usable Chainlink feed, 95 have a USDG v3 pool, and 17 clear every condition. The table below is generated from the same universe file the vault pages read, so the cap on this page is the cap in the contract.
| Token | Gate | Deposit cap |
|---|---|---|
| MSTR | Closed | $22,206 |
| GME | Closed | $49,212 |
| CRCL | Closed | $100,000 |
| INTC | Closed | $19,116 |
| MU | Closed | $86,710 |
| AMD | Closed | $18,436 |
| PLTR | Reduced | $24,207 |
| META | Closed | $24,118 |
| USO | Closed | $100,000 |
| SPCX | Closed | $100,000 |
| TSLA | Closed | $83,206 |
| NVDA | Open | $100,000 |
| GOOGL | Reduced | $100,000 |
| AMZN | Reduced | $68,501 |
| AAPL | Open | $73,983 |
| QQQ | Reduced | $66,787 |
| SPY | Reduced | $100,000 |
Two vaults are open, five are reduced and ten are closed. NVDA and AAPL are open. PLTR, GOOGL, AMZN, QQQ and SPY are reduced. The remaining ten are closed. The gate and the cap are separate decisions: a vault can have a large cap and still be closed if its replay fails, and a closed vault keeps its cap published so the sizing rule can be checked.
The table is written by export-web from keeper/data/universe.json and keeper/data/replay.json. The universe file carries depth, volume, feed deviation and cap; the replay file carries gate state and kept APR. The export records its block, so a cap and a gate cannot come from different states.
What this means for a holder
The deposit cap is visible before a holder signs, and the vault contract refuses anything above it. A large ticket into a deep pool can clear; the same ticket into a thin pool cannot. The on-chain cap on AMD is $18,436 and on GME is $49,212, not $100,000.
The gate is a second check. A vault can be under its cap and still be closed because its held-out kept APR fell below the floor. The cap says what the pool can carry; the gate says whether the strategy kept enough. Both are shown on the vault page.
Sources
keeper/README.mdEligibility conditions, the 196 to 35 to 95 to 17 funnel and the depth to cap examples.
keeper/src/universe.tsRule thresholds, the 20% share calculation and the eligibility verdict.
web/lib/vault-universe.jsonThe 17 caps and gate states at block 93099228, built from the keeper universe and replay.