Airlock is a protocol facilitating the deployment of new tokens using a modular approach.
Different types of modules can be used to cover the several aspects of the token lifecycle:
| Module | Role |
|---|---|
| TokenFactory | Deploys the tokens |
| GovernanceFactory | Deploys governance and timelock contracts |
| PoolInitializer | Initializes a liquidity pool, for example on Uniswap V3 |
| LiquidityMigrator | Migrates liquidity from one pool to another |
Note: a "module" must be whitelisted before it can be used.
Here is how the different modules interact with the Airlock contract:
---
title: Protocol Architecture
---
flowchart LR
MS{Whetstone<br />MultiSig} --> |set modules|A
Bundler --> |calls|A
A[Airlock] --> TFM
A --> GFM
A --> LMM
A --> PIM
subgraph TFM[TokenFactory Modules]
TF[TokenFactory]
end
style TFM fill:#ECD9FA, color:#000
TF --o DERC20
subgraph GFM[GovernanceFactory Modules]
GovernanceFactory
NoOpGovernanceFactory
end
style GFM fill:#ADF0D4, color:#000
GovernanceFactory --o Governance
GovernanceFactory -.->TimelockFactory
TimelockFactory -.-> Timelock
style Governance fill:green
subgraph PIM[PoolInitializer Modules]
UniswapV3Initializer
UniswapV4Initializer
UniswapV4MulticurveInitializer
end
style PIM fill:#B6ECF7, color:#000
UniswapV3Initializer --> |initializes pool| UniswapV3
UniswapV4Initializer --> |initializes pool| UniswapV4
UniswapV4MulticurveInitializer --> |initializes pool| UniswapV4
subgraph LMM[LiquidtyMigrator Modules]
UniswapV2Migrator
UniswapV4Migrator
UniswapV4MulticurveMigrator
end
style LMM fill:#F6EEB4, color:#000
UniswapV2Migrator --> |migrates| UniswapV2
UniswapV4Migrator --> |migrates| UniswapV4
UniswapV4MulticurveMigrator --> |migrates| UniswapV4
style UniswapV2 fill:#ff37c7
style UniswapV3 fill:#ff37c7
style UniswapV4 fill:#ff37c7
Here is a list of available modules:
| Module | Type | Description |
|---|---|---|
| TokenFactory | TokenFactory |
Deploys DERC20 tokens |
| GovernanceFactory | GovernanceFactory |
Deploys Governance and Timelock contracts |
| NoOpGovernanceFactory | GovernanceFactory |
Skips governance deployment |
| UniswapV3Initializer | PoolInitializer |
Initializes a Uniswap V3 pool |
| UniswapV4Initializer | PoolInitializer |
Initializes a Uniswap V4 pool with the Doppler hook |
| UniswapV4MulticurveInitializer | PoolInitializer |
Initializes a Uniswap V4 pool with liquidity distributed across multiple curves |
| LockableUniswapV3Initializer | PoolInitializer |
Initializes a Uniswap V3 pool and locks liquidity for a defined period |
| UniswapV2Migrator | LiquidityMigrator |
Migrates liquidity to a Uniswap V2 pool after a successful auction |
| UniswapV4Migrator | LiquidityMigrator |
Migrates liquidity to a Uniswap V4 pool after a successful auction |