liquidity-migration
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
liquidityMigratorin 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
Airlockwiring. - Simulate migration balances and fee handling (
Airlock-> initializer exit -> migrator). - Execute migration and verify destination pool/locker state.
Option guidance
| Target | Recommendation | Verification anchor |
|---|---|---|
| Uniswap V2 | Supported compatibility path | migrator-uniswap-v2 |
| Uniswap V3 | Use only when Uni v4 is unavailable and custom fees are required | migrator-uniswap-v3 |
| Uniswap V4 | Preferred default | migrator-uniswap-v4 |
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
liquidityMigratoraddress in deployment wiring - Wrong token orientation leading to incorrect destination position state
- Assuming split-distribution behavior without split migrator configuration
References
- airlock
- migrator-uniswap-v2
- migrator-uniswap-v3
- migrator-uniswap-v4
- proceeds-split-migration
- pda-multicurve
- verification
- Source:
doppler/src/Airlock.sol,doppler/src/migrators/UniswapV4MulticurveMigrator.sol,doppler/src/migrators/UniswapV4MigratorSplit.sol
More from rustydotwtf/doppler-skills
fee-architecture
Reference for Doppler fee collection, distribution, and configuration across Airlock, FeesManager, locker contracts, and hook-based fee paths.
9token-lifecycle
Reference for Doppler token creation, vesting, inflation, and factory selection across DERC20, DERC2080, CloneERC20, and CloneDERC20VotesV2 paths.
9uniswap-fundamentals
Reference for Uniswap V3/V4 concepts used in Doppler development, including tick math, sqrtPriceX96, concentrated liquidity formulas, and V4 hooks/singleton architecture.
9verification
Verify on-chain Doppler behavior with cast, viem, RPC, and explorers for dynamic auctions, multicurve launches, hook initializer state, and migration flows.
8proceeds-split-migration
Configure and verify migration-time proceeds split flows using `ProceedsSplitter`, `TopUpDistributor`, `UniswapV4MigratorSplit`, and `UniswapV4MigratorSplitHook`.
7rehype
Operate, configure, test, and deploy Doppler's Rehype V4 hook for buybacks, beneficiary fees, and airlock-owner fee claims.
4