Gnosis EURe/USDC.e vs Base EURC/USDC – Pool Comparison

Gnosis EURe/USDC.e vs Base EURC/USDC — Pool Comparison

Both pools are FXSwap / Twocrypto-NG variants for EUR/USD stablecoin pairs. This report compares their behaviour across mechanics, economics, and trader composition from initial deployment through their analysed periods.

A very detailed report about the USDC/EURC pool on base:

https://www.cryptonative.ch/report-of-eurc-usdc-fxswap-curve-pool-on-base/

A report about the EURe/usdc.e pool on gnosis chain:

https://www.cryptonative.ch/report-of-eure-usdc-e-fxswap-curve-pool-on-gnosis/


1. Pool Configuration

Parameter Gnosis (EURe/USDC.e) Base (EURC/USDC)
Contract type FXSwap / Twocrypto-NG with refuel FXSwap / Twocrypto-NG with refuel
mid_fee 0.01% 0.05%
out_fee 0.30% 0.10%
Fee spread 30×
fee_gamma 0.003 0.003
A 1,000,000 1,500,000
gamma 1×10⁻⁴ 1×10⁻⁴
ma_time ~1 hour ~1 hour
admin_fee 50% 50%

The pools share the same fee-split architecture (50% rebalancing buffer / 25% DAO / 25% LP) and the same oracle half-life. The key difference is the fee curve: Gnosis uses a 30× spread (0.01%–0.30%) vs Base's 2× spread (0.05%–0.10%). Gnosis is calibrated to extract more fee income from large imbalancing trades while offering near-zero fees for near-oracle trades. This is well-suited to larger, less frequent trades.


2. Market Summary

Metric Gnosis (EURe/USDC.e) Base (EURC/USDC)
Period analysed Jan 22 – Apr 19, 2026 (88 days) Nov 10, 2025 – Mar 31, 2026 (142 days)
Active period 77 days (LP exited Apr 9) 142 days (ongoing)
Average TVL ~$83,449 ~$10,127
TVL ratio 8.2× larger
Total trades (active) 2,460 4,413
Trades per day 31.9 31.4
Total volume (active) $932,142 $136,279
Volume per day $12,106 $969
Median trade size $135 $24
Mean trade size $368 $31
Direction split 56.7% EURe→USDC.e 52.2% EURC→USDC
Median slippage +7.96 bps +5.53 bps
Gross fee APY +7.54% +2.00%
LP fee APY (25%) +1.88% +0.50%
Refuel cost (donor) ~$337 total ~$43 total
Divergence loss APY −3.20% −1.30%
LP vs HODL (realised) +$587 (+3.62% APY) +$129 (+1.29%) at Mar 31

The headline difference: same trade cadence, 5.6× larger trades, 12.5× more volume per day. Both pools average ~32 trades/day, but Gnosis median trade size is $135 vs $24 on Base. This is not random noise — it reflects fundamentally different user populations (see Section 5).


3. Fee Income and LP Economics

Fee structure in action

The fee in Twocrypto-NG is determined by the pool's imbalance state at the start of each trade, not by trade size. A tiny trade on a heavily imbalanced pool pays near out_fee; a large trade on a balanced pool pays near mid_fee.

The Gnosis pool was chronically imbalanced for much of its life — the refuel donations were fully exhausted by late February, leaving the rebalancing budget depleted and price_scale unable to track the oracle. As a result, most trades started from an imbalanced state and paid near out_fee (0.30%) regardless of size. This is visible in the top-50 data: several $5K–$9K trades pay 0.010–0.040% (near mid_fee) while other large trades pay 0.29–0.30% — the determining factor is pool state, not trade size.

  • Gnosis top-50 trades show a clear two-tier split: trades starting from an imbalanced pool pay 0.15–0.30% (near out_fee); trades starting near the oracle price (rebalancing direction) pay 0.01–0.02% (near mid_fee)
  • Base top-50 trades have narrower fee variation (0.05–0.10%) since the spread is only 2× and the pool stayed better-balanced

As a result, despite Gnosis's lower trade count per unit volume, gross fee APY is 3.8× higher — driven primarily by the pool's chronic imbalance, not by individual trade sizes.

Refuel subsidy burden

Both pools required LP token donations to fund their rebalancing buffers — i.e., neither was self-funding via fee income alone at these TVL/volume levels:

