Everstrat Docs home
Changelog

Strategy updates

Strategy improvements, pool additions, and migrations.

UniCL v2 migration executed

Governance 019 registered four v2 strategies on the existing pools. All four 020 operations then moved the v1 strategies' funds into Controller and removed the old instances. At the October 19 snapshot, only the four v2 strategies were registered and held the Converter caller role; the retired v1 instances reported zero NAV.

Registration alone does not establish that the v2 instances are funded or continuously executing.

Execution evidence

019 executed at block 26,226,427 in this transaction. The four 020 operations followed at blocks 26,226,428–26,226,432. The deployment snapshot records all five operation IDs and execution transactions, checked at block 26,226,476, 11:59:35 UTC. It also lists the registered v2 and retired v1 addresses.

UniCL v2 makes better use of inventory

The new implementation sizes swaps for the position’s actual token ratio and uses leftover inventory in an alternate position.

  • Deposits can add liquidity without rebuilding the whole position.
  • Withdrawals use idle inventory first, then remove the liquidity needed.
  • Existing static strategies still require deployment and migration.

Subsequent mainnet activation: the v2 registration and v1 removal operations executed on October 19, 2026. Migration execution and evidence.

Details & sources

UniCLStrat 2.0.0 implementation

Merged. Added ratio-aware inventory swaps, an alternate position built from actual leftovers, and incremental liquidity additions. Withdrawals use idle inventory before partially burning positions, size swaps against the actual route, and fully unwind near-full withdrawals. Partial collection rebases the LP-fee snapshot so returned principal does not become performance-fee income. Shared logic moved into the linked UniCLStratLib.

Source: contracts #53, merge 157129b. Mainnet activation followed through new deployments and the October 19 migration.

UNI/WETH joins the strategy basket

The re-deployed UNI/WETH 0.30% strategy is registered, bringing the basket to four strategies at execution.

Details & sources

UNI/WETH 0.30% strategy registered

Executed on mainnet. Registered the re-deployed UNI/WETH strategy with deposit/withdrawal weights 10 / 10, bringing the registered basket to four strategies at that execution. This is governance record 017. The earlier record 015 was withdrawn before timelock scheduling and did not activate its proposed strategy.

Evidence: governance 017, execution receipt, block 26,061,446, 11:52:11 UTC.

Rebalance only when there is work to do

The strategy health check no longer requests a rebalance while a pool is non-calm. Existing instances need migration to receive this implementation change.

Details & sources

Rebalance health predicate corrected

Merged. isHealthy() reports no actionable rebalance for paused or non-calm pools. The rebalance trigger now requires a calm, unpaused, drifted strategy. Deposit capacity still independently falls to zero when paused or non-calm. This change applies to newly deployed builds; existing static instances require migration. The interim off-chain mitigation is recorded in Automation.

Source: contracts #51.

WETH/USDT joins the strategy basket

The WETH/USDT 0.30% strategy is registered with deposit and withdrawal weights of 45 / 45.

Details & sources

WETH/USDT 0.30% strategy registered

Executed on mainnet. Added the WETH/USDT strategy with deposit/withdrawal weights 45 / 45. Registration also authorized the strategy as a Converter caller.

Evidence: governance 011, execution receipt, block 25,989,831, 11:46:59 UTC.

The first two USDC/WETH strategies are registered

USDC/WETH strategies join the basket for the 0.30% and 0.01% pools, with weights of 40 / 40 and 15 / 15.

Details & sources

First two USDC/WETH strategies registered

Executed on mainnet. Added USDC/WETH strategies for the 0.30% and 0.01% pools with deposit/withdrawal weights 40 / 40 and 15 / 15, respectively. Each registration granted Converter caller permission.

Evidence: governance 009. The 0.30% registration executed at block 25,983,233, 13:42:35 UTC; the 0.01% registration at block 25,983,238, 13:43:47 UTC.

USDT behavior tested on a mainnet fork

New fork tests exercise UniCLStrat with real USDT behavior before strategy registration.

Details & sources

Real-USDT fork coverage

Merged. Added mainnet-fork coverage for UniCLStrat against real USDT behavior. This is validation of the implementation, not the strategy's registration date.

Source: contracts #50.

Bootstrap settings checked against mainnet

Fork tests validate UniCLStrat’s mainnet bootstrap parameters before registration.

Details & sources

Bootstrap configuration fork checks

Merged. Added fork validation of UniCLStrat mainnet bootstrap parameters before registration.

Source: contracts #48.

Stronger strategy recovery and pool checks

Strategy pause and ETH recovery can proceed when a paired token fails.

  • Pool configuration must match the trusted factory.
  • TWAP history is checked at construction and when settings change.
  • Pause is still best-effort recovery, not proof that all assets were recovered.
Details & sources

Circuit-breaker and pool-validation hardening

Merged. Isolated best-effort paired-token allowance revocation and token recovery so a degraded paired token does not roll back the pause or ETH sweep. Added factory provenance checks for pools, and construction/configuration checks for TWAP availability and observation cardinality. Pause remains best-effort recovery; it does not prove that all pool liquidity was recovered.

Source: contracts #42.

Historical migration check

UniCL v2 was Ready on October 15

At the October 15 check, the registration and removal operations were Ready, not executed. The basket still contained four v1 strategies; Controller 1.1.0 was active.

  • 019 was ready to register the v2 replacements.
  • 020 was ready to drain and remove v1 after 019.
  • Both subsequently executed in the October 19 migration.
Verification & sources

Verification: October 15, 2026, 19:18:11 UTC, Ethereum mainnet block 26,199,960. Governance 019 and all four 020 operations were Ready, not executed. The registered strategy list still contained the four v1 instances. Controller 1.1.0 was active.

  • 019 registers four deployed UniCL v2 replacements. Registration alone moves no capital.
  • 020 drains and removes the four v1 instances; its operations depend on 019.
  • A completed migration requires execution receipts and the resulting basket state. Reaching the timelock's ready-at time does not execute a transaction.

Sources: governance #33, 019 payload, and 020 payload. The pinned block, operation IDs, and verification boundary are recorded in the migration recheck. Older proposal-status prose predates scheduling and is not the authority for this check.

About this history

Dates are UTC. Merged entries describe implementation changes. UniCLStrat instances are static: an implementation merge does not update an existing instance. Executed on mainnet entries include the registration receipt and block. Registration alone does not establish funding, health, or continuous execution. The canonical address inventory and basket state remain in Current deployments.

Last updated on