The user can add liquidity on various liquidity pools on different dexes and earn pool fees. A pool is a pair of two tokens.
Step 1: Check the allowance of the pool contract on both tokens.
To initiate a swap, first determine if the DEX has the necessary allowance to access the tokens. This can be done using the following API endpoint:
API URL:
https://api.expand.network/fungibletoken/getuserallowance
Sample Request:
https://api.expand.network/fungibletoken/getuserallowance?owner=0x6Fb447Ae94F5180254D436A693907a1f57696900&tokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&spender=0xBA12222222228d8Ba445958a75a0704d566BF2C8
Sample Response:
{
"status": 200,
"msg": "success",
"data": {
"allowance": "999000000000000000000"
}
}
Step 2: Approve the pool contract from the tokens
This can be done using the following API endpoint:
API URL:
https://api.expand.network/fungibletoken/approve
Sample Request:
{
"from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
"tokenAddress":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"amount": "1000000000000000000000",
"to": "0x828b154032950c8ff7cf8085d841723db2696056",
"gas": "100000",
"chainId": "1"
}
Sample Response:
{
"status": 200,
"msg": "success",
"data": {
"from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
"to": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"value": "0",
"gas": "100000",
"data": "0x095ea7b3000000000000000000000000828b154032950c8ff7cf8085d841723db269605600000000000000000000000000000000000000000000003635c9adc5dea00000"
}
}
Step 3: Add Liquidity
This can be done using the following API endpoint:
API URL:
https://api.expand.network/dex/addliquidity
Sample Request:
{
"dexId": "1000",
"tokenA": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"tokenB": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"amountADesired": "1000000000000000",
"amountBDesired": "1332066335118442626",
"amountAMin": "0",
"amountBMin": "0",
"to": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
"deadline": "166978170",
"from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
"gas": "230000"
}
Sample Response:
{
"status": 200,
"msg": "success",
"data": {
"from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
"to": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
"value": "0",
"gas": "230000",
"data": "0xe8e33700000000000000000000000000b4fbf271143f4fbf7b91a5ded31805e42b2208d600000000000000000000000011fe4b6ae13d2a6055c8d9cf65c55bac32b5d84400000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000127c734631fdc0820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063056e00436da25bcf48a40dfbbdcc70893510060000000000000000000000000000000000000000000000000000000009f3e27a"
}
}
The user will receive the LP tokens after adding liquidity to the pool.