Pool Refuel donated LP fee income Refuel/LP ratio
Gnosis ~$337 ~$306 (LP's 25% of $1,223 gross) 110%
Base ~$43 ~$20 (LP's 25% of ~$80 gross over ~77 active days) 215%

The refuel burden is roughly proportional to rebalancing activity, which in turn depends on EUR/USD volatility and how far price_scale drifts from oracle. Both pools needed more refuel than the LP share earned — subsidised by the pool deployer/sponsor. Gnosis is closer to sustainability at higher TVL, but still dependent on the refuel subsidy.

LP outcome comparison

Gnosis Base
Start TVL $83,448 ~$3,500 (seed) / ~$10K (post-deposit)
Exit / snapshot $83,385 (Apr 9 exit) $3,619 at Mar 31 (ongoing)
LP vs HODL +$587 (+3.62% APY) +$129 (+1.29% APY)
Divergence loss −$520 (−3.20% APY) −$90 (−1.30% APY)
Total gross fees $1,223 ~$80 (partial)
DAO windfall? Yes — DAO never claimed before LP exit, LP captured extra $306 Not applicable (pool ongoing)
EUR/USD move −1.68% over active period (1.1870 → 1.1671) Volatile (1.05–1.12 range)

Gnosis's LP outcome is better in absolute and APY terms, though partly due to the DAO windfall. Even excluding it (+$398 vs HODL), Gnosis outperforms Base — driven primarily by much higher fee income per dollar of TVL.


4. Price Dynamics

Gnosis Base
EUR/USD range 1.1436 – 1.2043 1.05 – 1.12 (approx)
EUR/USD at pool start 1.1870 ~1.077
EUR/USD trend Rose Jan 29 (1.2043), fell to Mar trough (1.1436), recovered to exit (1.1671) Broadly rising over analysis period
Divergence loss driver EUR peaked then partially reversed EUR gradual rise created persistent DL
Rebalancing frequency ~86% of trades trigger price_scale update High
Slippage median (active) +7.96 bps +5.53 bps

Higher slippage on Gnosis has two components. The price-impact component (pure AMM mechanics) is driven by trade size relative to TVL. The fee component — which dominates on Gnosis — is driven by pool imbalance state: with the pool chronically imbalanced (refuel exhausted by late February), most trades paid near out_fee (0.30%), which directly appears as positive slippage. On Base, the pool stayed better-balanced and most trades paid near mid_fee (0.05%). The 30× fee spread on Gnosis vs 2× on Base amplifies this effect: when the pool is imbalanced, Gnosis charges 6× more than Base for the same pool-state condition.


5. Who Is Trading

This is where the pools diverge most sharply.

Buyer concentration

Gnosis Base
Unique buyer addresses 16 40
All buyers are contracts? Yes (15/16; 1 EOA with $14) Yes (40/40)
Top buyer % of volume 52.3% 23.4%
Top 2 buyers % of volume 81.9% 40.6%
Top 5 buyers % of volume 90.5% 63.5%

Gnosis is dramatically more concentrated. Two operator clusters account for 82% of all volume. Base spreads the same trade cadence across 40 buyers, the largest of which is 23% of volume.

User-facing routing

Protocol Gnosis Base
0x/Matcha (organic user flow) Not present 1,104 trades, $24,146 (4 contracts)
Curve Router 35 trades, $41,170 (Sidechain v1.1) 45 trades, $2,136 (Sidechain v1.1)
CoW Protocol (GPv2Settlement) 184 trades, $7,318 Not present
EIP-7702 smart wallets Not present 2 addresses, 207 trades, $10,283

Gnosis lacks Matcha presence entirely — a major organic-flow venue on Base. Instead, Gnosis has CoW Protocol, which is Gnosis chain's dominant user DEX. CoW's low average trade size ($40) confirms it routes genuine user swaps.

Natural vs automated flow

Metric Gnosis Base
Natural (user-routed) addresses 2 (CoW + Curve Router) 5 (4× Matcha + Curve Router)
Natural trades 219 (8.6%) 1,149 (24.0%)
Natural volume $48,488 (5.2%) $26,282 (17.9%)
Automated/unidentified trades 2,313 (91.4%) 3,646 (76.0%)
Automated/unidentified volume $883,856 (94.8%) $120,693 (82.1%)

Gnosis is even more automation-dominated than Base: 94.8% of volume flows through unidentified automated contracts vs 82.1% on Base. The Gnosis natural-flow share is barely 5% by volume — almost all trading is programmatic.

Operator clusters vs confirmed arb bots

Base has 7 confirmed arb bots (bytecode analysis + tx-receipt analysis). Gnosis has 4 operator clusters identified by deployer EOA, of which Cluster B shows bytecode matching confirmed Base arb bots:

Base Gnosis
Confirmed arb bots 7 (tx-receipt + bytecode analysis) 0 confirmed (no tx analysis)
Bytecode-matching arb contracts n/a 2 (Cluster B, 24,533b + 24,558b = exact match to Base bots)
Operator clusters identified 1 (0xd2be32db cluster) 4 (A, B, C, D)
% volume from confirmed/likely bots 55.2% (confirmed) 94.8% (unidentified automated)
% volume from natural flow 17.9% (Matcha + Curve Router) 5.2% (CoW + Curve Router)

The Base arb bots operate at high frequency with small per-trade profit margins (~$24 median). On Gnosis, the "automated" category includes different profile bots: Cluster A and C trade much larger ($601 and $540 avg) at lower frequency — more consistent with a market-making or rebalancing strategy than pure arb.

Cross-chain contract

Contract 0xc10ee9031f2a0b84766a86b55a8d90f357910fb4 appears as a buyer on both chains, with identical 20,486-byte bytecode:

Base Gnosis
Trades 54 187
Volume $538 $39,424
Avg trade $10 $211

The same contract is 73× more profitable per trade on Gnosis, suggesting it's primarily calibrated for Gnosis chain EUR/USD pools.


6. What the Pools Share

Despite the differences, both pools share several structural features:

  1. Zero retail wallets. All trades on both pools go through intermediary contracts. No EOA has ever called exchange() directly in a meaningful way. Both pools exist entirely within the context of automated on-chain infrastructure.

  2. Same fee architecture (50/25/25 split) and same rebalancing mechanism. Both required external refuel subsidies — neither was self-funding.

  3. Same trade cadence (~32 trades/day), despite radically different TVL and trade sizes. This is a striking structural similarity: the pools seem to attract whatever automated activity exists in their ecosystem up to a "saturation" level of ~32 trades/day, regardless of pool size.

  4. Curve Router as organic signal. The official Curve Router appears on both chains (35–45 trades, $2K–$41K), confirming it as a reliable proxy for "user-initiated via Curve UI" flow. Its presence on both chains validates it as a cross-chain natural-flow benchmark.

  5. Twocrypto-NG peg stability. Both pools maintained good peg discipline (sub-10 bps median slippage on active trades), demonstrating that the FXSwap/Twocrypto-NG design works for EUR/USD at both small ($10K) and medium ($83K) TVL sizes.

  6. Arb bot ecosystem overlap. Cluster B on Gnosis (deployer 0xaaBBcC) deploys contracts with bytecode matching the confirmed Base arb bot cluster (0xd2be32db operator). This indicates a shared codebase — the same arb bot software is being deployed across both chains by potentially connected operators.


7. Summary

Dimension Gnosis Base Implication
Scale 8× larger TVL Smaller Gnosis more economically viable at current TVL
Trade profile Large, infrequent Small, frequent Different automation strategies
Buyer diversity 16 addresses, highly concentrated 40 addresses, more distributed Gnosis = fewer, larger players
Natural flow 5% of volume 18% of volume Base has more retail/user demand
Automation type Market-making / treasury bots? High-frequency arb bots Gnosis bots are larger-scale
LP economics +3.62% vs HODL APY (realised) +1.29% vs HODL APY (estimated) Gnosis more profitable for LP
Sustainability Needs refuel but closer Heavily subsidy-dependent Both need larger TVL to self-fund
Cross-chain operators Present (Cluster B, 0xc10ee) Present (Cluster B, 0xc10ee) Shared operator ecosystem

Bottom line: Gnosis and Base are running the same pool design in two distinct ecosystems. Gnosis has larger, more concentrated trading by a small number of well-capitalised automated operators, yielding better LP returns at higher TVL. Base has more decentralised activity with more retail-adjacent flow (via Matcha), but at lower TVL and lower fee income. Both operate almost exclusively through automated intermediaries, with natural user flow accounting for under 20% of volume on either chain.

Report of EURe/USDC.e FXswap Curve Pool on gnosis

EURe/USDC.e Curve Pool (Gnosis) — Analysis Report

Pool: 0xaCDc85AFCD8B83Eb171AFFCbe29FaD204F6ae45C (FXSwap / Twocrypto-NG with refuel, Gnosis chain)

Dataset: Jan 22 → Apr 19, 2026 (88 days). LP exited Apr 9 (TVL $83,502 → $116 dust). Active period: Jan 22 – Apr 9 (77 days).

Pool type: Same as Base EURC/USDC — FXSwap variant of Twocrypto-NG with built-in refuel mechanism (packed_rebalancing_params present). Fee split: 25% LP / 25% DAO / 50% rebalancing buffer (same as all twocrypto-ng/FXSwap pools with ADMIN_FEE = 50%).


Pool Configuration

Parameter Raw value Scaled Meaning
A 1,000,000 1,000,000 Amplification; higher = tighter peg near oracle
gamma 1×10¹⁴ 0.0001 Width of concentrated liquidity region
mid_fee 1,000,000 0.01% Fee when pool is at oracle price (balanced)
out_fee 30,000,000 0.30% Fee when pool is maximally off-balance
admin_fee 5×10⁹ 50% Share of gross fee routed to Admin (DAO + rebalancing)
fee_gamma 3×10¹⁵ 0.003 Controls how fast fee ramps from mid to out
allowed_extra_profit 1×10⁶ 1×10⁻¹² Profit threshold before price_scale update triggers
adjustment_step 1×10¹⁵ 0.001 (0.1%) Maximum fraction of (oracle − price_scale) moved per rebalance
ma_time 3,605 ~1 hour EMA half-life for price_oracle
virtual_price (Apr 9 pre-exit) 1.009682 LP token value growth since inception (+0.97%)
xcp_profit (Apr 9 pre-exit) 1.015804 Cumulative pool profit growth (+1.58%); includes Admin share not yet extracted
xcp_profit_a 1.000000 Baseline at last Admin claim; = 1.0 means Admin fees have never been extracted
donation_shares 0 Refuel budget exhausted (see refuel note below)

LP exit (Apr 9): Between the 12:00 and 18:00 UTC slots, pool TVL dropped from $83,502 to $116 — the single LP removed virtually all liquidity. The pool continues operating as dust ($116 TVL) through Apr 19 with 72 additional small trades.

Fee split (FXSwap / twocrypto-ng with ADMIN_FEE = 50%, same for both pools):

Destination Share Mechanism
Rebalancing buffer 50% of gross Stays as xcp_profit − virtual_price gap; spent each time price_scale moves
DAO 25% of gross Claimed as LP tokens via _claim_admin_fees() — note: ADMIN_FEE/2 because half already went to rebalancing
LP 25% of gross Accrues via virtual_price increase (after DAO claim)

Fee range: mid_fee 0.01% → out_fee 0.30% is a 30× spread, controlled by fee_gamma. Compare Base pool (0.05% → 0.10%, 2× spread) — Gnosis is deliberately more aggressive on large imbalancing trades.

Refuel: Refuel is not a gas cost — it is LP token donations that top up the rebalancing budget when 50% of fee income is insufficient to keep price_scale tracking the oracle. Donations increase the pool's xcp value (boosting vp_boosted via the locked_supply denominator) without raising xcp_profit, thereby creating headroom above the floor for more rebalancing.

Three donations were made to this pool; their USD value (= LP tokens donated × virtual_price at time) was consumed entirely by approximately late-February 2026:

Sample block donation_shares (LP) ≈ USD value Event
44295468 15.57 ~$33.7 Already present at first snapshot (initial seed donation)
44338668 46.24 ~$100.6 +30.7 LP tokens donated
44381868 155.87 ~$342.3 +109.6 LP tokens donated (large donation, coincides with big LP deposit)
44641068 52.0 ~$114 Consumed ~100 LP tokens worth since peak
44986668 0.0 $0 Fully exhausted — pool now runs on fee buffer only
45263793 0.0 $0 Still exhausted at end of active period

Total refuel donated: ≈ 155.9 LP tokens ≈ $337 USD (paid by the refuel provider, not LP holders).

Rebalance detection note: adjustment_step = 0.001 moves price_scale by 0.1% of the gap to oracle per update (not 0.1% of price itself). For a 0.2% oracle-price_scale gap, each step is only 0.0002% — individual steps are tiny. The data shows approximately 86% of trades trigger a price_scale update. Rebalancing cost estimated via CPAMM IL formula: negligible (Gnosis gas is essentially free).


1. Summary Stats — Jan 22, 2026 → Apr 19, 2026

Metric Value
Period Jan 22 – Apr 19, 2026 (88 days; LP exited Apr 9)
Active period Jan 22 – Apr 9 (77 days, 2,460 trades)
Dust period Apr 10 – Apr 19 (72 trades, $216 vol — pool TVL $116)
Total swaps 2,532
Overall median trade size $135.38
Overall mean trade size $368.23 (right-skewed; large orders pull mean 2.7× above median)
Total USD swap volume $932,357.97
TVL phase 1 (Jan 22–27) ~$35,200 – ~$35,500 (initial seed LP)
TVL phase 2 (Jan 28 – Apr 9) ~$83,400 – ~$84,100 (steady after large LP deposit; LP exited Apr 9)
Average TVL phase 2 ~$83,449
Direction split 56.7% EURe→USDC.e / 43.3% USDC.e→EURe
Median slippage (active period) +7.96 bps
Mean slippage (active period) +12.80 bps
EUR/USD price range 1.1436 – 1.2043 (rose to peak Jan 29, fell through mid-Mar, recovered to ~1.1671 at LP exit)

TVL structure:

  • Phase 1 (Jan 22–27): ~$35K initial seed. Pool seeded with ~14,262 EURe + ~18,481 USDC.e.
  • Jan 28: A large LP deposit doubled the pool overnight: EURe 14,600 → 32,630, USDC.e 17,500 → 44,715. TVL jumped to ~$83.5K.
  • Phase 2 (Jan 28 → Apr 9, 71 days): ~$83–84K TVL. All P&L analysis below uses phase 2.
  • Apr 9: LP removed virtually all liquidity between the 12:00 and 18:00 UTC slots. TVL dropped from $83,502 to $116.
  • Dust period (Apr 10–19): Pool operating with $116 TVL. 72 small trades (max $57) with extreme slippage (min −607 bps, max +900 bps) due to near-empty pool.

Monthly breakdown

Month Trades Volume (USD) Gross Fees
Jan 2026 403 $131,104 $244.42
Feb 2026 645 $288,560 $484.17
Mar 2026 1,163 $417,481 $447.92
Apr 2026 321 $95,214 $105.12 (249 active Apr 1–9 + 72 dust Apr 10–19)

2. Fee Income, Divergence Loss & Full P&L — Phase 2 (Jan 28 → Apr 9 exit, 71 days)

Fee income

Metric Value APY (avg TVL $83,449, 71 days)
Total gross fees (phase 2) $1,223.22 +7.54%
├─ LP share (25%) $305.81 +1.88%
├─ DAO share (25%, unclaimed) $305.81 +1.88%
└─ Rebalancing buffer (50%) $611.61 +3.77%
Average fee rate 0.137% of volume

Note: xcp_profit_a = 1.0 confirms DAO fees have never been extracted from this pool. Since LP exited on Apr 9 before any DAO claim was made, the LP captured the full pool TVL proportionally — effectively receiving the DAO's pending 25% share ($306) as an unintended windfall. Had DAO claimed first, LP's "true value" would be $83,502 − $306 = $83,196 (vs HODL +$398). Since LP exited first, actual realized value was $83,385 (vs HODL +$587).

Divergence loss decomposition

EUR/USD fell −1.68% over phase 2 (1.1870 → 1.1671, Jan 28 → Apr 9 exit).

All fees are still in the pool at time of LP exit (xcp_profit_a = 1.0, no Admin extraction ever). So "pool without fees" = pool TVL − all gross fees = $83,502 − $1,223 = $82,279.

Component Amount
HODL value at exit EUR/USD 1.1671 (start assets, no AMM) $82,798
Pool without any fees (pure AMM value) $82,279
Divergence loss (AMM vs HODL, before fees) −$520

EUR/USD fell then partially recovered over the 71-day period (peak 1.2043 on Jan 29, trough 1.1436 in mid-March, recovery to 1.1671 at exit). The AMM sold EURe as EUR rose and bought back as EUR fell. The near-round-trip reduced but did not eliminate divergence loss.

Full LP P&L (phase 2: Jan 28 → Apr 9 exit)

Line item Amount APY (71 days)
Start value (Jan 28) $83,448
HODL at Apr 9 exit (EUR/USD 1.1671, −1.68%) $82,798 −8.62% APY
LP exit value received (Apr 9) $83,385
LP vs start −$63 −0.39% APY
LP vs HODL +$587 +3.62% APY
├─ Price effect (HODL vs start) −$650 −4.50% APY
├─ Divergence loss (AMM vs HODL, pool-level) −$520 −3.20% APY
└─ All gross fees captured by LP (DAO never extracted) +$1,222 +7.53% APY

LP vs HODL = +$587 despite EUR falling 1.68%. Fee income ($1,222 total gross captured by LP since DAO never claimed) far exceeds divergence loss ($520). Additionally, ~$337 in refuel donations funded extra rebalancing capacity in the early period — that cost was borne by the refuel provider, not LP holders.

Fee capture note: LP received 99.86% of pool TVL at exit (38,231 of 38,284 total LP tokens redeemed). LP captured 99.86% of all accumulated fees — the equivalent of all 4 "quarters" of fee income (LP's 25% + DAO's unclaimed 25% = 50% of gross; rebalancing buffer 50% was consumed by IL). This is specific to this pool's history; DAO would eventually claim their share in any long-running pool.

Monthly P&L snapshots

True LP value = Pool TVL − pending DAO claim (25% of cumulative gross fees since Jan 28) — reflects value LP would receive if DAO claimed just before LP exit.
Div loss = (Pool TVL − cumulative gross fees) − HODL value.

Period EURe USDC.e EUR/USD Pool TVL HODL Cum fees Div loss True LP vs Start vs HODL
Jan 28 start 32,631 44,715 1.1870 $83,448 $83,448 $0 $83,448 $0
End Jan 37,818 38,939 1.1936 $84,077 $83,662 $185 +$231 $84,031 +$582 +$369
End Feb 36,717 40,634 1.1812 $84,003 $83,257 $670 +$76 $83,835 +$387 +$578
Mar 31 30,707 47,612 1.1532 $83,023 $82,345 $1,118 −$441 $82,743 −$706 +$398
Apr 9 exit 27,482 51,428 1.1671 $83,502 $82,798 $1,223 −$520 $83,385 −$63 +$587

†At exit, LP received actual value = $83,385 (full pool proportional share, since DAO never claimed before LP exit). True LP if DAO had claimed first = $83,196 (vs HODL +$398).

Key observations:

  • Jan–Feb (EUR rising): Divergence loss was positive — AMM was ahead of HODL before fees. Pool TVL grew from $83.4K → $84.1K.
  • Feb–Mar (EUR falling): EUR peaked at 1.2043 (Jan 29) then fell to 1.1436 by mid-March. Divergence loss turned sharply negative as EUR reversed without a full round-trip. LP value dropped to $82,743 (true LP, −$706 vs start).
  • Mar–Apr (EUR recovering): EUR/USD recovered to 1.1671 by LP exit. Divergence loss partially unwound from −$441 to −$520 (it actually worsened slightly in April as pool composition shifted). LP vs HODL improved: +$398 (Mar 31) → +$587 (Apr 9 exit).
  • Balance shift mirrors EUR/USD: EURe 32,631 → 27,482; USDC.e 44,715 → 51,428 — pool became USDC.e-heavy as EUR weakened overall then rebounded.

3. Top 50 Trades by Size — with Slippage

Slippage = deviation of actual execution rate from price_scale (pool's internal oracle).
price_scale = EURe per USDC.e (~0.857). Positive = trader paid more (or received less EURe) than oracle. Negative = favorable execution (pool was imbalanced, rewarding the rebalancing trade).

  • sold_id=0 (EURe→USDC.e): slippage = (actual_EURe/USDC.e − price_scale) / price_scale × 10,000
  • sold_id=1 (USDC.e→EURe): slippage = (price_scale − actual_EURe/USDC.e) / price_scale × 10,000

Slippage stats — 2,460 active trades (Jan 22 – Apr 9; dust period Apr 10-19 excluded)

Stat Value
Median slippage +7.96 bps
Mean slippage +12.80 bps
Min −107.57 bps (favorable; pool was imbalanced)
Max +154.02 bps (large price impact)
P5 −12.35 bps
P95 +52.36 bps

Dust period (72 trades, Apr 10-19, $116 pool TVL): slippage ranges −607 to +900 bps — extreme due to near-empty pool. Excluded from the stats above.

Top 50 trades (by USD size)

# Date (UTC) Direction USD Size Slippage (bps) Fee% Block
1 2026-01-30 14:12 USDC.e→EURe $19,330.08 +70.88 0.294% 44423816
2 2026-03-30 17:44 USDC.e→EURe $18,704.40 +62.72 0.293% 45419780
3 2026-02-27 14:07 USDC.e→EURe $14,067.03 +63.66 0.292% 44895314
4 2026-02-25 21:24 USDC.e→EURe $12,521.39 +66.82 0.292% 44867026
5 2026-02-24 18:23 USDC.e→EURe $10,558.66 +47.95 0.283% 44848028
6 2026-02-09 13:18 USDC.e→EURe $10,183.57 +70.66 0.291% 44592419
7 2026-02-27 14:18 USDC.e→EURe $9,470.60 +82.81 0.292% 44895444
8 2026-02-02 10:47 USDC.e→EURe $9,236.70 +65.40 0.289% 44471824
9 2026-03-16 00:16 USDC.e→EURe $8,789.64 −13.92 0.012% 45170243
10 2026-03-03 14:08 USDC.e→EURe $8,751.59 −13.83 0.040% 44962600
11 2026-01-30 14:14 EURe→USDC.e $8,733.38 −26.60 0.256% 44423840
12 2026-04-03 06:52 USDC.e→EURe $8,310.13 +45.76 0.277% 45479875
13 2026-03-30 17:46 EURe→USDC.e $8,280.04 −20.43 0.012% 45419811
14 2026-04-03 07:00 USDC.e→EURe $8,221.98 +47.59 0.279% 45479962
15 2026-03-09 09:31 USDC.e→EURe $7,959.79 −15.13 0.013% 45060279
16 2026-04-03 07:00 EURe→USDC.e $7,884.44 −19.18 0.012% 45479962
17 2026-03-09 14:27 EURe→USDC.e $7,879.47 −16.82 0.014% 45063627
18 2026-04-03 06:52 EURe→USDC.e $7,647.09 −18.30 0.011% 45479875
19 2026-03-18 13:02 EURe→USDC.e $7,025.58 −14.48 0.014% 45213048
20 2026-03-10 18:18 EURe→USDC.e $6,830.41 −11.89 0.012% 45082648
21 2026-03-24 13:09 EURe→USDC.e $6,476.29 −13.63 0.012% 45314750
22 2026-03-03 10:53 EURe→USDC.e $6,368.12 +92.50 0.295% 44960334
23 2026-03-20 10:09 EURe→USDC.e $6,202.43 −7.99 0.036% 45244792
24 2026-03-02 11:00 USDC.e→EURe $5,941.49 −9.43 0.012% 44943761
25 2026-04-02 01:30 EURe→USDC.e $5,675.08 −10.97 0.011% 45459156
26 2026-01-29 06:49 USDC.e→EURe $5,406.72 −7.54 0.010% 44401868
27 2026-03-09 16:50 USDC.e→EURe $5,207.16 +53.33 0.278% 45065253
28 2026-01-29 10:29 USDC.e→EURe $5,116.54 +48.38 0.273% 44404419
29 2026-01-27 12:53 USDC.e→EURe $5,079.04 +70.32 0.287% 44373447
30 2026-03-09 14:02 USDC.e→EURe $5,061.04 +52.77 0.277% 45063344
31 2026-02-02 09:14 USDC.e→EURe $4,751.36 −6.95 0.010% 44470738
32 2026-04-02 15:29 USDC.e→EURe $4,657.20 −6.57 0.010% 45469012
33 2026-02-02 12:06 EURe→USDC.e $4,619.83 −3.22 0.155% 44472736
34 2026-03-03 23:36 EURe→USDC.e $4,388.22 −6.72 0.014% 44969195
35 2026-03-10 08:08 USDC.e→EURe $4,275.68 +78.19 0.290% 45075693
36 2026-03-19 13:53 USDC.e→EURe $4,137.40 −6.33 0.014% 45230541
37 2026-02-27 14:34 EURe→USDC.e $4,107.86 −9.26 0.023% 44895628
38 2026-03-03 16:13 EURe→USDC.e $4,092.44 −9.59 0.014% 44964055
39 2026-03-03 16:03 USDC.e→EURe $4,065.68 +32.88 0.229% 44963941
40 2026-02-10 10:37 USDC.e→EURe $3,829.63 +114.65 0.293% 44607436
41 2026-03-27 10:56 USDC.e→EURe $3,787.61 −0.95 0.031% 45364095
42 2026-02-25 23:17 EURe→USDC.e $3,621.95 −2.62 0.121% 44868322
43 2026-03-03 15:41 USDC.e→EURe $3,472.64 −6.76 0.010% 44963684
44 2026-03-23 11:06 USDC.e→EURe $3,238.01 −5.58 0.010% 45296314
45 2026-02-10 10:39 EURe→USDC.e $3,214.99 −51.65 0.292% 44607464
46 2026-03-30 14:38 USDC.e→EURe $3,088.75 +18.53 0.153% 45417587
47 2026-03-25 17:19 USDC.e→EURe $2,993.81 +3.30 0.049% 45334701
48 2026-02-24 18:42 EURe→USDC.e $2,977.33 −6.33 0.010% 44848260
49 2026-02-24 18:42 EURe→USDC.e $2,976.92 −1.76 0.195% 44848260
50 2026-02-10 10:39 USDC.e→EURe $2,976.68 +154.02 0.293% 44607455

Slippage stats on top-50: median −4.40 bps, mean +19.97 bps, min −51.65 bps, max +154.02 bps.

Two-tier fee pattern: Rows 1–8, 12, 14, 18, 22, 27–30, 35, 39–40, 46, 50 show fees 0.15–0.30% (near out_fee = 0.30%) — trades that started when the pool was significantly imbalanced, paying the high end of the dynamic fee regardless of size. Rows 9–11, 13, 15–17, 19–21, 23–26, 31–34, 36–38, 41–45, 47–49 show 0.010–0.015% (near mid_fee = 0.01%) — trades starting when the pool was near the oracle price. Note that trade size is not the determining factor: rows 9 ($8,789) and 10 ($8,751) are large trades paying near mid_fee because the pool was balanced at their start. Fee is set by pool imbalance state at trade start, not by trade size.

April trades (rows 12, 14, 16, 18, 25, 32): Six April trades entered the top 50. The Apr 3 cluster (rows 12, 14, 16, 18: $7.6K–$8.3K) shows paired buy/sell within the same block (block 45479875: $8,310 buy + $7,647 sell; block 45479962: $8,222 buy + $7,884 sell) — arbitrage round-trips. The Apr 2 trades (rows 25, 32: $4.7K–$5.7K) are directionally net EURe selling.

Negative slippage = favorable execution: Rows 9–11, 13, 15–17 etc. show negative slippage — these trades were pushing the pool back toward equilibrium, so the AMM rewarded them with better-than-oracle rates.


4. Pool Comparison: Gnosis vs Base

Gnosis figures are final (LP exited Apr 9). Base figures are through Mar 31, 2026.

Metric Gnosis (EURe/USDC.e) Base (EURC/USDC)
Period 77 days active (Jan 22 – Apr 9); LP exited Apr 9 140.6 days (Nov 10, 2025 – Mar 31, 2026)
Average TVL ~$83,449 ~$10,127 (pre-deposit avg)
Total active trades 2,460 4,413
Trades per day 31.9 31.4
Total volume (active period) $932,142 $136,279
Volume per day $12,106 $969
Median trade $135 $24
Mean trade $368 $31
Median slippage +7.96 bps +5.53 bps
Fee range 0.01% – 0.30% 0.05% – 0.10%
Gross fee APY +7.54% +2.00%
LP fee APY (25% of gross) +1.88% +0.50%
Refuel cost (paid by donor, not LP) ~$337 total (≈ 110% of LP fees) ~$43 total (≈ 217% of LP fees)
Divergence loss APY (pool-level) −3.20% −1.30%
LP vs HODL (realized at exit) +$587 (+3.62% APY) +$129 (+1.29%) at Mar 31

Key differences:

  1. Similar trade frequency, 5.6× larger trades, 12.5× more volume per day: Gnosis sees ~32 trades/day vs 31.4 on Base — nearly identical cadence — but median trade is $135 vs $24. This confirms a different user base — institutional/bridge EUR↔USD flows rather than retail swaps.
  2. Higher divergence loss on Gnosis (−3.20% vs −1.30% APY): Larger trades create more price impact. Gnosis's wider fee range (30× spread vs 2×) compensates with higher gross fee income (+7.54% vs +2.00%).
  3. Both pools required refuel subsidies substantially exceeding LP fee income: Gnosis received ~$337 in LP token donations (110% of LP fee income over 77 active days); Base received ~$43 (217% of LP fee income over 140.6 days). Refuel is LP token donations that top up the rebalancing budget — entirely separate from gas costs. Neither pool was self-funding at these TVL/volume levels, though Gnosis is closer to sustainability at $83K TVL vs Base's $10K.
  4. Gnosis LP outcome: realized +$587 vs HODL (+3.62% APY). The LP was fortunate that DAO never extracted fees before their exit, capturing an extra ~$306 windfall (DAO's 25% of gross fees). Even excluding that windfall, the LP's "standard" outcome would have been +$398 vs HODL (+2.53% APY) — still comfortably positive despite divergence loss.
  5. EUR/USD movement and pool timing: Gnosis saw a larger EUR move (peak 1.2043 → exit 1.1671, −3.1% from peak) but EUR/USD ended below start (+1.1870 → 1.1671 = −1.68%). The partial recovery from March trough (+1.1436) to exit (+1.1671) reduced cumulative divergence loss materially (from −$441 at Mar 31 to −$520 at exit, vs peak loss that would have occurred at EUR trough).

5. Who Is Trading — Buyer Address Analysis

The TokenExchange event records buyer = msg.sender at the pool. Across 2,532 trades from 16 unique buyer addresses, 15 are smart contracts and 1 is an EOA (3 tiny trades totalling $14). Like the Base pool, zero retail wallets interact with this pool directly — all trading flows through intermediary contracts.

Summary by operator cluster

Group Addresses Trades % Trades Volume % Volume Status
Cluster A (deployer 0x5E9ff, 91.96 xDAI) 2 837 33.1% $488,071 52.3% Suspected (intermediate contract routing)
Cluster C (deployer 0xdA74, 490 xDAI) 4 512 20.2% $276,162 29.6% Confirmed arb bots (tx-receipt)
Cluster B (deployer 0xaaBBcC, arb-like bytecode) 2 507 20.0% $39,938 4.3% Suspected (intermediate contract routing)
Cluster D (deployer 0xDd036) 2 265 10.5% $40,214 4.3% Confirmed arb bots (tx-receipt)
LiFi Protocol (0xc10ee, also on Base) 1 187 7.4% $39,424 4.2% Identified — LiFiDiamond router
CoW Protocol (GPv2Settlement) 1 184 7.3% $7,318 0.8% Identified
Curve Router Sidechain v1.1 1 35 1.4% $41,170 4.4% Identified
EOA / dust 3 5 0.2% $55 ~0%

6 arb bots confirmed (Clusters C + D, tx-receipt analysis). Four deployer-based clusters account for 82% of all trades and 90.5% of volume. Trading is highly concentrated: the top 2 clusters alone represent 1,349 trades (53.3%) and $764,233 (82.0%) of volume — significantly more concentrated than Base (top buyer 17.6%).

Deployer clusters

Cluster A — deployer 0x5E9ff1D1f2017Fc69b5e3aCCB0d47fc504093973 (EOA, 91.96 xDAI):

The dominant contract's 11,421-byte bytecode is identical in size to 0x183f91b34265958fb5fef5b5494c9d517d8adf95 on Base (3 trades, $692) — the same bytecode deployed on both chains, but overwhelmingly more active on Gnosis. Both are unverified. Avg trade size: $601 (Gnosis) vs $231 (Base). The operator holds 91.96 xDAI on Gnosis, consistent with a funded automated trading operation.

Tx-receipt test: both contracts route to a fixed intermediate contract 0x212be33e... (unverified, not an EOA) in every sampled transaction — 30/30 for 0x405df, 29/29 for 0xda06. This intermediate contract is likely their profit-routing layer. Same pattern as the Base bot 0xf4cd (which also routes profits via an intermediate contract before reaching an EOA). Cannot confirm by tx-receipt criterion alone; bytecode analysis would be needed.

Cluster C — deployer 0xdA74c47B560028Cc864e2C7C064E1B05e994D41C (EOA, 490 xDAI) — CONFIRMED ARB BOTS:

All four share near-identical bytecode size (21,770–21,964 bytes) and were deployed by the same EOA. Tx-receipt test: all four send ERC-20 profits directly to the deployer EOA 0xdA74c47B560028Cc864e2C7C064E1B05e994D41C in every transaction (30/30, 29/29, 30/30, 2/2). The profit wallet IS the deployer — no intermediate contract. Confirmed arb bots. Avg trade size $540.

Cluster B — deployer 0xaaBBcC932C7141a016FA08B514Ec10Bd1Db89702 (EOA, ~3.25 xDAI):

The bytecode sizes are exact matches to confirmed arb bots on the Base pool: 0x4e48d4885871b4dd2ea91a2aed9390b8908fe525 (24,533b) and 0x31b761a1dc1404d291d05bae055b78f99a9243e9 (24,558b). The Gnosis versions likely share the same codebase, deployed by a different operator on Gnosis. Avg trade size: $79 — small, consistent with frequent low-margin arb.

Tx-receipt test: both route to a fixed intermediate contract 0xc87442b4... (unverified) in every sampled tx (30/30 each, only 2–3 unique recipients total). Same intermediate-contract profit-routing pattern as Cluster A. Cannot confirm by tx-receipt alone, but the bytecode match with confirmed Base arb bots makes this the strongest indirect evidence.

Cluster D — deployer 0xDd036474388108B3b1304Db2C88C951D6d95038CCONFIRMED ARB BOTS:

Tx-receipt test: both route profits directly to the deployer EOA 0xDd036474388108B3b1304Db2C88C951D6d95038C in every sampled tx (30/30 and 5/5). Confirmed arb bots. The 4,830-byte 0x0bfc is the compact workhorse (261 trades, $154/trade avg).

Identified protocols

CoW Protocol (GPv2Settlement)0x9008d19f58aabd9ed0d60971565aa8510560ab41 — 184 trades, $7,318. The CoW Protocol batch settlement contract is the canonical DEX for Gnosis chain and is used heavily for genuine user-initiated swaps. Trades routed via CoW represent organic user demand. Small trade sizes ($40 average) confirm these are end-user orders.

Curve Router Sidechain v1.10x0dcded3545d565ba3b19e683431381007245d983 — 35 trades, $41,170. The official Curve sidechain router (CurveRouterSidechainTricryptoMetav1.1, verified). Avg trade $1,176 — large, user-initiated swaps via Curve's own routing UI or integrations.

LiFi Protocol0xc10ee9031f2a0b84766a86b55a8d90f357910fb4 — 187 trades, $39,424, 20,486b. This exact address appears as buyer #21 on the Base pool (54 trades, $538) with the same 20,486-byte bytecode. Tx-receipt test: every sampled tx forwards tokens to LiFiDiamond (verified, EIP-2535 bridge/aggregator) — 30/30 on Gnosis. This is a LiFi integration contract routing through the Curve pool as part of a cross-chain swap path, not an arb bot. Reclassified from "cross-chain unknown" to LiFi Protocol adapter.

Tx-receipt analysis summary

Address Cluster Txs sampled Top recipient EOA? Count Verdict
0x405df A 30 0x212be33e… (contract) no 30/30 Suspected — intermediate contract
0xda06 A 29 0x212be33e… (contract) no 29/29 Suspected — intermediate contract
0x2da3 B 30 0xc87442b4… (contract) no 30/30 Suspected — intermediate contract
0x57080 B 30 0xc87442b4… (contract) no 30/30 Suspected — intermediate contract
0x51d9 C 30 0xda74c47b… (deployer EOA) YES 30/30 CONFIRMED arb bot
0xdb69 C 29 0xda74c47b… (deployer EOA) YES 29/29 CONFIRMED arb bot
0x11d9 C 30 0xda74c47b… (deployer EOA) YES 30/30 CONFIRMED arb bot
0xb4c4 C 2 0xda74c47b… (deployer EOA) YES 2/2 CONFIRMED arb bot
0x0bfc D 30 0xdd036474… (deployer EOA) YES 30/30 CONFIRMED arb bot
0x04edde D 5 0xdd036474… (deployer EOA) YES 5/5 CONFIRMED arb bot
0xc10ee 30 0x1231deb6… (LiFiDiamond) no 30/30 LiFi Protocol adapter

Cluster C and D profit straight to their deployer EOA with no intermediary — the cleanest possible arb bot signal. Cluster A and B route through unverified intermediate contracts; the fixed-contract-recipient pattern is consistent with arb bots (profits go somewhere specific every time) but the EOA criterion is not met.

Natural vs automated flow

Natural flow = user-initiated via identified routing protocols:

  • CoW Protocol: 184 trades, $7,318
  • Curve Router: 35 trades, $41,170
  • LiFi Protocol adapter: 187 trades, $39,424
  • Total natural/routed: 406 trades, $87,912 (16.0% trades, 9.4% volume)

Confirmed arb bots (Clusters C + D): 777 trades, $316,376 (30.7% trades, 33.9% volume)

The remaining 1,344 trades ($527,995, 56.6% of volume) flow through Clusters A and B — strongly suspected automated but unconfirmed without bytecode analysis. If these are also arb bots (consistent with all structural evidence), total automated volume approaches ~90%.

Full address table

# Address Trades Volume (USD) Code (bytes) Label
1 0x405df6c87646b77e7fe6c77d928751352acacdbe 807 $484,825 11,421 Cluster A (dominant buyer)
2 0x51d9365c60b2c63d5a77442ec7f54d0ba33995f5 322 $183,549 21,774 Cluster C — confirmed arb bot (tx-receipt)
3 0x2da3cef02d38d21020b859ed546aaf020f3cf5a8 287 $14,149 24,533 Cluster B (Base arb bot bytecode, suspected)
4 0x0bfc1f2e61eb87bade278b1b299459db55cf2e9d 261 $40,189 4,830 Cluster D — confirmed arb bot (tx-receipt)
5 0x57080cd338d96153e34266875db236f0649d1971 220 $25,789 24,558 Cluster B (Base arb bot bytecode, suspected)
6 0xc10ee9031f2a0b84766a86b55a8d90f357910fb4 187 $39,424 20,486 LiFi Protocol adapter (also on Base #21)
7 0x9008d19f58aabd9ed0d60971565aa8510560ab41 184 $7,318 16,165 CoW Protocol GPv2Settlement
8 0xdb69bea5ea01990eb454c0e36ea744b993f427f1 121 $43,744 21,775 Cluster C — confirmed arb bot (tx-receipt)
9 0x11d92a54c29f2699147193f9f6f04b8e2c5dff35 66 $47,754 21,770 Cluster C — confirmed arb bot (tx-receipt)
10 0x0dcded3545d565ba3b19e683431381007245d983 35 $41,170 13,572 Curve Router Sidechain v1.1
11 0xda06cd17667506a9512855da4d94680ff81f2681 30 $3,246 10,032 Cluster A
12 0x04edde661a293d87e966010aa69608a8b41bc405 4 $25 15,807 Cluster D — confirmed arb bot (tx-receipt)
13 0xb101b2b0aa02b7167d238b98dc1b0b0404a760e8 3 $14 0 EOA
14 0xb4c4f37b5bc796694e049619dbfa0b707d547b33 3 $1,115 21,964 Cluster C — confirmed arb bot (tx-receipt)
15 0xb403546ff5c9987c73116a0572513243b01eb350 1 $12 382
16 0x762fd89ab561d269e4703639b3520ca0b9d1c5f4 1 $29 10,063

6. Charts

Pool overview — trade size, TVL, balance, and trade/TVL ratio

Four-panel overview of the full Jan 22 – Apr 19 period at 6H resolution.

Top panel (trade size): The IQR band and median show a pronounced spike in late January / early February when the pool had lower TVL (~$35K phase 1). Large trades of $5K–$19K in this period created wide per-trade price impact. After the large LP deposit (Jan 28, TVL doubled to $83K), median trade size stabilised around $100–$200. The extreme right-side spike (April) corresponds to the dust period: the near-empty pool makes even $50 trades look enormous relative to pool depth.

Second panel (TVL): Two clean phases are visible. Phase 1 (Jan 22–27, ~$35K) and Phase 2 (Jan 28 – Apr 9, ~$83–84K, steady). The abrupt collapse on Apr 9 is the LP exit event. After that, pool TVL flatlines at $116 dust through Apr 19.

Third panel (pool balance): EURe's USD share oscillates around 50% throughout the active period, reflecting the pool's continuous rebalancing. The band widens in March as EUR/USD weakened, pushing the pool USDC.e-heavy. The pool never drifted far enough to exhaust one side — the twocrypto rebalancing mechanism kept it within a workable range even without a full price-scale round-trip.

Bottom panel (trade/TVL ratio): Mostly under 0.5% during the active period. The sharp vertical bars late in the chart are the dust-period trades where the ratio is meaningless (100% TVL for a $50 trade against $116 pool).


Slippage vs TVL

Each dot is a trade; dot size scales with √trade size. Two vertical TVL clusters are visible: the ~$35K phase-1 cluster (left) and the tight $83K phase-2 cluster (right, the dominant vertical band).

At full TVL ($83K), slippage for most trades falls within −20 to +100 bps, consistent with the pool's 0.01%–0.30% dynamic fee range. The handful of extreme negative outliers (down to −607 bps) are dust-period trades after the LP exit — not economically meaningful but visually striking. The asymmetry between directions is visible: USDC.e→EURe (orange, above zero) tends toward positive slippage (imbalancing trades paying the higher dynamic fee), while EURe→USDC.e (blue, mixed) shows both positive and negative depending on pool state.


Slippage strip — chronological

All 2,476 active trades in chronological order (dust period excluded); bubble size proportional to trade size.

The large circles (big trades) are concentrated in the early period (trades 1–500, January–early February), when $5K–$19K trades hit the pool's phase-1 TVL of $35K. After the LP deposit (trade ~400), circles shrink and slippage stabilises. The persistent upward bias (more positive than negative slippage) reflects that the majority of volume comes from imbalancing trades paying the out_fee end of the dynamic fee range. The visible band of occasional large negative dots represents favorable rebalancing trades that got rewarded with below-oracle rates.


Slippage by pool imbalance

Same strip coloured by EURe share of TVL at trade time (green = EURe-heavy pool ≥50%, red = USDC.e-heavy pool <50%). Direction: circles = buy EURe (USDC.e→EURe), triangles = sell EURe (EURe→USDC.e).

The colour pattern confirms the fee mechanism working correctly: when the pool is red (USDC.e-heavy), EURe buys (circles) get favorable slippage — the pool is rewarding the rebalancing direction. When the pool is green (EURe-heavy), EURe sells (triangles) get favorable treatment instead. The pool adjusts fees dynamically to incentivise trades that push it back toward balance, and this is visible directly in the slippage data.


Slippage vs trade size

Log-scale x-axis. The price-impact signature is clear: smaller trades cluster near zero slippage (minimal pool disturbance), while larger trades fan out to higher positive slippage as they move the pool further from oracle price. The dense cluster at $500–$5,000 with 10–80 bps positive slippage represents the bulk of the high-volume automated activity — Cluster A and C operators trading at sizes that hit the mid-to-out fee ramp. The two regression lines (by direction) converge at small sizes and diverge at large sizes, consistent with directional price impact being asymmetric when the pool is imbalanced.

The extreme negative outliers below −100 bps at small sizes are dust-period trades — very small trades against a near-empty pool where slippage calculation breaks down.


Rebalancing cost analysis

Top panel: price_scale (orange, per-trade) vs price_oracle EMA (blue, 6H snap). The two track closely throughout — the twocrypto rebalancing algorithm kept price_scale within a tight band of the oracle during the active period. The range ~0.830–0.873 EURe/USDC.e reflects the EUR/USD move from 1.200 to 1.147 and back.

Middle panel: Cumulative LP fees (green, 25% of gross) vs estimated rebalancing cost (red, CPAMM lower bound). LP fees grew steadily to ~$306 over 77 days. Rebalancing cost is near-zero — Gnosis gas is essentially free, so the rebalancing budget consumed by price_scale updates is a non-issue. The net (black line) tracks LP fees closely.

Bottom panel: Daily LP fees and daily rebalancing cost with virtual_price (purple). Fee income is lumpy — driven by the few large trades each day. Virtual price grew monotonically from 1.000 to ~1.010, confirming that the pool never lost value in LP token terms.


xcp_profit and rebalancing budget

Top panel: xcp_profit (orange, fee high-watermark) rises above virtual_price (blue, actual LP value). The gap between them represents accumulated admin fees not yet extracted. Since xcp_profit_a = 1.0 throughout (DAO never claimed), the full gap widened from 0 to ~+0.6% by Apr 9. The rebalancing floor (xcp_profit/2 + 0.5, pink) stayed above virtual_price throughout — meaning price_scale updates were always permitted.

Bottom panel: Available rebalancing budget in USD ((xcp_profit − floor) × TVL). The budget peaked around $200–$220 in February when the large refuel donations had just been consumed but xcp_profit growth was brisk. It declined through March as rebalancing consumed the buffer faster than new fees replenished it, then partially recovered in late March as fee income picked up. The budget never went negative — the pool always had permission to rebalance — but it was tight from late February onward after the donation supply was exhausted.

Report of EURC/USDC FXswap Curve Pool on base

EURC/USDC Curve Pool (Base) — Analysis Report

Pool: 0x1c53971800c111a32b7889177c56e3488cfe0be0 (Twocrypto-NG, Base chain)


Pool Configuration

Parameter Raw value Scaled Meaning
A 500,000 500,000 Amplification; higher = tighter liquidity near oracle
gamma 1×10¹⁵ 0.001 Width of concentrated liquidity region
mid_fee 5,000,000 0.05% Fee when pool is at oracle price (balanced)
out_fee 10,000,000 0.10% Fee when pool is maximally off-balance
admin_fee 5×10⁹ 50% Share of gross fee routed to DAO + rebalancing
fee_gamma 1×10¹⁶ 0.01 Controls how fast fee ramps from mid to out
allowed_extra_profit 1×10⁶ 1×10⁻¹² Profit threshold before price_scale update triggers
adjustment_step 1×10¹³ 0.00001 (0.001%) Minimum price_scale gap to trigger rebalancing
ma_time 2,498 ~42 min EMA half-life for price_oracle
virtual_price (Mar 31) 1.002753 LP token value growth since inception (+0.28%)
xcp_profit (Mar 31) 1.004598 Cumulative pool profit growth (+0.46%); includes Admin share not yet extracted
xcp_profit_a (Mar 31) 1.003232 Baseline at last DAO claim (~Jan 2026); pending DAO = (1.004598 − 1.003232) × 25% ≈ $3.89
donation_shares (Mar 31) 0 Refuel fully consumed; no active donation

Fee split (same as all Twocrypto-NG pools):

Destination Share Mechanism
Rebalancing buffer 50% of gross Stays in pool as xcp gap; funds price_scale updates
DAO 25% of gross Minted as LP tokens via _claim_admin_fees()
LP 25% of gross Accrues via virtual_price increase

Reading the fee range: mid_fee 0.05% → out_fee 0.10% is a 2× spread, meaning fees stay relatively stable regardless of pool balance. Compare the Gnosis pool (0.01% → 0.30%, 30× spread) — this Base pool is tuned for a tighter, more predictable fee experience, better suited to the small trade sizes seen here.

adjustment_step = 0.001% is very small (Gnosis = 0.1%), meaning the oracle price_scale adjusts in tiny increments — appropriate for a near-stable pair where sudden large moves should not shift the internal reference price aggressively.

donation_shares = 0 at time of writing means the refuel balance is fully consumed. During the analysis period (Nov 2025 – Mar 2026), $42.68 was donated and $39.53 net consumed to cover gas for oracle/rebalancing updates on Base chain. Gas on Base (~$0.01–0.05 per update) is far cheaper than Ethereum mainnet but still meaningful at $10K TVL.


1. Summary Stats — Nov 10, 2025 → Apr 19, 2026

Metric Value
Period Nov 10, 2025 – Apr 19, 2026 (160 days)
Total swaps 4,795
Overall median trade size $24.42
Overall mean trade size $30.65 (right-skewed; outliers pull mean up 1.3×)
Total USD swap volume $146,975
TVL range ~$9,975 – ~$10,714 (Nov–Mar28), ~$11,264 – ~$11,466 (second LP Mar29–Apr8), ~$10,074 – ~$10,123 (after Apr 9 exit)
Average TVL (pre-deposit, 138.2 days) $10,127
Direction split 50.5% USDC→EURC / 49.5% EURC→USDC (near-perfect balance)
Median slippage 5.68 bps
Mean slippage 7.16 bps
EUR/USD price range 1.1446 – 1.2044 (EUR peaked +4.2% then reversed; net change +1.55% start→end: 1.1562 → 1.1742)

Monthly breakdown

Month Trades Volume (USD) Gross Fees
Nov 2025 610 $15,249 $8.14
Dec 2025 737 $20,178 $10.90
Jan 2026 718 $20,115 $13.68
Feb 2026 838 $26,946 $15.49
Mar 2026 1,510 $53,791 $30.40
Apr 2026 (1–19) 382 $10,696 $7.66

March 2026 remained the standout month — 1,510 trades and $53,791 volume, more than the prior four months combined. April (through Apr 19) added 382 trades at $10,696, on pace for a lower monthly volume than March reflecting both fewer trading days counted and reduced activity.

Charts: charts_base/eurc_usdc_pool_analysis.png (4 panels)

  • Panel 1: 6H-slot median trade size + IQR band + trade count
  • Panel 2: Stacked TVL (USDC balance + EURC in USD)
  • Panel 3: Pool balance imbalance — EURC share of TVL (50% = perfectly balanced)
  • Panel 4: 6H-slot median/TVL ratio (bps) with rolling average

2. Fee Income, Divergence Loss & Full P&L — Nov 10, 2025 → Apr 19, 2026

Fee income

The pool's admin_fee is 50% (ADMIN_FEE = 5×10⁹ out of 10¹⁰, confirmed on-chain). The fee field in each TokenExchange event is the total fee — but the split between LP, DAO and rebalancing is not 50/50 LP/DAO.

The actual fee split — confirmed from _claim_admin_fees() Vyper source:

"Since half of the profits go to rebalancing the pool, we are left with half; so divide by 2."

fees = (xcp_profit − xcp_profit_a) × admin_fee / (2 × 10¹⁰)
     = growth × 50% / 2  =  growth × 25%
Destination Share Mechanism
Rebalancing buffer 50% of gross Stays in pool as xcp_profit gap; funds price_scale updates
DAO 25% of gross Claimed as LP tokens via _claim_admin_fees()
LP 25% of gross Accrues via virtual_price (residual after DAO claim)
Metric Value APY (avg TVL $10,127, 160 days)
Total gross fees (through Apr 19) $86.27 +1.94%
├─ Rebalancing buffer (50%) $43.14
├─ LP share (25%) $21.57 +0.49%
└─ DAO share (25%, as LP tokens) $21.57 +0.49%
Average fee rate (gross) 0.0587% of volume

Fee APY formula: (amount / avg_tvl) / (days / 365) × 100

The pool's fee tier is low (mid_fee 0.05% → out_fee 0.10%, dynamic) because USDC/EURC is a near-stable pair. March 2026 was the peak month with $30.40 in fees; April through the 19th added $7.66 more.

LP lifecycle & second LP episode

Date Event TVL
Nov 10, 2025 Original LP seeds pool $10,005
Mar 28, 2026 Pre-deposit state $10,005
Mar 29, 2026 Second LP deposits ~$1,259 $11,264
Apr 8, 2026 Peak (EUR at 1.168) $11,466
Apr 9, 2026 Second LP exits (~$1,379 withdrawn) $10,074
Apr 19, 2026 Current (original LP ~100%) $10,104

The second LP deposited $1,259 on Mar 29 and exited 11 days later on Apr 9, recovering $1,379 (+$120, +9.5% gain) as EUR/USD rose from 1.150 to 1.166 during their window.

Full LP P&L — original LP (Nov 10, 2025 → Apr 19, 2026)

Line item Amount Notes
Start value $10,005.30 5,137 USDC + 4,210 EURC at 1.1562
HODL at Apr 19 oracle (1.17417) $10,080.86 Original assets, no AMM
Pool TVL Apr 19 $10,103.63 Original LP owns ~100% (2nd LP exited)
Pool vs HODL +$22.78 Pool ahead of HODL
Pure IL (pool − fees-in-pool − HODL) −$41.93 (10,103.63 − 64.71) − 10,080.86
Gross fees in pool (75%) +$64.71 Rebalancing buffer + LP share
DAO fees (25%, unclaimed) $21.57 Will reduce LP claim if DAO claims first
True LP-owned (excl. DAO) ~$10,082 ~+$1 vs HODL
Gross APY (160 days, pre-deposit TVL) 1.94%
LP APY (25% share) 0.49%

EUR/USD moved net +1.55% (1.1562 → 1.1742) over the full period. The AMM rebalanced continuously — selling EURC on the way up, accumulating USDC — resulting in pure IL of −$41.93 (−0.42% vs HODL). $64.71 in fees remained in the pool, more than covering the IL: pool TVL ends ahead of HODL by +$22.78 (+0.23%). Note: this does not include the $42.68 refuel cost paid separately — see Refuel account section for the full picture.

Phase-level P&L

Phase 1 — Original LP only (Nov 10 → Mar 28, 138 days)

EUR barely moved net (1.1562 → 1.1495, −0.58%). Pool TVL ~$10,005 both start and end. LP beats HODL by +$9 ($19 fees offset $49 pure IL).

Phase 2 — With second LP (Mar 29 → Apr 8, 11 days)

EUR rose 1.150 → 1.166 (+1.4%). TVL expanded from $11,264 → $11,466. Original LP's value tracked well; second LP earned ~+9.5% annualised (3.8K× annualised rate for a short window).

Phase 3 — After second LP exit (Apr 9 → Apr 19, 10 days)

EUR continued rising 1.166 → 1.174 (+0.7%). Pool TVL $10,074 → $10,104. 166 trades, $3.22 fees, 1 rebalancing event (Apr 13). price_scale frozen since Apr 13 (oracle 1.174, scale 1.161, 1.11% gap) — early signs of the stale state.

Refuel cost — subsidising the pool's rebalancing

The refuel mechanism (LP token donations to top up the rebalancing budget) was fully exhausted and no new donations have been made since early 2026. donation_shares = 0.

Amount
Total refuel donated (historical) $42.68
Total consumed $39.53
donation_shares remaining $0.00 (fully exhausted)
Net refuel cost −$42.68

The pool runs entirely on fee buffer for rebalancing. At current post-exit volume levels (166 trades, $3.22 fees in 10 days), the rebalancing budget rebuilds slowly — insufficient to close a 1.11% oracle/scale gap (each 20%-of-gap step at 1.1% gap costs roughly $14 in IL at $10K TVL).


3. Monthly P&L Snapshots

HODL = original assets (5,137 USDC + 4,210 EURC) held at current oracle. Pool rows through Mar 28 are single-LP; from Mar 29 the pool includes a second LP (11.18%); after Apr 9 original LP ~100% again.
DL vs HODL (single-LP periods) = (pool TVL − cumulative gross fees) − HODL. Positive = pool ahead of HODL before fees; negative = pool behind HODL.

Period USDC EURC EUR/USD Pool TVL HODL value Cum gross fees Pure IL vs HODL
Start (Nov 10) $5,137 4,210 1.1562 $10,005 $10,005 $0
End of Nov $5,027 4,339 1.1592 $10,056 $10,018 $8.14 +$30
End of Dec $5,156 4,226 1.1761 $10,126 $10,089 $18.96 +$18
End of Jan $5,306 4,098 1.1819 $10,149 $10,113 $32.40 +$3
End of Feb $5,088 4,284 1.1788 $10,138 $10,100 $48.12 −$10
Mar 28 (pre-deposit) $4,948 4,399 1.1495 $10,005 $9,977 $76.68 −$49
Mar 31 (pool incl. 2nd LP) 6,148 4,551 1.1555 $11,407 10,002 $78.54 n/a
Apr 8 (2nd LP still in) 6,427 4,312 1.1657 $11,453 10,045 $82.81 n/a
Apr 19 (current) 6,282 3,255 1.1742 $10,104 10,081 $86.14 −$42

Italicised rows include second LP's capital; pure IL comparison to original-LP HODL is not meaningful for those rows.

Key observations:

  • Nov–Jan (EUR rising): Pure IL vs HODL positive — concentrated liquidity outperformed HODL. Pool captured EUR upside despite selling EURC as it rose.
  • February: EUR peaked (~1.2044 Jan 29), began reversing. IL turned negative (−$10) — AMM had sold EURC on the way up and was left USDC-heavy.
  • March: EUR fell to 1.1446 mid-month, then recovered to 1.1555 by Mar 31. Pure IL at Mar 28 = −$49, but pool TVL coincidentally back to $10,005.
  • April: EUR continued rising to 1.1742 (+1.55% since start). Second LP exited Apr 9. Pool back to original LP only with IL of −$42 and +$64.71 fees in pool → pool TVL beats HODL +$23. After $42.68 refuel cost, true LP net vs HODL ≈ +$1.

4. Top 50 Trades by Size — with Slippage

Slippage = deviation of actual execution price from price_scale (the pool's internal reference price).
Includes the fee component. Positive = trader paid more / received less than reference value. Negative = trader got a better-than-reference deal (pool was restoring balance).

Formula:

  • sold_id=0 (USDC→EURC): slippage = (tokens_sold/tokens_bought − price_scale) / price_scale × 10000
  • sold_id=1 (EURC→USDC): slippage = (price_scale − tokens_bought/tokens_sold) / price_scale × 10000

Slippage stats — all 4,795 trades

Stat Value
Median slippage +5.68 bps
Mean slippage +7.16 bps
Min −257.04 bps (favorable, pool was imbalanced)
Max +271.20 bps (large price impact)
P5 −28.55 bps
P95 +64.12 bps

Top 50 trades (unchanged from Mar 31 report — max April trade $93.21 did not crack the 50th entry at $131.07)

# Date (UTC) Direction USD Size Slippage (bps) Fee% Block
1 2026-02-25 14:58 USDC→EURC $738.63 +40.19 0.085% 42621081
2 2026-02-25 14:58 EURC→USDC $668.08 −28.81 0.052% 42621081
3 2026-02-25 03:14 EURC→USDC $588.85 +25.53 0.076% 42599949
4 2026-02-06 00:27 EURC→USDC $585.38 +45.70 0.086% 41774156
5 2026-02-25 03:14 USDC→EURC $561.58 −13.81 0.050% 42599949
6 2026-01-05 15:20 EURC→USDC $526.80 +31.29 0.079% 40418552
7 2026-03-23 11:15 USDC→EURC $492.83 −2.40 0.053% 43737587
8 2026-01-05 15:20 USDC→EURC $446.04 −21.54 0.054% 40418553
9 2026-02-25 03:17 EURC→USDC $353.31 +17.13 0.064% 42600066
10 2026-02-25 03:17 USDC→EURC $344.75 −5.91 0.050% 42600066
11 2025-12-01 15:08 EURC→USDC $321.50 −10.07 0.050% 38906175
12 2025-11-13 14:10 USDC→EURC $306.74 +17.76 0.063% 38126835
13 2026-02-06 00:42 USDC→EURC $293.03 −39.92 0.075% 41774589
14 2026-02-17 15:59 USDC→EURC $286.20 −0.97 0.051% 42277320
15 2026-03-18 19:23 EURC→USDC $263.54 +40.40 0.078% 43536235
16 2026-02-03 11:06 EURC→USDC $263.15 +31.61 0.073% 41663713
17 2025-12-23 21:51 USDC→EURC $261.81 +25.81 0.068% 39868680
18 2025-12-16 01:30 EURC→USDC $250.40 +16.78 0.061% 39529629
19 2026-02-06 00:45 USDC→EURC $243.87 −18.56 0.059% 41774704
20 2025-11-17 16:51 USDC→EURC $242.57 +5.58 0.053% 38304462
21 2026-01-29 15:25 EURC→USDC $239.17 −141.83 0.097% 41455499
22 2026-03-23 11:15 USDC→EURC $214.96 +26.44 0.066% 43737597
23 2026-01-30 17:41 EURC→USDC $207.73 −85.26 0.091% 41502771
24 2025-11-20 09:38 USDC→EURC $197.34 −6.92 0.051% 38421082
25 2025-12-09 13:08 USDC→EURC $193.41 −14.63 0.055% 39248171
26 2026-03-20 04:52 EURC→USDC $184.13 +25.11 0.066% 43596488
27 2026-02-17 16:04 USDC→EURC $177.96 −5.74 0.051% 42277469
28 2026-03-23 11:06 EURC→USDC $173.68 +27.38 0.067% 43737308
29 2026-02-17 15:59 EURC→USDC $162.57 −3.74 0.050% 42277322
30 2025-12-11 14:10 USDC→EURC $162.53 +33.18 0.071% 39336448
31 2025-12-23 21:57 EURC→USDC $151.92 −13.33 0.055% 39868858
32 2026-03-02 01:10 USDC→EURC $150.00 +2.14 0.050% 42812238
33 2026-03-09 09:33 USDC→EURC $150.00 +17.62 0.058% 43129721
34 2026-03-13 03:33 EURC→USDC $148.83 +15.20 0.057% 43291718
35 2026-02-19 15:08 USDC→EURC $145.50 −1.74 0.050% 42362193
36 2026-02-23 14:19 USDC→EURC $145.50 +1.24 0.050% 42533510
37 2026-03-11 14:01 USDC→EURC $145.50 +7.26 0.052% 43224167
38 2026-03-23 11:47 EURC→USDC $144.96 −41.45 0.079% 43738554
39 2025-12-29 14:33 USDC→EURC $142.50 +0.08 0.050% 40114719
40 2026-03-23 11:32 USDC→EURC $141.56 +50.88 0.080% 43738097
41 2026-03-19 13:51 USDC→EURC $141.00 +15.69 0.057% 43569458
42 2026-03-23 11:18 USDC→EURC $136.50 +52.03 0.080% 43737691
43 2025-12-23 22:01 EURC→USDC $133.60 −10.64 0.054% 39868986
44 2026-03-06 13:30 USDC→EURC $132.72 −10.33 0.056% 43007234
45 2026-02-19 14:26 EURC→USDC $131.50 +30.33 0.069% 42360912
46 2025-12-30 17:00 USDC→EURC $131.42 +2.25 0.050% 40162330
47 2026-02-25 17:52 USDC→EURC $131.07 +27.11 0.067% 42626316
48 2026-03-03 12:22 USDC→EURC $131.07 −26.74 0.067% 42875588
49 2026-03-12 13:54 USDC→EURC $131.07 −5.33 0.052% 43267152
50 2026-03-15 18:02 USDC→EURC $131.07 −16.38 0.063% 43404213

Notable patterns in top-50

  • Trades #1 & #2 (same block 42621081, Feb 25 14:58): $739 USDC→EURC and $668 EURC→USDC in the same block — two-sided arb or rebalancing bot. #1 paid +40 bps (pool EURC-short, expensive). #2 sold EURC back at −29 bps (pool EURC-heavy, offering discount). Net: bot captured the spread.
  • Trades #3 & #5 (block 42599949, Feb 25 03:14) and #9 & #10 (block 42600066, Feb 25 03:17): Back-to-back block pairs of opposing trades — same arb pattern recurring within minutes.
  • Trades #6 & #8 (Jan 5 15:20, consecutive blocks): $527 EURC→USDC then $446 USDC→EURC one block later.
  • Trade #21 (Jan 29, −141.83 bps): Large favorable slippage — pool significantly imbalanced (EURC-heavy during the Jan 23–30 freeze), AMM offering a discount to restore balance.
  • March cluster (trades #7, #22, #28, #38–#42): Multiple Mar 23 trades between 11:06–11:47 UTC totalling ~$1,300 — consistent arb bot working through pool imbalance.
  • April: Largest April trade was $93.21 (Apr 2) — well below the #50 threshold. April activity is smaller in size, concentrated in the $25–$70 range.
  • Fee range: 0.050%–0.097% across top-50, consistent with mid_fee 0.05% → out_fee 0.10% dynamic fee structure.

5. Rebalancing Cost Analysis

Two distinct cost concepts must not be conflated: the rebalancing cost (xcp budget consumed per price_scale step) and the divergence loss (LP position erosion vs HODL from trading through price cycles). The divergence loss is in section 2's P&L. This section explains both mechanisms.

Updated stats (Nov 10, 2025 → Apr 19, 2026, 4,795 events):

  • 3,977 rebalancing steps out of 4,795 events (83% trigger a price_scale update)
  • Last rebalancing: Apr 13 (price_scale has been frozen for 6 days at time of writing)
  • Current gap: price_oracle 1.17417 vs price_scale 1.16123 → 1.11% — approaching stale state

5a. Rebalancing cost (paid by refuel) vs divergence loss (borne by LP)

Rebalancing cost Divergence loss
What it is Budget consumed to execute each price_scale update step LP portfolio loss relative to HODL from continuous "sell winner, buy loser"
Who bears it Fees first (up to ~50% of gross fee income), then refuel as amplifier LP position automatically
Empirical value ~$67.06 (formula, through Mar 13); continued through Apr 19 $41.93 (through Apr 19, AMM vs HODL before fees)
How measured Formula back-test: TVL × (1 − (1+f₁(r−1))/√r) per step (Pool TVL − gross fees in pool) − HODL value

5b. How rebalancing is funded — the xcp_profit mechanism

(Unchanged from prior analysis — see original section 5b for full derivation)

Key recap:

  • Fee buffer (50% of gross): primary budget — ~$43.14 accumulated through Apr 19
  • Refuel ($39.53 donated, fully exhausted): amplified the budget during the Jan 23–30 freeze
  • Remaining buffer (Apr 19): (xcp_profit − virtual_price) × TVL ≈ $21 (from Mar 31 on-chain read)
  • Post-Apr-9 status: 166 trades earned $3.22 in fees → ~$1.61 new rebalancing buffer. Only 1 rebalancing fired (Apr 13). The 1.11% oracle gap requires a 20%-of-gap step (~$14 IL cost at $10K TVL) — far exceeding the ~$1.61 new buffer. Rebalancing is currently blocked (pool in stale state).

5c. The Jan 23–30 rebalancing freeze (7-day stale state)

Between Jan 23 19:20 UTC and Jan 30 17:41 UTC (6.9 days), the pool executed zero price_scale updates — the longest freeze in the analysis period.

What happened:

  1. Budget exhausted (Jan 23): available budget ~$0.05 after weeks of steady rebalancing.
  2. EUR/USD spiked +2%: price_oracle climbed 1.1758 → 1.1998 (peak Jan 28). Budget failed every rebalancing check.
  3. price_scale frozen at 1.1758: arb bots traded against the stuck pool, rebuilding the fee buffer.
  4. EUR reversed and budget recovered: ~7 days of arb fees restored enough budget ($2.35 by Jan 31).
  5. One large catch-up step on Jan 30: 0.23% jump (230× normal step) — compressing 7 days of frozen drift.
  6. Refuel topped up shortly after; by end of period budget grew to $12, then $21 by Mar 31.

Comparison to current Apr 19 state: The current 1.11% gap is smaller than the Jan peak (2%), but the refuel is exhausted and post-exit volume is much lower (few hundred trades/month vs thousands). Without new volume or a refuel donation, the pool may remain in stale state until the oracle/scale gap narrows organically.


5d. Divergence loss ($41.93) — the LP position cost

As EUR/USD rises, traders arb the pool — the AMM sells EURC (the appreciating asset) and accumulates USDC. When EUR/USD partially reverses, the pool is left USDC-heavy.

Measured empirically through Apr 19:

Divergence loss = (pool TVL − gross fees in pool) − HODL value = (10,103.63 − 64.71) − 10,081.73 = −$42.51

Note: small rounding difference vs −$41.93 above due to fee calculation method.

EUR/USD net change over the full period: +1.55% (1.1562 → 1.1742). The pool sold EURC on the way up; divergence loss reflects the "sell low, then miss the upside" path dependency. Fees of $64.71 in pool more than offset the divergence loss → pool TVL is ahead of HODL by +$23. Including the $42.68 refuel cost paid separately, true LP outcome vs HODL is approximately +$1 (see Refuel account section).


5e. Exact rebalancing cost formula — back-test validation

(From original analysis, data through Mar 13, 2026, 2,977 rebalancing steps)

Formula derivation (high-A limit, A=500,000):

r          = ps_new / ps_old           (price-scale ratio)
f₁         = (eurc × ps_old) / TVL    (EURC share of pool value)
xcp_ratio  = (1 + f₁ × (r − 1)) / √r
cost_usd   = TVL × (1 − xcp_ratio)    (positive = pool loses, negative = gains)

Back-test results (Nov 10, 2025 → Mar 13, 2026, 2,977 rebalancing steps):

Metric High-A formula Exact newton_D
Gross losses (steps where xcp decreases) $68.14
Gross gains (steps where xcp increases) $1.07
Net cost $67.06 $67.03

Monthly breakdown:

Month Steps Net cost Avg f₁ Avg step size
Nov 2025 563 $8.58 0.4993 0.0101%
Dec 2025 699 $10.42 0.4972 0.0099%
Jan 2026 430 $15.81 0.4991 0.0147%
Feb 2026 681 $12.29 0.5009 0.0110%
Mar 2026 604 $19.96 0.5051 0.0145%

January and March had the highest per-step costs — matching the EUR spike (Jan 23–30 freeze) and the sharp EUR reversal in March.

Relationship between the $67 formula result, the $39.53 refuel, the ~$27.53 fee contribution, and the $41.93 divergence loss:

Metric Value What it measures Who pays
Formula net cost $67.06 Total xcp budget consumed by all rebalancing steps (through Mar 13) Fee income + refuel
├─ Fee-funded portion ~$27.53 Up to 50% of gross fee income spent as rebalancing budget LP + DAO (fee earners)
└─ Refuel-funded portion $39.53 Additional budget from donations beyond fee capacity Refuel donor
Divergence loss $41.93 LP value at exit minus HODL (path-net result through Apr 19) LP position automatically

Why $67 ≠ $41.93: The formula accumulates xcp cost in both directions over the price path — every step adds to the total. The divergence loss only reflects the net LP position: EUR went up +4.2% then reversed partially to net +1.55%, so the "upward path cost" is only partially offset by the "downward recovery." The formula's $67 is the path-integral; the divergence loss's $41.93 is the net endpoint result.


5f. Full accounting — every dollar explained (Nov 10, 2025 → Apr 19, 2026)

LP account (started $10,005.30):

Component Amount
EUR/USD +1.55% (HODL rose $75 to $10,081) +$75
Divergence loss (AMM vs HODL, before fees) −$42
Fees in pool (75% of $86.27 gross) +$65
Pool TVL vs start +$98
Pending DAO claim (25% of $86.27) −$22
True LP-owned vs start ~+$76
True LP-owned vs HODL ~+$1

Refuel account (additional $42.68 deployed separately):

Component Amount
Refuel contributed −$42.68
donation_shares remaining $0.00 (fully exhausted)
Net refuel cost −$42.68

Total combined P&L:

Amount
True LP-owned pool value (Apr 19) ~$10,082
donation_shares remaining $0
Total LP-owned value ~$10,082
Total deployed (LP + refuel) $10,047.98
Total net P&L ~+$34

Combined P&L turns positive (+$34) because EUR/USD net appreciation (+$75) exceeds the combined divergence loss (−$42) and refuel cost (−$43).


6. Key Observations

  1. Volume surged in March, moderated in April: 1,510 trades and $53,791 volume in March — the peak month. April (1–19) added 382 trades at $10,696. Total: 4,795 trades, $146,975 volume, $86.27 gross fees through Apr 19.

  2. EUR/USD net +1.55% — pool ahead of HODL, but refuel cost flips the picture: EUR peaked at 1.2044 (Jan 29), fell to 1.1446 (mid-March), recovered to 1.1555 (Mar 31), then continued rising to 1.1742 (Apr 19). Net change: +1.55% vs start. Pool TVL ends $23 ahead of HODL ($10,104 vs $10,081) — fees of $65 cover the $42 pure IL with margin. However, the LP also paid $42.68 in refuel separately. Accounting for that, true LP-owned value ($10,082 after pending DAO claim) vs HODL is approximately +$1 — barely breakeven. Total net P&L including refuel: +$34 (only positive because EUR/USD appreciated +$75 vs start; see Refuel account section).

  3. Second LP episode (Mar 29 → Apr 9, 11 days): New LP deposited $1,259 on Mar 29, withdrew $1,379 on Apr 9 (+$120 profit, mostly EUR appreciation). Total pool TVL temporarily expanded to $11,466 peak.

  4. Pool approaching stale state: price_scale has been frozen since Apr 13. oracle 1.1742 vs scale 1.1612 (1.11% gap). With donation_shares = 0 and only 166 post-exit trades, the rebalancing budget cannot cover the ~$14 IL cost of a 20%-of-gap step at current TVL. The pool continues to trade but uses a stale price reference, widening arb opportunity.

  5. The fee split is 25% LP / 25% DAO / 50% rebalancing buffer — confirmed from deployed Vyper source and on-chain admin_fee. Gross fee APY is 1.94%, LP keeps 0.49% (25%). The other 50% funds rebalancing (xcp_profit buffer), 25% to Curve DAO.

  6. Low slippage throughout: Median 5.68 bps across 4,795 trades. Post-Apr-9 (stale state) median jumped to ~110 bps for the 166 post-exit trades, confirming the pool is offering favorable prices to arb traders to self-correct.


Last updated: 2026-04-21 (extended analysis to Apr 19, 2026; 4,795 trades, $146,975 volume)


7. Who Is Trading — Buyer Address Analysis

The TokenExchange event records buyer = msg.sender at the pool — i.e. the contract that directly called exchange(). All 40 unique buyer addresses across 4,795 trades are smart contracts. Zero EOA direct trades: no wallet or user is interacting with this pool without going through an intermediary.

Summary by type

Type Addresses Trades % Trades Volume % Volume
Unidentified contracts 26 1,610 33.6% $29,253 19.9%
0x Protocol / Matcha (BaseSettler) 4 1,104 23.0% $24,146 16.4%
Arb bot cluster (confirmed) 7 1,829 38.1% $81,158 55.2%
EIP-7702 smart wallets 2 207 4.3% $10,283 7.0%
Curve Router (Sidechain v1.1) 1 45 0.9% $2,136 1.5%
Total 40 4,795 $146,975

Arb bot : natural flow ratio

Natural flow = confirmed non-arb volume: 0x/Matcha BaseSettler (4 contracts, 1,104 trades, $24,146) + Curve Router (1 contract, 45 trades, $2,136) = 5 contracts, 1,149 trades, $26,282.

Metric Arb bots (7) Natural flow (Matcha + Curve Router) Ratio
Addresses 7 5
Trades 1,829 1,149 1.6× more arb than organic
Volume $81,158 $26,282 3.1× more arb than organic
% of total trades 38.1% 24.0%
% of total volume 55.2% 17.9%

Arb bots generate 3.1× the dollar volume of confirmed organic trades. The volume gap is larger than the trade-count gap because bots trade at high frequency with small sizes, while Matcha and Curve Router trades are larger user-initiated swaps. The remaining 18.1% of volume (1,610 unidentified trades, $29,253) is unclassified — likely a mix of additional bots and direct integrations.

Type notes

0x Protocol / Matcha BaseSettler — four separately deployed instances of the same settlement contract, verified on Basescan. Source file BaseTakerSubmittedFlat.sol is a taker-submitted settlement contract provided to ZeroEx Inc. by Euler Labs. Handles routing across Aerodrome, Uniswap v3 forks, and other Base DEXes. The multiple instances likely correspond to different solver deployments or contract upgrades.

EIP-7702 smart wallets — two addresses with only 23 bytes of code (0xef0100<impl_address>): these are EOAs that have set an EIP-7702 code delegation, pointing at a full smart-wallet implementation. In practice they behave as smart contract wallets but are controlled by an EOA private key. The larger one (#8, 205 trades, $9,328) is an active user; the smaller (#30, 2 trades) appears occasional.

Curve Router (Sidechain v1.1) — the official Curve Finance sidechain router (0x4f37...), 45 trades, $2,136. Trades routed via Curve's own UI or integrations that use the canonical router.

Arb bot cluster (7 confirmed, 55.2% of volume) — seven unverified contracts confirmed as atomic arbitrage bots. Six share the same operator EOA profit wallet 0xd2be32db... and route through Uniswap v4. The seventh (0xf4cd829526070c2c0af9e6dce2c9255130f7ec68, the #1 buyer by volume) is a separately operated bot with 21,404 bytes of code, confirmed arb bot — see base_usdc_eurc_arb_bot.md for full bytecode analysis. The confirmed cluster:

# Address Trades Volume Code size
1 0xf4cd829526070c2c0af9e6dce2c9255130f7ec68 842 $34,456 21,404 b Separate operator — see base_usdc_eurc_arb_bot.md
2 0x4e48...e525 527 $25,246 24,533 b 0xd2be32db... cluster
3 0x3100...3e98 130 $5,945 24,407 b 0xd2be32db... cluster
4 0xa7c5...8449 104 $5,845 23,431 b 0xd2be32db... cluster
5 0x31b7...43e9 122 $4,509 24,558 b 0xd2be32db... cluster
6 0x6805...c72 54 $3,059 22,380 b 0xd2be32db... cluster
7 0x493e...d93 50 $2,098 24,105 b 0xd2be32db... cluster

Arb bot confirmation (transaction-receipt analysis)

Methodology revision — the initial detection criterion ("tokens forwarded out in same transaction") was tested against a known control: 0x785648... (confirmed 0x/Matcha BaseSettler aggregator). Matcha also shows 100% same-tx forwarding and the pool as top ERC-20 recipient. This is expected: Matcha receives output tokens from the pool and immediately routes them to the end user — the same structural pattern as an arb bot. Same-tx forwarding does not distinguish arb bots from aggregators.

Correct criterion — the distinguishing signal is a fixed EOA recipient appearing in every transaction. Aggregators serve different end-users each tx, so no single EOA dominates. Arb bots forward profit to a fixed operator wallet in every tx.

Comparison across all >$1K addresses (30-tx sample each):

Address Unique recipients Top non-pool recipient EOA recipients
Matcha #1 (control) 23 30x (contract) none
Matcha #2 (control) 35 30x (contract) 7x (different users)
Matcha #3 (control) 27 30x (contract) 4x (different users)
Matcha #4 (control) 16 30x (contract) 4x (different users)
0x4e48...e525 12 30x EOA 0xd2be32db... 30/30
0x3100...3e98 9 30x EOA 0xd2be32db... 30/30
0xa7c5...8449 12 30x EOA 0xd2be32db... 30/30
0x31b7...43e9 11 30x EOA 0xd2be32db... 30/30
0x6805...c72 11 30x EOA 0xd2be32db... 30/30
0x493e...d93 11 30x EOA 0xd2be32db... 30/30
0xf4cd...ec68 15 30x (contract) 3x only confirmed arb bot (bytecode analysis)
0x9dd8...1dd1 14 30x (contract) 1x × 3 diff. addrs
0x4b19...1189 8 30x (contract) none
0xdf0f...4ef 10 30x (contract) 1x only

Confirmed arb bots: the six cluster contracts (0x4e48, 0x3100, 0xa7c5, 0x31b7, 0x6805, 0x493e) all route to the same operator EOA 0xd2be32dbf454ad8ff57851e9762cac12536ebee4 (0 bytes, pure EOA) in every sampled transaction, and route through 0x498581ff... (Basescan: PoolManager, Uniswap v4). This pattern is impossible for a user-serving aggregator.

Reverted to unidentified: 0x9dd8, 0x4b19, 0xdf0f — recipient patterns are within Matcha's range (10–16 unique, no fixed EOA in every tx). These are likely bots or aggregators of a different type, but the criterion used here cannot confirm them.

Confirmed via bytecode analysis: 0xf4cd829526070c2c0af9e6dce2c9255130f7ec68 — although the fixed-EOA recipient criterion was inconclusive (only 3/30 txs show an EOA, as profits are routed through an intermediate contract), full decompilation of the 21,404-byte code confirms a multi-DEX arbitrage bot with hardcoded profit recipient, whitelisted callers, Base L1+L2 gas accounting, and support for UniV2, UniV3, Curve, 1inch v5/v6, and Ekubo pools. See base_usdc_eurc_arb_bot.md.

The 7 confirmed arb bots account for 1,829 trades (38.1%) and $81,158 (55.2%) of total volume.

Full address table

# Address Trades Volume (USD) Code (bytes) Label
1 0xf4cd829526070c2c0af9e6dce2c9255130f7ec68 842 $34,456 21,404 Arb bot (confirmed — bytecode analysis)
2 0x4e48d4885871b4dd2ea91a2aed9390b8908fe525 527 $25,246 24,533 Arb bot (same operator cluster)
3 0x9dd8625d4b67dd1dc1ca9521fa884bf388151dd1 636 $12,403 2,154
4 0xdc5d8200a030798bc6227240f68b4dd9542686ef 354 $9,583 21,925 0x/Matcha BaseSettler
5 0x4b194f4fc8a9e134906a2992b7e934d3899e1189 574 $9,416 5,626
6 0x8407699e359ae158bd7ec0668600cc19a79f17c3 205 $9,328 23 EIP-7702 smart wallet (EOA)
7 0x785648669b8e90a75a6a8de682258957f9028462 320 $6,285 22,578 0x/Matcha BaseSettler
8 0xea758cac6115309b325c582fd0782d79e3502177 343 $6,193 22,907 0x/Matcha BaseSettler
9 0x3100bf451a887d9bb9307e00ae23d90d06d93e98 130 $5,945 24,407 Arb bot (same operator cluster)
10 0xa7c5a86668c2956b861ee2e6674e1ddb8b728449 104 $5,845 23,431 Arb bot (same operator cluster)
11 0x31b761a1dc1404d291d05bae055b78f99a9243e9 122 $4,509 24,558 Arb bot (same operator cluster)
12 0x68059f0907db8e27a78a75303ebc958907cf3c72 54 $3,059 22,380 Arb bot (same operator cluster)
13 0x4f37a9d177470499a2dd084621020b023fcffc1f 45 $2,136 12,586 Curve Router (Sidechain v1.1)
14 0x493ec3701385ec8c821a81978992be4396479d93 50 $2,098 24,105 Arb bot (same operator cluster)
15 0x49fb9c16b9b2a19452633573603c837673fd7e04 87 $2,086 22,210 0x/Matcha BaseSettler
16 0xdf0ff70b124c3e3d9027d8f83c9cc708ff1354ef 72 $1,902 21,404
17 0x86631c20314a54e6409c9fc61406f6a86780e4cd 2 $954 23 EIP-7702 smart wallet (EOA)
18 0xebe0fa42523f69ea1e97f5b08282654c19c2c0ee 194 $915 23,586
19 0x183f91b34265958fb5fef5b5494c9d517d8adf95 3 $692 11,421
20 0x062ef7fcbd328b92eea2c9124eeae8b4a001d164 16 $582 24,542
21 0xc10ee9031f2a0b84766a86b55a8d90f357910fb4 54 $538 20,486
22 0x36d582f7928aa2d2d81bf905567c5d2334ff5fac 2 $519 20,618
23 0x84e9062b902e5718f925f7b9bbeadd72e90fa54a 2 $384 11,126
24 0xc906d524234355aab1b12894cdfdbd3bac299436 11 $357 23,855
25 0xf0a907ef4209912056de307afb15fe1f40692a29 7 $266 23,986
26 0xf294c8b4d0525645d86676315b93cf654c6fb251 1 $243 20,605
27 0x7747f8d2a76bd6345cc29622a946a929647f2359 11 $208 20,842
28 0x267bcda9087aa71d8a8d5331a2ff7a27e75bc1eb 6 $201 23,483
29 0xff11500b35a3e48a298bcd6139b9a3d9c369537e 4 $185 21,990
30 0x3e419d8c219bea454811145102ca6505ef0aa9d4 2 $107 23,592
31 0x57f324f68ff7991c80d1471ca0ff71b9ca1af7d3 2 $80 22,018
32 0x9fb5d0941fcf704362a546d77f5de315073cbb33 1 $59 3,733
33 0xbaa5419df9dabc6efc31ee41377bc3ec30365b1e 3 $60 23,609
34 0x2779bc3bd93ca20ff67bbcef39f1a3134e46dcbf 1 $48 23,935
35 0x7beaec7ea579c656f4272e409b6bfda9f8ad8941 1 $29 24,287
36 0x2102ab11a3c74b1d543891020969dc3d46c132ab 1 $23 3,309
37 0x012731b48284dba9d18b1c4d38946137aa99888c 1 $20 23,568
38 0xfc049cd98018aae4c33b01a6a41629cfe5a625f1 1 $10 23,758
39 0x7192867d67329800345750f5a281ce1352c3df65 3 $7 24,530
40 0xc57775a3e13c7941eccfbaf740392c650b51453d 1 $3 12,044

Appendix — Charts

Chart 1 — Pool Overview (4 panels)

Four stacked panels covering the full Nov 10, 2025 → Apr 19, 2026 period at 6H resolution:

  • Panel 1 — Trade size (6H median ± IQR + count): The shaded blue band is the interquartile range of trade size per slot; the solid line is the median; the faint bars show trade count per slot. Median trades stayed in the $15–$50 range throughout, with occasional spikes during arb clusters (Feb 25, Mar 23). The brief gap around trade ~1700 corresponds to the Jan 23–30 rebalancing freeze.
  • Panel 2 — TVL (stacked USDC + EURC-in-USD): Blue = USDC balance; green = EURC balance converted to USD. The pool held steady near $10K from November through late March, jumped to ~$11.4K when the second LP deposited on Mar 29, then dropped back to ~$10K when that LP exited Apr 9. The pool composition shifted progressively toward USDC as EUR/USD rose over the period.
  • Panel 3 — Pool imbalance (EURC share of TVL): Oscillates around 50% (balanced) throughout most of the period. Notable dip toward 35–38% EURC-heavy in April (bottom-right pink zone) as EUR rose and the pool accumulated USDC — the pool was selling EURC faster than it was being replaced.
  • Panel 4 — Median trade / TVL ratio (bps): Measures each slot's median trade as a fraction of TVL. Mostly below 0.2%, with spikes during large arb events. The ratio increased slightly after the Apr 9 LP exit as TVL shrank; trade sizes did not shrink proportionally.

Chart 2 — Slippage Strip (chronological)

Every trade plotted in chronological order (x-axis = trade index 1–4,795), slippage in bps on the y-axis. Dot size scales with √trade size. Blue = USDC→EURC (buy EURC), red = EURC→USDC (sell EURC).

  • The tight band around 0 bps throughout Nov–Feb confirms the pool was mostly near balance and efficient.
  • The large red downward spikes around trade ~1900 (Jan 29) correspond to the rebalancing freeze: the pool was USDC-heavy and offering favorable rates to EURC sellers — arb bots collected significant negative slippage (a discount).
  • The far-right cluster (trades ~4600+, April post-exit) shows elevated slippage in both directions as price_scale drifts from the oracle and the pool operates in stale state. Buyers of EURC (blue) pay above oracle; sellers receive below oracle — both signs of a mis-priced pool.

Chart 3 — Slippage vs TVL

Slippage (bps) on the y-axis vs pool TVL at time of trade on the x-axis. Dot size scales with √trade size.

  • The main cluster near $10K TVL spans Nov–Mar28 and Apr9+. Most trades in this range are within ±30 bps, consistent with efficient execution at the pool's typical size.
  • The near-vertical bands of extreme slippage at ~$10,100–$10,200 TVL correspond to the Jan freeze period: pool had slightly higher TVL from accumulated fees, but price_scale was stale, causing large arb slippage.
  • The right cluster near $11,300–$11,450 TVL is the second-LP window (Mar 29 – Apr 8) — the pool was larger and better balanced, with notably tighter slippage bands for both directions.
  • Dashed trend lines (OLS) show USDC→EURC trades (blue) have a slight positive slope — larger TVL correlates with slightly higher positive slippage — while EURC→USDC (red) is flatter.

Chart 4 — Slippage vs Trade Size

Slippage (bps) vs trade size in USD on a log x-axis.

  • Trades below $10 are tightly clustered near 0 bps — tiny trades at the mid-fee rate.
  • As size grows past $50–$100, slippage fans out: large buyers of EURC (blue) increasingly pay positive slippage (pool is pushed out-of-balance), while large sellers (red) increasingly experience negative slippage (favorable arb prices when pool is already EURC-light).
  • The extreme outliers in the $200–$750 range are the identified arb clusters (Feb 25, Jan 29 freeze recovery, Mar 23) where slippage reached ±140–250 bps on the largest trades.
  • Dashed trend lines confirm the size–slippage relationship is directional: USDC→EURC buys get more expensive per dollar as size grows; EURC→USDC sales get cheaper (or more favorable) as pool absorbs the sell pressure.

Chart 5 — Slippage Coloured by Pool Imbalance

Same chronological strip as Chart 2, but dots are coloured by the pool's EURC share at trade time (green = EURC-heavy ≥50%, red = USDC-heavy ≤50%). Circles = buy EURC (USDC→EURC), triangles = sell EURC (EURC→USDC).

  • The strong red colouring around trade ~1900 (Jan freeze) confirms the pool was deeply USDC-heavy when negative slippage (discount for EURC sellers) peaked — arb was correctly identifying and correcting the imbalance.
  • The far-right section (April post-exit) is strongly red/orange: the pool is USDC-heavy (EURC share ~37–38%) as EUR/USD rose without the pool being able to rebalance price_scale. Buyers of EURC pay elevated positive slippage (pool charges more), sellers receive below-oracle prices — both consistent with a stale, USDC-heavy pool.
  • The mid-period (Mar 29 – Apr 8, second LP) shows a balanced green tint: larger TVL and active rebalancing kept the pool near 50/50.

Cashness is the fifth quality of Stablecoins

The quality of stablecoins should be measured in comparison to cash, but first a quick overview about standard properties of money with focus on stablecoins.

Unit Of Account

The stablecoin paradox is the fact, that the static quality of a stablecoin is identical down to the last cent to all the other stablecoins. A 1 USD stablecoin is 1 USD by definition. The value is the same for all of them. In moneyness terms, the static quality represents the unit of account property. The first quality, the static quality, can be compared to a liquid without movement. It has the potential to flow, but is static for now.

Medium Of Exchange

The second quality, the spot quality of a stablecoin, can be very different. In moneyness terms the spot quality represents the medium of exchange properties. If you compare this to physics, it is a liquid which has some mass and some velocity, it becomes liquidity. A fixed amount of stablecoins can flow slow or fast or different quantities can flow the same speed. At this point the exchange liquidity available for this stablecoin counts. If you exchange 1 stablecoin valued 1 USD, all stablecoins can be exchanged to each other. Try that with 1 million USD worth of one stablecoin, and you may end with way less than 1 million USD in value.

Store Of Value

In the duration quality of a stablecoin, we find the widest range in quality. In moneyness terms the duration quality represents the store of value properties of a stablecoin. While the other two properties can be measured, the store of value is inherently unquantifiable, it describes a quality that may exists at a future date, and the further that date, the more uncertain it becomes. This is why this quality is built on the medium of exchange properties and on the reputation of the issuer. If you compare this to physics, you can see the store of value as acceleration, or in the case of a shock, a sudden deceleration upon impact. Before stablecoins existed, this quality has been under the radar and mentally bound to nation state currencies. The less a currency loses in value over time, the lower the inflation, the better the store of value. As most nation states today exist longer than a human lifespan, we take for granted that the issuer of nation state currency will not cease to exist. As every stablecoin is issued by someone, but not by a nation state, the store of value properties is bound to the issuer risk.

Cashness

But, and here comes the fifth quality, I call it cashness.

What is cashness?

Cashness is the measure of how similar a stablecoin or nation state currency is to cash, physical bills and coins of a nation state currency. What what many do not realize, most daily money today is commercial bank money, it is a number on a bank account, the issuer is the bank, not the nation state. It is not cash. It is private money of the bank you have the account with. If the bank disappears, your money disappears too. Because we are used to sending money to someone else with a different bank account at a different bank and the amount of money stays the same, we assume that we own nation state money, but we do not.

In the Swiss constitution, only bills and coins are defined as legal tender. Only cash is money backed by the nation state, the rest is all private commercial bank money. So cash has per definition the best cashness, while other forms of money are close, but not equal. Cash is: censorship resistant, not traceable, easy to store, cannot be changed by the issuer once you own it.

Now we can take that concept and apply it to stablecoins! What is the cashness of different stablecoins?

Cashness varies widely across stablecoins, and mostly scores low. Most are not censorship resistant, most are fully traceable on-chain, none are easy to store long term, and none are very lindy yet.

If you made it until here, yes, cashness is the fifth quality, he fourth property of stablecoins is means of speculation! You find more here: https://www.cryptonative.ch/introducing-means-of-speculation-as-a-core-characteristic-of-early-stage-stablecoins/

Benefits and Trade-offs in using Curve Basepool with Metapools

In curve stableswap an existing pool itself can be an asset of another pool. Then the pool is called a basepool and the pool who uses the basepool as asset is called a metapool. A basepool is a normal stableswap pool, over governance every pool can be turned into a basepool.

An Example:

USDC/USDT is the basepool, now we create a new metapool with USDC/USDT/crvUSD. To make it visible in the pool naming, I write this in (USDC/USDT)/crvUSD.

A video which explains this with the old interface: https://www.youtube.com/watch?v=VwJKioaAq_o

Existing basepools

3pool / 3crv DAI/USDC/USDT: https://www.curve.finance/dex/ethereum/pools/3pool/
Curve.fi Strategic USD Reserves / crv2pool : USDC/USDT https://www.curve.finance/dex/ethereum/pools/factory-stable-ng-355/

Some metapools, based on 3pool (DAI/USDC/USDT):

(DAI/USDC/USDT)/MIM https://www.curve.finance/dex/ethereum/pools/mim/deposit

In a perfectly balanced market 50% are in MIM and 16.6% each in DAI, USDC, and USDT.

(DAI/USDC/USDT)/gusd https://www.curve.finance/dex/ethereum/pools/gusd/deposit

To see all of them: https://www.curve.finance/dex/ethereum/pools?search=dai%2520usdc%2520usdt

One metapool, based on crv2pool:

MUSD/(USDC/USDT) https://www.curve.finance/dex/ethereum/pools/factory-stable-ng-518/deposit

In a perfectly balanced market 50% are in MIM and 16.6% each in DAI, USDC, and USDT.

A swap in this pool: https://etherscan.io/tx/0xb8858c1a31eca79033162c0e8830d8a5525b7e844ef628e39ba7a9401b75ab69

This is how a trade works in a metapool: USDC->MUSD

  1. USDC is deposited into the metapool
  2. The metapool deposits the USDC into the crv2pool and mints a crv2pool LP token with (USDC/USDT)
    3.The crv2pool LP (USDC/USDT) token is swapped for MUSD in the metapool
  3. The MUSD is sent to swapping address

Gas used is 317'793, native swap on USDC/USDT pool uses 205'497 GAS

Swap on USDC/USDT pool:
https://etherscan.io/tx/0x3469da6a80e944def9f2af7c777e51bbd1166805c90bdc64083164e961e3428c

This takes 50% more gas!

Benefits

  • 50% of the token in the metapool is paired to 2 or more assets. Example: 1 $M TVL, so 0.5 $M in MUSD and 0.25 $M each in USDC and USDT. In two pools: 0.5 $M TVL = MUSD/USDC (0.25 $M each) and 0.5 $M TVL in MUSD/USDT (0.25 $M each). UX is better, as only one pool has to be managed, not two. On big swaps routing cost is better, as a bigger swap would go over both pools. (33% more gas with two pools)
  • The basepool gets more TVL every time a metapool is created.
  • The metapool earns the trading fee of the basepool, but this is not shown in the UX. (Can be fixed)
  • The basepool LP token in the metapool always has the true market price, the same ratio of coins are the ones from the current price, even if not traded in the metapool itself

Neutral

  • On a depeg of the base pool asset or metapool the risk for liquidty provider stays the same

USDM/(DAI/USDC/USDT) with depeg: https://www.curve.finance/dex/ethereum/pools/factory-v2-23/deposit

USDM is not related to MUSD, these are different stablecoins.

Trade-Offs

  • To seed the pool, you need either the basepool LP token (Bad UX) or have all assets of the LP token.
  • The basepool LP token cannot be staked in the gauge, and is not getting rewards. basepool LP tokens are added to the metapool and then only the metapool LP token can be staked and earn rewards. If the basepool is rewarded, this makes it economically discouraged to use it in the metapool.
  • Confusing for asset issuers as they have more options to choose from.
  • If a metapool exist, but the dominant route is always USDC<->MUSD, then USDT is iddle and takes the place at the cost of the USDC
  • A swap over a metapool costs ~50% more in gas

Conclusions

Make basepool LP stakable to earn rewards from gauge in a metapool looks not feasible

It can't be fixed with current reward system. (stake in gauge). We would need to change how basepool works, basically autostake. But even then, as the metapool owns the basepool LP token, the reward is owned by the metapool. We hit the limits of staking.

For new chains with strong stablecoin preferences this could be a good solution

1) If they have a strong two USD stablecoins then it would make sense, as the base pool profits.

2) For the L2 who have their own stables and strong preference for USDT or USDC.

Example, garden chain has strong preference for USDC, so they make
gardenUSD/USDC as basepool, and encourage the the other stablecoins to pair as metapool. The basepool profits from this in growing TVL and so does the chain.

Link to docs around basepool and metapool:

https://docs.curve.finance/stableswap-exchange/stableswap-ng/pools/metapool/
https://docs.curve.finance/stableswap-exchange/stableswap/deposit_contracts/metapool_deposits/

The Ideal DeFi Lending Market

Has following properties:

User centric design

Borrowers should not need to interact directly with markets

Users don't care what market they use. They have one single goal: Bringing a collateral and borrow another asset for the lowest possible rate. They don't care on what underlying market they are using as long as the risk in them is comparable.

Lenders should not need to interact directly with markets

Pure lenders are optimizing for the highest returns, it's not their task to move assets from market to market to get that.

Can help migrate users position to new markets

Existing positions should be migrated to new markets, collateral and borrowed asset should be changed anytime with the lowest amount of transactions possible and without the need to pay back and recreate them.

Risk Management

Risk is to isolate

While cross lending protocols have no isolated risk, I assume that this design is hindering overall growth. The bar of entry for new assets is high. Economically this makes sense, as a few assets have the far biggest share in the market, but in a world where on-chain lending markets are the norm, this model does not scale. I don't have numbers, but I suspect cross lending is not used that often either. And in a system where shifting position is easy the same kind of market could be achieved with isolated risk.

Has an insurance fund

Over-optimizing parameters for outliers who do happen only once a year at cost of capital efficiency and reputation risk is reducing the potential of lending markets. As nobody can see the future better to have optimistic parameters and use an insurance fund.

Gives you time to react

On deteriorating health of position the market gives the user time to react by either having reaction time and partial liquidation. Many users have the funds to back up their positions, but these funds should be automatically allocated if such a system exists.

Market Operations

Markets need to be curated

As no single entity is able to monitor risk and have the expertise in all assets. This is why we need market experts who have a deep understanding of the assets they curate. Curated markets also help to attract users as the curators are incentivized to attract new users.

Curators need skin in the game

If curators have no skin in the game, they will optimize for revenue and not for safety. In a risk embracing market no skin in the game is very dangerous.

Technical Parameters

LTV is adjusted to the volatility of the asset

Many lending markets set max Loan to Value value at the time of creation. Desired is a high, but still safe LTV, because the higher the LTV is the less capital is needed for the same size of borrowing. But markets change and volatility too. LTV should be lowered if volatility is growing.

IRM model should be adjustable

Interest Rate Model (IRM) should be simple, yet adjustable. Quality of assets changes over time and markets too. As liquidity is sticky adjust the IRM helps to react to changing market conditions over time.

Parameters should be adjusted to position size

Different assets have different target groups and distribution. The supply buffer in the IRM should be adjusted to that position size.

User Interface & Information

Inform users

Users should be informed by push communication on changing conditions on markets they use or positions with deteriorating health. To expect users to monitor their positions actively is not enough.

Inform users on asset risk

Asset risk and compounding asset risk should be shown in a clear metric which is easy to understand. These metrics need to be updated on changing market conditions and users informed

Historical positions

Users need to be able to see historical positions, their yield earned and paid interest. After liquidation events they should be able to see why they happened and how much they lost.

What you see is what you get

APY should be shown to the fact and APY calculation needs to be public, so anyone can recalculate them. Historical APY on assets should be shown to give the users a feeling what they can expect. Absolute yield earned and paid interest rate and a calculated average APY should be visible for every position.

A metric to calculate Price for Liquidity for stablecoin pools, based on aave base rate

Things to take into account:

  • Bridging time to a deep liquid market (mostly this is ethreum mainnet)
  • Current overall liquidity on the chain
  • Base rate on aave (ethreum mainnet), average between USDC and USDT
  • Risk premium of the DeFi Project holding the liquidty
  • Speed of the chain (Block-Time)
  • Reputation of the chain
  • Can the farmed token be sold on-chain?
  • Whats it the max size to move APR down 10% (say from 15% to 13.5%), this size is 10% of the TVL!

Real life numbers (2025-04-01)

USDC/USDC pool on Taiko currently pays 14%, while base rate on AAVE today is 3.27 % (USDT) and 2.85 % (USDC) average is 3.06%.

Multiplier: 14 % / 3.06 % = 4.57!

  • Risk premium for bridge and bridge speed is above normal. (bridge back is 4h)
  • Current overall liquidity on the chain is small/mid size
  • Risk premium for curve, close to 0
  • Taiko has a block time of 0.5-2 min (slow)
  • chain is exotic
  • reputation is good
  • Can the farmed token be sold on-chain? Not good, liquidity of $TAIKO on chain is low.
  • Max size to bring down TVL 10% 119K!

Tweet: https://x.com/martinkrung/status/1907068618074169581

Liquidity in DEX on Sonic

From Coingeckoterminal

Volume to Liquidity Ratio by Pool

Pool Assets Volume Liquidity Volume/Liquidity Ratio
USDC.e/wS Bridged USDC (Sonic Labs) $6.21M $207.61K 29.9119
scUSD/wS Sonic USD $1.74M $101.46K 17.1496
USDC.e/wS Bridged USDC (Sonic Labs) $15.94M $1.12M 14.2321
SHADOW/wS Shadow $1.80M $144.14K 12.4879
EGGS/wS Eggs $1.84M $427.75K 4.3016
USDC.e/wS Bridged USDC (Sonic Labs) $22.99M $6.89M 3.3367
USDC.e/WETH Bridged USDC (Sonic Labs) $2.87M $891.16K 3.2205
stS/wS Beets Staked Sonic $6.23M $2.18M 2.8578
USDC.e/wS Bridged USDC (Sonic Labs) $7.96M $2.91M 2.7354
USDC.e/WETH Bridged USDC (Sonic Labs) $3.07M $1.23M 2.4959
USDC.e/stS Bridged USDC (Sonic Labs) $1.65M $747.50K 2.2074
stS/wS Beets Staked Sonic $9.90M $5.73M 1.7277
WETH/wS Wrapped Ether on Sonic $5.01M $3.62M 1.3840
x33/SHADOW Shadow Liquid Staking Token $1.70M $1.36M 1.2500
USDC.e/bpt-isb / scUSD Bridged USDC (Sonic Labs) $2.66M $2.28M 1.1667
USDC.e/scUSD Bridged USDC (Sonic Labs) $1.77M $6.07M 0.2916

Liquidity in DEX on optimism

On Curve

Volume to TVL Ratio by Pool

Pool Assets Volume TVL Volume/TVL Ratio
HAI/sUSD HAI sUSD $30,141 $11,291 2.669471
3pool DAI USDC USDT $830,367 $414,479 2.003399
HAI/LUSD HAI LUSD $13,744 $16,637 0.826110
TriCRV-OPTIMISM crvUSD OP CRV $162,617 $387,041 0.420154
crvUSD/USDC crvUSD USDC $122,153 $347,233 0.351790
FRAX/MONEY Curve FRAX MONEY $16,965 $60,339 0.281161
crvUSD/USDT crvUSD USDT $123,633 $445,098 0.277766
USDT/MONEY Curve (1) USDT MONEY $12,149 $52,664 0.230689
USDT/MONEY Curve (2) USDT MONEY $12,149 $52,664 0.230689
USDC/MONEY Curve USDC MONEY $8,990 $44,523 0.201918
Tricrypto-crvUSD crvUSD WBTC WETH $5,966 $49,496 0.120535
crvUSD/MONEY Curve crvUSD MONEY $37,770 $389,517 0.096966
crvUSD/USDC.e crvUSD USDC.e $22,942 $262,833 0.087287
sUSD Synthetix sUSD DAI USDC USDT $32,056 $377,939 0.084818
USDC/USDM USDC USDM $180,007 $2.20M 0.081821
crvUSD/sUSD crvUSD sUSD $1,157 $14,994 0.077164
sETH/ETH ETH sETH $2,889 $39,151 0.073791
sBTC/wbtc sBTC WBTC $5,096 $237,448 0.021462
wsteth ETH wstETH $1,181 $140,931 0.008380
MIM MIM DAI USDC USDT $152 $254,009 0.000598
2BTC tBTC WBTC $958 $12.00M 0.000080

Filterd after pools containing these assets

Volume to TVL Ratio by Pool (Filtered by ETH/WBTC/USDC/USDT/wstETH/OP)

Pool Assets Volume TVL Volume/TVL Ratio
3pool DAI USDC USDT $830,367 $414,479 2.003399
TriCRV-OPTIMISM crvUSD OP CRV $162,617 $387,041 0.420154
crvUSD/USDC crvUSD USDC $122,153 $347,233 0.351790
crvUSD/USDT crvUSD USDT $123,633 $445,098 0.277766
USDT/MONEY Curve (1) USDT MONEY $12,149 $52,664 0.230689
USDT/MONEY Curve (2) USDT MONEY $12,149 $52,664 0.230689
USDC/MONEY Curve USDC MONEY $8,990 $44,523 0.201918
Tricrypto-crvUSD crvUSD WBTC WETH $5,966 $49,496 0.120535
sUSD Synthetix sUSD DAI USDC USDT $32,056 $377,939 0.084818
USDC/USDM USDC USDM $180,007 $2.20M 0.081821
sETH/ETH ETH sETH $2,889 $39,151 0.073791
sBTC/wbtc sBTC WBTC $5,096 $237,448 0.021462
wsteth ETH wstETH $1,181 $140,931 0.008380
MIM MIM DAI USDC USDT $152 $254,009 0.000598
2BTC tBTC WBTC $958 $12.00M 0.000080

On Uniswap:

Most traded assets are:

ETH/WBTC/USDC/USDT/wstETH/OP