Source References: Use Doppler deployments as the contract source of truth for deployed addresses and revisions.
Liquidity Migration
When to use
- You are deciding where launch liquidity should migrate after price discovery
- You need protocol-consistent guidance across V2, V3, and V4 destinations
- You need a strict decision rule for when V3 migration is acceptable
- You are verifying
Airlock.migrate(asset) behavior and migrator selection
Prerequisites
- Confirm launch posture (non-migrating vs migrable)
- Confirm asset/numeraire orientation and target pool assumptions
- Identify active
liquidityMigrator in deployment configuration before execution
Core workflow
- Choose migration target class:
- Uniswap V2 (supported)
- Uniswap V3 (only if Uni v4 is unavailable and custom fees are required)
- Uniswap V4 (preferred)
- Validate deployed migrator contract and permissions from
Airlock wiring.
- Simulate migration balances and fee handling (
Airlock -> initializer exit -> migrator).
- Execute migration and verify destination pool/locker state.
Option guidance
Quick facts
| Item | Detail |
|---|
| Migration entrypoint | Airlock.migrate(asset) |
| Migration handoff | liquidityMigrator.migrate(...) |
| V4 split module | UniswapV4MigratorSplit + TopUpDistributor |
| V4 standard module | UniswapV4MulticurveMigrator |
Failure modes
- Selecting V3 when Uni v4 is available
- Selecting V3 without an explicit custom-fee requirement
- Misconfigured
liquidityMigrator address in deployment wiring
- Wrong token orientation leading to incorrect destination position state
- Assuming split-distribution behavior without split migrator configuration
References