Markets
The live markets, their risk parameters, and what each one means.
Ten markets are live on mainnet, all borrowing USDG: the three launch markets, SPCX/USDG and TSLA/USDG, listed on 22 October 2026, MSFT/USDG and AAPL/USDG, listed on 27 October 2026, and QQQ/USDG, GOOGL/USDG and AMD/USDG, listed on 13 November 2026.
Two LP markets take a Uniswap liquidity position as collateral instead of a token: NVDA/USDG LP and SPY/USDG LP, deployed on 4 November 2026. They use the NVDA/USDG and SPY/USDG settings below, applied at a stressed price. Their rules and parameters are on LP collateral.
Parameters
Read from mainnet on 2026-11-13 (block 113204091); the three launch markets are unchanged since launch (block 86868761). Every one of these is adjustable by the protocol owner — they are settings, not constants.
| Market | LTV | Liquidation threshold | Liquidator bonus |
|---|---|---|---|
| NVDA / USDG | 60% | 65% | 8% |
| SPY / USDG | 70% | 75% | 6% |
| WETH / USDG | 75% | 80% | 5% |
| SPCX / USDG | 45% | 50% | 10% |
| TSLA / USDG | 45% | 50% | 10% |
| MSFT / USDG | 60% | 65% | 8% |
| AAPL / USDG | 60% | 65% | 8% |
| QQQ / USDG | 65% | 70% | 7% |
| GOOGL / USDG | 60% | 65% | 8% |
| AMD / USDG | 45% | 50% | 10% |
The ordering is the point. NVDA is a single stock: it can gap on one earnings report. SPY is an index: the same move requires the whole market to do it. WETH trades continuously, so there is no weekend gap to price in at all. Riskier collateral gets a lower LTV and a larger liquidator bonus, because a violent move needs liquidators to show up quickly enough to matter. SPCX (SpaceX) and TSLA (Tesla) are single stocks too, and more volatile: they start at the most conservative settings, 45% / 50% with a 10% bonus. MSFT (Microsoft) and AAPL (Apple) take NVDA's settings, 60% / 65% with an 8% bonus. Of the newest listings, QQQ (the Invesco QQQ Trust, a Nasdaq-100 index fund) sits between NVDA and SPY at 65% / 70% with a 7% bonus; GOOGL (Alphabet) takes NVDA's settings; and AMD takes SPCX's and TSLA's, 45% / 50% with a 10% bonus.
Caps
| Borrow cap (on the router) | 150,000 USDG on SPCX/USDG and TSLA/USDG; 0 — uncapped — on the other eight |
| Vault cap per market | unlimited (type(uint256).max) |
| Vault deposit cap | 0 — uncapped |
A market has no supply cap of its own any more. Its only lender is the Earn vault, so the most a market can hold is the cap the vault's curator set for it — that is the limit on how much of one asset the protocol is exposed to. That cap is currently unlimited, so a market can pull all of the vault's idle USDG. The borrow cap bounds how fast that exposure can be drawn down: SPCX/USDG and TSLA/USDG accept at most 150,000 USDG of borrowing each.
Zero means no cap, not a cap of zero.
Interest curve
Each market has its own curve, priced at the vault's one utilisation — see interest rates for what the numbers do.
| Market | Base rate | Rate at kink | Utilisation kink | Max utilisation | Max rate, at 100% utilisation |
|---|---|---|---|---|---|
| SPY / USDG | 0.5% | 6% | 80% | 100% | 100% |
| WETH / USDG | 0.5% | 7% | 80% | 100% | 100% |
| QQQ / USDG | 0.5% | 7% | 80% | 100% | 100% |
| NVDA / USDG | 1% | 9% | 80% | 100% | 100% |
| MSFT / USDG | 1% | 9% | 80% | 100% | 100% |
| AAPL / USDG | 1% | 9% | 80% | 100% | 100% |
| GOOGL / USDG | 1% | 9% | 80% | 100% | 100% |
| TSLA / USDG | 1% | 12% | 80% | 100% | 100% |
| SPCX / USDG | 1.5% | 14% | 80% | 100% | 100% |
| AMD / USDG | 1.5% | 14% | 80% | 100% | 100% |
Set by the protocol Safe (transaction nonce 4) and read at block 96027397; MSFT/USDG and AAPL/USDG were listed with NVDA/USDG's curve (read at block 99388687); QQQ/USDG with WETH/USDG's, GOOGL/USDG with NVDA/USDG's and AMD/USDG with SPCX/USDG's (read at block 113204091). The ordering follows the collateral's risk, as with LTV: the vault's depositors absorb bad debt first, so riskier collateral pays them more. Max utilisation of 100% means borrowing is allowed until the vault is fully lent; there is no reserved cash buffer, and the steep slope above the kink is what keeps liquidity. Until this change every market shared 0.5% / 8% / 100% with a kink at 80% and a max utilisation of 90%.
Wind-down
A market can be put into wind-down. New borrowing stops; repayment, withdrawal and liquidation continue. This is the mechanism for retiring a market — for instance when a Stock Token is delisted — without stranding anyone's collateral in it.
windDown is readable per market on the router, so any integration can show it.
Reserve factor
The share of borrower interest kept by the protocol rather than paid to lenders. It is set per
market on the interest rate model, and it is 10% on every market: the model's default
when no value is set. The stored value is 0, and the model reads a stored 0 as 10%
(InterestRateModel.reserveFactor):
if (stored == 0) return DEFAULT_RESERVE_FACTOR; // 10e16, 10%
if (stored == ZERO_RESERVE_FACTOR) return 0; // an explicit 0%
return stored;So the market's lender — the Earn vault — receives 90% of the interest its borrowers pay, and the other 10% accrues to the market's reserves. What a depositor earns is the vault's blended return across the markets, less the vault's fee (currently 0%).
The owner can set it anywhere from 0% to 50%; the model refuses anything higher. A real 0% is
possible too. Because a stored 0 already means "use the default", an
explicit 0% is stored as ZERO_RESERVE_FACTOR (type(uint256).max).
Read reserveFactor(router) for the factor in effect. Do not read the raw tokenReserveFactor(router)
getter at face value: a 0 there means the 10% default, not "no reserve", and reading it as zero
overstates the supply APY by a ninth. A real 0% shows up there as the sentinel. The formula is on
effective reserve factor.