The evidence
Vault sizing
Every vault is sized to the pool it trades in. The ceiling is $100,000, a pool must carry at least $10,000 at the share limit, and the binding constraint is usually the pool.
The ceiling
$100,000 is the largest position the strategy is tested at and the largest any vault can take. It is a product decision as much as a risk one: below $10,000, the daily recentre, gas and swap impact cost more than the fees a vault that small can earn. The ceiling keeps the replay and the live vault in the same size range, so the gate figures describe the vault a depositor actually uses.
The share constraint
A vault that owns most of a pool's active liquidity is no longer a price taker. Its own recentre moves the price, its deposits change the fee share of everyone else, and an exit has to trade against a book the vault itself dominates. The rule is a hard share limit instead of a judgment call.
Let depth be the dollar value of active liquidity in the deepest USDG pool, spread across the vault's plus or minus 5% band. After a deposit of V, the vault's share is V / (depth + V). Holding that at or below 20% gives the cap.
V / (depth + V) <= 0.20
V <= depth * 0.20 / 0.80
V <= depth / 4
capUsd = min(100_000, floor(depth / 4))Depth is not the pool's total value locked. It is the liquidity that can actually fill swaps inside the band the vault holds, valued at the current price. A pool with a large balance parked outside the band does not get credit for it.
The floor
A pool that would carry less than $10,000 at the 20% share is left out. At that size the fixed costs of a daily recentre dominate. Tokens that pass the feed and pool checks but fail this one, or the volume floor, are recorded in the universe with the check that stopped them.
What a token must clear
Sizing is the last of several checks. A token reaches the replay only when every row below passes. The first failure wins and is written into the universe as the reason.
| Check | Threshold | Why |
|---|---|---|
| Contract code | Bytecode at the registry address | A Stock Token address with no code cannot be transferred or priced. |
| Chainlink feed | Present, readable and positive | The vault values its USDG leg and its fees from the feed. |
| Feed age | At most 346,200 seconds | A 24 hour heartbeat plus a ten minute grace and a long weekend. A feed silent longer than that is broken, not closed. |
| Pool volume | At least $100,000 per day, 7-day average | A pool with no flow earns no fees, whatever its depth. |
| Pool depth | Cap of at least $10,000 at a 20% share | Below this the recentre costs more than the fees. |
| Price agreement | Pool within 300 bps of Chainlink at read time | A pool priced away from the feed is not a market the vault should join. |
The checks are strict about the feed and looser about the pool. A token whose deepest pool cannot carry a full vault still gets one at the size the pool supports, provided that size is at least $10,000. That is how AMD trades with an $18,436 cap while NVDA carries the full $100,000.
Worked examples
The figures below come from the universe build that produced the current vault list. Depth is rounded in the table; the cap is floored to whole dollars.
| Vault | Pool depth, plus or minus 5% | Deposit cap | Binding limit |
|---|---|---|---|
| NVDA | $1.61M | $100,000 | The ceiling |
| GME | $197K | $49,212 | Pool depth |
| MSTR | $89K | $22,206 | Pool depth |
| AMD | $74K | $18,436 | Pool depth |
The cap on each vault
The live list below is the same file the vault pages read. A cap at $100,000 means the pool carries more than the ceiling; anything lower is the pool's depth divided by four.
| Vault | Deposit cap | Set by |
|---|---|---|
| MSTR | $22,206 | In-range pool depth |
| GME | $49,212 | In-range pool depth |
| CRCL | $100,000 | The $100,000 ceiling |
| INTC | $19,116 | In-range pool depth |
| MU | $86,710 | In-range pool depth |
| AMD | $18,436 | In-range pool depth |
| PLTR | $24,207 | In-range pool depth |
| META | $24,118 | In-range pool depth |
| USO | $100,000 | The $100,000 ceiling |
| SPCX | $100,000 | The $100,000 ceiling |
| TSLA | $83,206 | In-range pool depth |
| NVDA | $100,000 | The $100,000 ceiling |
| GOOGL | $100,000 | The $100,000 ceiling |
| AMZN | $68,501 | In-range pool depth |
| AAPL | $73,983 | In-range pool depth |
| QQQ | $66,787 | In-range pool depth |
| SPY | $100,000 | The $100,000 ceiling |
How the contract enforces it
The cap is written into the vault at deployment and changed only by the owner through setDepositCap. Deposits and mints ask maxDeposit for the remaining room and revert with ExceedsMax beyond it. There is no path that adds assets without passing that check.
A cap can rise or fall as the pool changes, but it is not recomputed on chain. The keeper rebuilds the universe from live pool state, and an operator applies a new cap when the pool has moved enough to matter.
Sources
keeper/src/universe.tsThe ceiling, floor, 20% share rule, cap formula and eligibility checks.
keeper/README.mdThe universe table with 7-day volume, band depth and cap for each eligible token.
contracts/src/StockVault.soldepositCap, maxDeposit and setDepositCap.
web/lib/vault-universe.jsonThe live cap and gate state for each vault.