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:

Family

A

gamma

Mid Fee

Out Fee

Rationale

UI Baseline

2,700,000

1.3e-6

0.03%

0.80%

Curve's default tricrypto preset

Memecoin Anchor

400,000

3e-5

0.26%

1.00%

From the live SQUID/frxETH pool (Naga King research)

Recovery Market

270,000

5e-5

0.26%

1.00%

Custom: lower A, slower adjustment, higher fees

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:

Metric

Weight

Why

Vault price realism

30%

Does the pool resist mispricing under moderate trades?

Manipulation cost

25%

How much capital to move vault price by 25-50%?

Exit slippage

20%

Price impact for lenders swapping $50-$100 of vault tokens

Cross-contamination

15%

Does selling vault tokens move SQUID price (and vice versa)?

Seed efficiency

10%

How usable is the pool with only $300 in it?

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:

Scenario

Price

% of PPS

Basis

PPS Parity

$0.001253

100%

On-chain value (includes unrecoverable debt)

Recovery

$0.000451

36%

Realistic: cooperative borrowers repay, bad debt written off

Pessimistic

$0.000125

10%

Deep discount for uncertainty and illiquidity

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:

Rank

Family

A

gamma

$10 impact

$50 impact

$100 impact

Score

1

Recovery Market

810,000

1.5e-4

8.3%

33.2%

50.0%

26.79

2

Memecoin Anchor

1,200,000

9e-5

8.6%

33.3%

50.1%

26.87

3

Recovery Market

270,000

1.5e-4

8.8%

33.4%

50.1%

26.94

...








22

UI Baseline

2,700,000

4.3e-7

9.7%

33.8%

50.4%

27.35

24

UI Baseline

900,000

4.3e-7

9.7%

33.8%

50.4%

27.40

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:


UI Baseline

Memecoin / Recovery

Mid Fee

0.03%

0.26%

Out Fee

0.80%

1.00%

Higher fees serve two purposes in a thin recovery pool:

  1. Defense against toxic flow. With low TVL, any trade is "large." Higher fees impose a cost on manipulation.
  2. 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:

Month

$10 Swap Impact

$30 Swap Impact

Virtual Price

1

-10.3%

-27.3%

1.002

3

-4.9%

-13.8%

1.004

6

-2.8%

-7.7%

1.005

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:

Token

Balance

Value

frxETH

0.1524

~$314

cvcrvUSD

728,459

~$328

SQUID

359,314

~$769

Total TVL


~$1,411

SQUID Rewards

250,000 (streaming)

~$553

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

Trade Size

Output

Slippage

$5 vault → frxETH

$4.68

6.3%

$10 vault → frxETH

$9.23

7.7%

$50 vault → frxETH

$41.28

17.4%

$100 vault → frxETH

$72.92

27.1%

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.

Read more