Launching a Recovery Pool: Parameter Optimization for Distressed Assets on Curve
Following the ratification of the SQUID DAO Revenue Allocation & Lender Framework, the DAO is obligated to launch a TriCrypto pool on Fraxtal to serve as a recovery venue for lenders affected by the SQUID/crvUSD lending market collapse. This post documents the parameter selection process, including a reproducible simulation study using curvesim, the deployment, and the lessons learned along the way.

The Problem
The SQUID/crvUSD Llama Lend market on Fraxtal experienced a complete collateral collapse. SQUID lost effectively all value, leaving ~$133K in bad debt across 5 positions. The vault share price collapsed to $0.001253 (99.87% impairment), and utilization pinned at 100%, locking LPs out of withdrawals.
The SQUID DAO's response includes launching a TriCrypto pool containing:
- cvcrvUSD -- the Llama Lend vault share token (a claim on the impaired vault)
- frxETH – Frax Ether (the recovery asset)
- SQUID -- the DAO token
This isn't a normal trading pool. It's a recovery venue where lenders swap vault tokens for ETH or SQUID at a market-determined discount, and the DAO seeds liquidity from auction revenue over time. This distinction drives every parameter decision.
Why Not Just Use the Defaults?
The Curve UI offers a "Three Coin Volatile" preset. For most tricrypto pools, these defaults are reasonable. But this pool has three properties that make it unusual:
1. Extremely low initial TVL. The DAO's initial seed budget was ~$300 due to meager revenues. Most Curve pools launch with $50K-$500K+. At low TVL, every parameter choice that affects price impact on small trades matters.
2. A distressed token. The vault share token isn't a normal volatile asset – it's a claim on impaired lending market assets. Its "fair" price is a function of debt recovery expectations, not market sentiment. The pool needs to discover this price, not assume it.
3. One-directional flow. Lenders sell vault tokens; the DAO deposits ETH monthly. There's essentially no arbitrage or back-and-forth trading. The pool's job is orderly exit, not efficient two-way exchange.
We also had an anchor: the existing SQUID/frxETH pool was launched with custom parameters recommended by researcher Naga King, based on curvesim analysis of memecoin volatility profiles. That pool has been running successfully. Could we reuse those parameters, or do we need something different for a recovery pool?
Methodology
We used curvesim 0.5.0 to simulate 24 parameter combinations across three families, measuring five metrics weighted toward fair price discovery.
Three Candidate Families
Rather than sweeping blindly across hundreds of combinations, we tested three families with a 3x3 sub-sweep of A and gamma around each anchor:
The recovery-market variant was designed specifically for this use case: lower A gives wider bands (less aggressive repricing), slower adjustment step smooths price discovery, and higher fees defend the thin pool from toxic flow.
Scoring Rubric
We optimized for fair price discovery, not minimum slippage. The composite score weights:
Vault Token Pricing
The vault's on-chain pricePerShare is $0.001253, but this number is misleading -- it includes ~$85K of bad debt from a non-cooperative borrower in totalAssets. We tested three price assumptions:
Results
Finding 1: Parameters Barely Matter at Low TVL
This was the most important finding. The spread between the best and worst parameter combos was only 1.4 percentage points on the $10 swap:
At low TVL, slippage is dominated by pool depth, not curvature parameters. No parameter choice can fix this -- only more liquidity can.
Finding 2: The Fee Regime Is the Real Differentiator
The two non-UI families (memecoin anchor and recovery market) consistently outranked all UI baseline combos. The difference isn't A or gamma -- it's the fee structure:
Higher fees serve two purposes in a thin recovery pool:
- Defense against toxic flow. With low TVL, any trade is "large." Higher fees impose a cost on manipulation.
- Revenue accumulation. The virtual price grew ~0.5% over the 6-month simulation from fee collection alone. In a pool this thin, every basis point matters for LP protection.
The live SQUID/frxETH pool already proved this fee regime works. We inherited it.
Finding 3: Cross-Contamination Is Inherent to TriCrypto at Low TVL
Selling $50 of vault tokens moves SQUID's marginal price in the pool by -33.5% at $300 TVL, uniformly across all parameter combos. All three tokens share the same invariant – selling one token drains ETH from the pool, making all other tokens cheaper in ETH terms. No parameter set can decouple them at this depth. This coupling weakens as TVL grows.
Finding 4: Monthly ETH Deposits Dramatically Improve the Pool
The 6-month stress test simulated monthly $150 frxETH deposits (50% of DAO auction revenue) alongside periodic lender exits:
By month 6, the $10 swap impact dropped from 10.3% to 2.8% -- a 73% improvement. Virtual price rose monotonically, confirming the pool math stays healthy even with one-directional flows.
Finding 5: Vault Price Assumption Doesn't Change the Recommendation
We ran the full sweep at three vault token prices ($0.001253, $0.000451, $0.000125). The ranking was identical across all three. This means the launch price decision is independent of the parameter decision.
Chosen Parameters
A: 810,000
gamma: 0.00015
Mid Fee: 0.26%
Out Fee: 1.00%
Allowed Extra Profit: 0.000002
Fee Gamma: 0.00023
Adjustment Step: 0.00005
Moving Average Time: 866 seconds
Why recovery-market over memecoin-anchor? The scores are nearly identical (26.79 vs 26.87), but the recovery-market variant's slower adjustment step (5e-5 vs 1.46e-4) and longer moving average (866s vs 601s) provide smoother price discovery. In a pool where trades are infrequent, we prefer the pool that adjusts its internal pricing slowly and deliberately rather than chasing every trade.
Why not UI defaults? The UI baseline's low fees (0.03% mid) offer inadequate protection for a thin pool. Every UI baseline combo scored worse than every non-UI combo.
Vault Token Launch Price
We launched the vault token at 36% of on-chain PPS ($0.000451), reflecting the realistic recovery rate if cooperative borrowers repay (~$48K of $133K total assets) and the non-cooperative borrower's $85K is written off. Starting low is better than starting high for price discovery in a thin pool.
Live Pool
Pool: 0x11cb50654e2976a4bc03322b1cf8f0d780896c4f (factory-tricrypto-49)
Gauge: 0xb7d3f7b1577cc0d3c7d700c00353b96508f92112
The DAO seeded the pool with ~$1,400 in liquidity:
Current implied prices:
- cvcrvUSD: $0.000449 (35.8% of PPS -- on target)
- SQUID: $0.002140 (in line with external market)
- Virtual price: 1.0026 (healthy, fees accruing)
Lender Exit Performance
A lender exiting $5-$10 at a time loses 6-8% to slippage. At $50, it's 17%. These numbers improve with every DAO deposit – the simulation showed a 73% improvement in swap efficiency over 6 months of $150/month ETH deposits.
What Users Should Know
This is a thin recovery venue, not a robust exchange. The pool exists to give lenders an exit path and to establish a market-determined price for the impaired vault token. It is not designed for large trades or high-frequency activity.
The vault token is priced below its on-chain PPS. The on-chain pricePerShare of $0.001253 includes ~$85K of bad debt from a non-cooperative borrower. The pool prices the vault token at ~36% of PPS, reflecting the realistic recovery rate. If cooperative borrowers repay and the DAO continues seeding ETH, this percentage may increase over time.
The pool improves over time. The DAO commits 50% of auction revenue to ETH deposits. As TVL grows, slippage drops, cross-contamination decreases, and manipulation becomes more expensive.
Reproducibility
The full simulation is available at tricrypto_recovery_pool_sim.py built using the curve-stablecoin repository. Run it:
# Full study (all phases)
python tricrypto_recovery_pool_sim.py
# Phase 1 only (parameter sweep)
python tricrypto_recovery_pool_sim.py --phase 1
# Custom vault price
python tricrypto_recovery_pool_sim.py --vault-price 0.001253
# Different seed capital
python tricrypto_recovery_pool_sim.py --tvl 1000
Results are saved to tricrypto_recovery_pool_sim_results.json for further analysis.
This study was conducted for the SQUID DAO as part of the Revenue Allocation & Lender Framework implementation. The simulation code is open source and the results are fully reproducible.