Summary
This proposal activates the first three LlamaLend v2 markets, which have been deployed on Optimism but have not yet had borrowing enabled. Each controller was deployed with borrow_cap = 0 and admin_percentage = 0. The vote drives the LlamaLend Markets Configurator (0xd36c590531cAF5F620C57Faf5827Ce8E7f6E5Bec) to, per controller:
- set
borrow_capto the refined, stress-derived value below; and - set
admin_percentageto 1% (1e16, where1e18 == 100%).
| Market | Refined borrow cap | Admin fee |
|---|---|---|
| wstETH/WETH | 824 WETH | 0% → 1% |
| WBTC/USDC | 4,380,000 USDC | 0% → 1% |
| wstETH/USDC | 2,660,000 USDC | 0% → 1% |
Because the markets are launching alongside an incentive campaign on Optimism, the caps are sized to be conservative yet not so restrictive that they suppress organic market-rate discovery. Each cap is anchored to executable liquidation capacity under stress using a fresh-market sizing method, and should be migrated to the live exposure-scale method once real borrower positions accumulate.
Background: LlamaLend v2 and the Optimism deployment
LlamaLend v2 is the next iteration of Curve’s isolated lending stack, pairing a single collateral asset against a single borrowed asset in each market, with liquidations handled by LLAMMA’s continuous soft-liquidation mechanism rather than discrete liquidation events. Markets are deployed in a dormant state with borrowing disabled via a zero borrow cap, and are activated by governance once risk parameters have been reviewed.
This proposal covers the first deployment of LlamaLend v2, comprising three markets on Optimism:
| Market | Controller | Borrowed asset |
|---|---|---|
| wstETH/WETH | 0x745422BF49f3F6e4A8E12E4abD19339E7910F8C9 |
WETH (18 decimals) |
| WBTC/USDC | 0x9fC15ac3EF97093832f49B7997A58E29b49C56dE |
USDC (6 decimals) |
| wstETH/USDC | 0xb5EC7A3D591877A66BE4f3eafdC4205E98A1BCAA |
USDC (6 decimals) |
The borrow cap is denominated in the borrowed token’s native decimals: the controller transfers _debt 1:1 to the borrower and tracks that same quantity in total_debt / borrow_cap (the BORROWED_PRECISION factor is only applied inside the AMM’s internal math). USDC caps are therefore expressed with 6 decimals and the WETH cap with 18.
Methodology: fresh-market borrow-cap sizing
For a fresh market, no borrower positions exist yet, so liquidation pressure cannot be inferred from live vault-level data. Instead, the cap is derived from stressed executable liquidity combined with a conservative borrower-behaviour assumption.
Executable liquidity. For each candidate liquidation route, the model finds the maximum executable collateral amount subject to the liquidator’s usable price-impact margin:
where \Theta is the liquidation discount and \delta is an execution / price-duration loss buffer. Route capacity is stressed by a liquidity contraction factor \lambda_{\text{liq}}, and the deepest stressed route is used:
Route capacities are not summed, because aggregator routes may reuse overlapping underlying liquidity.
Sizing LTV. Where a reliable reference market exists, the debt-weighted p95 borrower LTV is used as the empirical behavioural assumption (see Appendix). If that empirical assumption is non-binding under stress, or where borrower behaviour is uncertain, the model falls back to the Curve-derived max LTV:
Hard-liquidation trigger. The method checks whether the stressed borrower LTV breaches a reduced-form hard-liquidation proxy L_{\text{hard}} = 1 - \Theta. The shock required to reach that proxy is:
and the portion of the stress beyond that buffer is:
\phi is a stress-severity factor, not a probability. If \phi = 0, the chosen stress does not create hard-liquidation pressure under the assumed borrower behaviour, and the liquidity module is non-binding.
Soft liquidation. LLAMMA’s soft liquidation is captured through an efficiency parameter \eta, so residual hard-liquidation pressure is scaled by (1-\eta)\phi. The fresh-market cap is then:
where P_s = P_0(1-s) is the shocked collateral price. This cap binds only when the stress shock exceeds the borrower’s LTV buffer. Once a market is live, this approximation should be replaced by the live exposure-scale method using actual borrower positions and observed liquidation pressure.
Results
wstETH/WETH — recommended cap ~824 WETH
Scoped under a 4.00% collateral price-shock scenario, using current-price valuation, a 1.5% maximum liquidator price-impact tolerance, 0% assumed soft-liquidation efficiency, and a 1.5× liquidity contraction factor (usable liquidity reduced to 66.7% of baseline, a 33.3% reduction).
Soft-liquidation efficiency is set to 0% as a conservative assumption for this correlated-asset stress: the scenario represents a relative dislocation between wstETH and WETH rather than a gradual broad-market move. Because such basis shocks can occur quickly (or through liquidity/oracle dislocation), the analysis does not assume LLAMMA soft liquidation materially reduces residual hard-liquidation pressure before the stressed price level is reached.
The executable route considered is wstETH → WETH. Baseline executable capacity is 256.88 wstETH, falling to 171.25 wstETH after the liquidity contraction. Max LTV from Curve parameters is 95.52%; under the 4.00% shock, stressed LTV rises to 99.50%, breaching the simplified hard-liquidation proxy of 98.5%. The implied trigger shock is ≈ 3.02%, so the scenario exceeds the liquidation buffer. The implied at-risk fraction is 24.49%; with 0% soft-liquidation efficiency the residual buffer-adjusted pressure is also 24.49% of exposure, giving a cap of ≈ 824.18 WETH-equivalent.
WBTC/USDC — recommended cap ~$4.38m
Refined under a 9.40% collateral price-shock scenario, using current-price valuation, a 5% maximum liquidator price-impact tolerance, 65% assumed soft-liquidation efficiency, and a 1.5× liquidity contraction factor.
The executable route is WBTC → USDC. Baseline executable capacity is 14.25 WBTC, falling to 9.50 WBTC after contraction; with a single route there is no aggregation or double-counting adjustment. Max LTV is 89.92%; under the 9.40% shock, stressed LTV rises to 99.24%, breaching the hard-liquidation proxy of 95.0%, with an implied trigger shock of ≈ 5.35%. The implied at-risk fraction is 43.07%; after 65% soft-liquidation efficiency the residual pressure is 15.07% of exposure, giving a cap of ≈ $4.38m.
wstETH/USDC — recommended cap ~$2.66m
Refined under a 13.10% collateral price-shock scenario, using current-price valuation, an 11% maximum liquidator price-impact tolerance, 65% assumed soft-liquidation efficiency, and a 1.5× liquidity contraction factor.
The executable route is wstETH → USDC. Baseline executable capacity is 339.01 wstETH, falling to 226.01 wstETH after contraction. Max LTV is 83.59%; under the 13.10% shock, stressed LTV rises to 96.19%, breaching the hard-liquidation proxy of 89.0%, with an implied trigger shock of ≈ 6.08% — so the scenario materially exceeds the liquidation buffer. The implied at-risk fraction is 53.60%; after 65% soft-liquidation efficiency the residual pressure is 18.76% of exposure, giving a cap of ≈ $2.66m.
Admin fee (0% → 1%)
Alongside cap activation, this proposal sets the admin_percentage on all three controllers to 1% (1e16). This parameter is the protocol’s share of the interest paid by borrowers, with the remainder accruing to suppliers. A 1% setting is a deliberately conservative starting level for newly launched markets: it establishes a protocol revenue stream while keeping the cost to borrowers low during the incentive-driven bootstrap phase, so as not to discourage the early borrowing the caps are designed to accommodate. As with the caps, the admin fee can be revisited once the markets mature and live utilisation data is available.
Recommended parameters
| Market | Borrow cap | Basis |
|---|---|---|
| WBTC/USDC | ~$4.38m | Buffer-adjusted fresh-market method; WBTC → USDC executable liquidity; 65% soft-liquidation efficiency; max-LTV fallback (empirical 80% LTV case was non-binding). |
| wstETH/USDC | ~$2.66m | Buffer-adjusted fresh-market method; wstETH → USDC executable liquidity; 65% soft-liquidation efficiency; max-LTV fallback. |
| wstETH/WETH | ~824 WETH | Buffer-adjusted fresh-market method; wstETH → WETH executable liquidity; max-LTV / high-LTV assumption; 0% soft-liquidation efficiency to reflect sudden correlated-asset basis dislocation risk. |
Once the Optimism markets are live, these fresh-market assumptions should be replaced by the live exposure-scale method using actual borrower positions and observed liquidation pressure.
Vote Specification
Configurator: 0xd36c590531cAF5F620C57Faf5827Ce8E7f6E5Bec
| # | Call | Target controller | Argument (native decimals) |
|---|---|---|---|
| 1 | set_borrow_cap |
wstETH/WETH 0x745422…F8C9 |
824e18 (824 WETH) |
| 2 | set_admin_percentage |
wstETH/WETH 0x745422…F8C9 |
1e16 (1%) |
| 3 | set_borrow_cap |
WBTC/USDC 0x9fC15a…56dE |
4.38e12 (4,380,000 USDC) |
| 4 | set_admin_percentage |
WBTC/USDC 0x9fC15a…56dE |
1e16 (1%) |
| 5 | set_borrow_cap |
wstETH/USDC 0xb5EC7A…BCAA |
2.66e12 (2,660,000 USDC) |
| 6 | set_admin_percentage |
wstETH/USDC 0xb5EC7A…BCAA |
1e16 (1%) |
Vote payload (boa / curve-voting-lib)
CONFIGURATOR = "0xd36c590531cAF5F620C57Faf5827Ce8E7f6E5Bec" # LlamaLend Markets Configurator
# (label, controller, borrowed_symbol, human_borrow_cap in whole borrowed-token units)
MARKETS = [
("wstETH/WETH", "0x745422BF49f3F6e4A8E12E4abD19339E7910F8C9", "WETH", 824), # 18d -> 824e18
("WBTC/USDC", "0x9fC15ac3EF97093832f49B7997A58E29b49C56dE", "USDC", 4_380_000), # 6d -> 4.38e12
("wstETH/USDC", "0xb5EC7A3D591877A66BE4f3eafdC4205E98A1BCAA", "USDC", 2_660_000), # 6d -> 2.66e12
]
ADMIN_PERCENTAGE = 10**16 # 1% (1e18 == 100%)
with vote(OWNERSHIP, DESCRIPTION, live_env=BrowserEnv()):
# No mainnet actions — all changes are on Optimism via xgov.
with xvote(OPTIMISM, OPTIMISM_RPC):
configurator = boa.from_etherscan(CONFIGURATOR, name="Configurator", api_key=ETHERSCAN_KEY)
for label, addr, *_ in MARKETS:
configurator.set_borrow_cap(addr, BASELINE[label]["raw_cap"]) # raw_cap = human_cap * 10**decimals
configurator.set_admin_percentage(addr, ADMIN_PERCENTAGE)
Appendix: borrower LTV behaviour in reference markets
To inform the pre-launch behavioural assumptions, we reviewed reference Curve Lend v1 markets on Ethereum and measured observed borrower LTV:
For each proxy market we compared historical LTVs, latest per-user LTVs, and debt-weighted LTVs. Debt-weighted LTV is the most relevant metric for cap sizing because caps are constrained by debt demand, not by the number of users. Unweighted LTV can overemphasise small accounts, while p99 is noisy and sensitive to outliers or liquidation-adjacent positions. The preferred behavioural input is therefore the historical debt-weighted p95 LTV, with the latest debt-weighted p95 as a sanity check — capturing aggressive but still representative behaviour without assuming every borrower sits exactly at the maximum allowed LTV.
WBTC/USDC → proxied by the WBTC–crvUSD LlamaLend v1 market:
wstETH/USDC → proxied by the wstETH–crvUSD LlamaLend v1 market:
wstETH/WETH → proxied by the sreUSD–crvUSD and sfrxUSD–crvUSD looping markets (LlamaLend v1):
Proposed behavioural assumptions
| Deployment | Proxy market | Debt-weighted p95 | Assumption |
|---|---|---|---|
| WBTC/USDC | WBTC–crvUSD | ~79.7% historical; ~69.6% latest | 80% base case |
| wstETH/USDC | wstETH–crvUSD | ~79.4% historical; ~75.0% latest | 80% base case |
| wstETH/WETH | looping proxy set | sfrxUSD–crvUSD ~96.8–97.0%; sreUSD–crvUSD ~92.3–95.3% | max-LTV / high-LTV |
For new markets, this empirical assumption serves as the base case. If the empirical-LTV scenario does not breach the hard-liquidation buffer under the stress scenario, the liquidity constraint is treated as non-binding under that behavioural assumption — which held for some markets here. In those cases, a max-LTV fallback is additionally run to produce an actionable initial cap.
Appendix: Market Parameterization
This appendix records how the amplification factor (A) and the liquidation and loan discounts were calibrated for each market, for context on why the markets are configured as they are. The values below are the ones configured for the markets.
Configured values
| Market | A | Liquidation discount | Margin | Loan discount |
|---|---|---|---|---|
| WBTC/USDC | 96 | 5% | 3% | 8% |
| wstETH/USDC | 83 | 11% | 3% | 14% |
| wstETH/WETH | 186 | 1.5% | 1.9% | 3.4% |
Method
The amplification factor is selected by sweeping 30 log-spaced values across the range A ∈ [30, 250] over historical price paths, choosing the value that minimises the liquidation-discount series.
Once A is fixed, discount calibration is performed separately from the parameter sweeps. The simulator rolls a 60-minute evaluation window (with extra conservatism over the 30-minute loan duration used in the sweeps) across the entire ~4-year dataset at a 1-minute stride, producing an exhaustive set of historical market scenarios. From this distribution:
- the liquidation discount is anchored to the worst 0.01% of outcomes (expected shortfall in the tail); and
- the loan discount is the more conservative of the worst 0.0025% of outcomes and liquidation discount + margin, where the margin floor is 3% for uncorrelated pairs and 0.5% for correlated pairs. The applied margin is
max(empirical margin, floor).
WBTC/USDC
Data: BTC–USDT spot on Binance, 11 Mar 2022 – 11 Mar 2026 (~4 years).
- A = 96 — located at the minimum of the liquidation-discount series.
- Liquidation discount = 5% (tail expected shortfall ≈ 5.01%).
- Margin = max(0.82%, 3%) = 3% (uncorrelated floor binds).
- Loan discount = 8% — taken as liquidation discount + margin, which is more conservative than the ~5.82% 0.0025%-tail estimate.
wstETH/USDC
Data: synthetic ETH–USDT spot on Binance (11 Mar 2022 – 12 Oct 2023) spliced to the wstETH-USD Pyth feed (12 Oct 2023 onward), spanning 11 Mar 2022 – 11 Mar 2026.
- A = 83 — located at the minimum of the liquidation-discount series.
- Liquidation discount = 11% (tail expected shortfall ≈ 10.73%).
- Margin = max(2.62%, 3%) = 3% (uncorrelated floor binds).
- Loan discount = 14% — taken as liquidation discount + margin, more conservative than the ~13.36% 0.0025%-tail estimate.
wstETH/WETH
Data: synthetic ETH–USDT spot on Binance combined with the wstETH-USD Pyth feed, 12 Oct 2023 – 11 Mar 2026.
- A = 186 — located at the minimum of the liquidation-discount series; the high value reflects the tight correlation of the pair.
- Liquidation discount = 1.5% (tail expected shortfall ≈ 1.47%).
- Margin = max(1.9%, 0.5%) = 1.9% (correlated floor of 0.5% does not bind).
- Loan discount = 3.4% — taken as liquidation discount + margin, marginally above the ~3.36% 0.0025%-tail estimate.






