3. Setting up a liquidity pool for your ERC-20 token
Setting up a liquidity pool is mandatory to enable other functionalities such as adding your ERC-20 token to the Commerce Widget.
Setting up liquidity pools is a prerequisite to enabling your ERC-20 token to appear in many widgets and services.
Once you have followed this guide to set up the necessary liquidity pools, your token will be eligible for inclusion in the following:
- Bridging via Squid
- Swaps on QuickSwap
- Swaps in Immutable’s Checkout widgets
- Transak on-ramping
You must still follow any necessary steps in the subsequent ERC-20 guides to complete this process.
What is a liquidity pool?
A liquidity pool is a place where tokens are held and used to facilitate swaps. A Decentralised EXchange (DEX) allows individuals to provide liquidity into a liquidity pool to facilitate swaps between tokens. When a user swaps tokens on a DEX, they are essentially trading with these liquidity providers (LPs) via the liquidity pool.
For your token to be traded on a DEX, someone (usually either you, or a professional LP service) will need to become a Liquidity Provider for your Immutable zkEVM token on QuickSwap.
Why do I need to set up a liquidity pool?
Setting up a liquidity pool for your ERC-20 token is a huge value add for your users and a prerequisite step to many of Immutable’s service offerings including bridging, swapping and on-ramping. Setting up a liquidity pool as per the instructions in this guide is necessary to:
- Enable your users to bridge (or bridge and swap) your ERC-20 token from its source chain to Immutable zkEVM.
- Enable your users to make swaps with your ERC-20 token on QuickSwap.
- Enable your users to make swaps with your ERC-20 token in Immutable’s Checkout widgets.
- Enable your users to on-ramp your ERC-20 token with Transak.
These features work by using Immutable's TypeScript SDK to interact directly with QuickSwap's decentralized exchange (DEX) smart contracts. Immutable does not run its own DEX.
To interact with QuickSwap’s decentralized exchange and enable these user features, you must set up liquidity for your ERC-20 token on Immutable zkEVM and any other necessary chains.
How do I set up a liquidity pool?
Set up your liquidity pool with Quickswap
To set up your liquidity pool using Quickswap, please follow their provided instructions. Ensure you set up a liquidity pool between your $GAME-TOKEN
and $USDC
as this will give your token the best on-chain liquidity.
Token issuers will be responsible for managing and maintaining the DEX pool for their ERC-20 token.
FAQ's
I've launched my token but can't see it on the DEX.
If you don’t see your ERC-20 token listed in the available options on the DEX, then you can usually add it manually when you are creating a liquidity pool by pasting in the contract address for your token.
Does my token need to be on a DEX to run a primary sale using my token?
If you are launching a primary sale for your game with your ERC-20 token as the only currency accepted for the sale, players will need to buy your token from somewhere to participate in the sale. This means you will need to ensure there is a DEX with sufficient liquidity of your token to support your sale goals. This is especially important if you have created a new ERC-20 and there aren't many tokens in circulation yet.
Are there third party liquidity providers?
If you don't want to manage your own liquidity pools, you could run a liquidity provider (LP) rewards program through a partner like Merkl.
How many liquidity pools do I need to set up?
Quickswap uses something called ‘automatic routing’ behind the scenes. If a player wants to swap between two tokens which don't have a liquidity pool set up for that exact pairing, it will attempt to find a common liquidity pool between the two tokens and make a seamless multi-step trade.
This means you don't need to set up a liquidity pool for each token on the DEX platform. Usually you only need to set up one liquidity pool and the automatic routing will work to facilitate trades between any of the listed tokens.
You should set up one liquidity pool between your $GAME-TOKEN
and $USDC
on Immutable zkEVM.