⛓
Integration Helpers
Helpers to use and integrate Merkl
Live AMMs & Chains | Epoch Time | Supported Liquidity Managers |
---|---|---|
🦄 UniswapV3 - Ethereum | 6 hours | Gamma, Arrakis |
🦄 UniswapV3 - Polygon | 6 hours | Gamma, Arrakis |
🦄 UniswapV3 - Optimism | 6 hours | Gamma |
🦄 UniswapV3 - Arbitrum | 6 hours | Gamma |
🍣 SushiswapV3 - Ethereum | 6 hours | |
🍣 SushiswapV3 - Polygon | 6 hours | |
🍣 SushiswapV3 - Optimism | 6 hours | |
🍣 SushiswapV3 - Arbitrum | 6 hours | |
Merkl is organized around 2 main contracts on each chain on which it is available:
Distributor
: where liquidity providers claim their rewards and stakeholders contest the proposed Merkle rootsDistributionCreator
: where incentivizors deposit their rewards and specify the distribution parameters they want for it
Both contracts are managed through a
CoreMerkl
contract managed by a multisig which has the power to settle disputes, change dispute parameters, to modify fees and their recipients, and to whitelist new addresses allowed to modify Merkle roots in the Distributor
contract. It has no ability to alter distributions.Chain | Contracts |
---|---|
Ethereum | |
Polygon | |
Optimism | |
Arbitrum |
Addresses of the
Distributor
and DistributionCreator
contracts are the same across all chains.When depositing a reward, incentivizors should specify the addresses of the smart contracts they want to exclude from the distribution.
On top of that, while Gamma or Arrakis are automatically detected by the script, addresses of other types of liquidity position managers may need to be given to the contract when creating a distribution for the script to be able to specifically deal with them.
Overall, when creating a distribution, you may tell the script to apply a specific set of rules to some addresses by specifying for these addresses a predefined type.
Types are
uint32
numbers and they are the same across the different chains on which Merkl is deployed.While this docs is regularly updated, this page remains the most up to date source of truth for the mapping between types and how the script should handle them.
Last modified 8d ago