This section contains SDK example for providing liquidity in DEX
Provide liquidity for a pool
Jetton/Jetton pool deposit (two sides)
import { TonClient, toNano } from"@ton/ton";import { DEX } from"@ston-fi/sdk";constUSER_WALLET_ADDRESS=""; // ! replace with your addressconstJETTON_0_ADDRESS="kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5"; // TestREDconstJETTON_1_ADDRESS="kQB_TOJSB7q3-Jm1O8s0jKFtqLElZDPjATs5uJGsujcjznq3"; // TestBLUEconstclient=newTonClient({ endpoint:"https://testnet.toncenter.com/api/v2/jsonRPC",});constrouter=client.open(DEX.v2_1.Router.create("kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v"// CPI Router v2.1.0 ));consttxParams=awaitPromise.all([// deposit 1 TestRED to the TestRED/TestBLUE pool and get at least 1 nano LP tokenrouter.getProvideLiquidityJettonTxParams({ userWalletAddress:USER_WALLET_ADDRESS, sendTokenAddress:JETTON_0_ADDRESS, sendAmount:toNano("1"), otherTokenAddress:JETTON_1_ADDRESS, minLpOut:"1", queryId:12345, }),// deposit 1 TestBLUE to the TestRED/TestBLUE pool and get at least 1 nano LP tokenrouter.getProvideLiquidityJettonTxParams({ userWalletAddress:USER_WALLET_ADDRESS, sendTokenAddress:JETTON_1_ADDRESS, sendAmount:toNano("1"), otherTokenAddress:JETTON_0_ADDRESS, minLpOut:"1", queryId:123456, }),]);
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.
Jetton/Jetton pool deposit (single sides)
constUSER_WALLET_ADDRESS=""; // ! replace with your addressconstJETTON_0_ADDRESS="kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5"; // TestREDconstJETTON_1_ADDRESS="kQB_TOJSB7q3-Jm1O8s0jKFtqLElZDPjATs5uJGsujcjznq3"; // TestBLUEconstclient=newTonClient({ endpoint:"https://testnet.toncenter.com/api/v2/jsonRPC",});constrouter=client.open(DEX.v2_1.Router.create("kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v"// CPI Router v2.1.0 ));// deposit 1 TestRED to the TestRED/TestBLUE pool and get at least 1 nano LP tokenconsttxParams=awaitrouter.getSingleSideProvideLiquidityJettonTxParams({ userWalletAddress:USER_WALLET_ADDRESS, sendTokenAddress:JETTON_0_ADDRESS, sendAmount:toNano("1"), otherTokenAddress:JETTON_1_ADDRESS, minLpOut:"1", queryId:123456,});
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.
TON/Jetton pool deposit (two sides)
import { TonClient, toNano } from"@ton/ton";import { DEX, pTON } from"@ston-fi/sdk";constUSER_WALLET_ADDRESS=""; // ! replace with your addressconstJETTON_0_ADDRESS="kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5"; // TestREDconstclient=newTonClient({ endpoint:"https://testnet.toncenter.com/api/v2/jsonRPC",});constrouter=client.open(DEX.v2_1.Router.create("kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v"// CPI Router v2.1.0 ));constproxyTon=pTON.v2_1.create("kQACS30DNoUQ7NfApPvzh7eBmSZ9L4ygJ-lkNWtba8TQT-Px"// pTON v2.1.0);consttxParams=awaitPromise.all([// deposit 1 TON to the TON/TestRED pool and get at least 1 nano LP tokenrouter.getProvideLiquidityTonTxParams({ userWalletAddress:USER_WALLET_ADDRESS, proxyTon, sendAmount:toNano("1"), otherTokenAddress:JETTON_0_ADDRESS, minLpOut:"1", queryId:12345, }),// deposit 1 TestRED to the TON/TestRED pool and get at least 1 nano LP tokenrouter.getProvideLiquidityJettonTxParams({ userWalletAddress:USER_WALLET_ADDRESS, sendTokenAddress:JETTON_0_ADDRESS, sendAmount:toNano("1"), otherTokenAddress:proxyTon.address, minLpOut:"1", queryId:123456, }),]);
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.
TON/Jetton pool deposit (single sides)
import { TonClient, toNano } from"@ton/ton";import { DEX, pTON } from"@ston-fi/sdk";constUSER_WALLET_ADDRESS=""; // ! replace with your addressconstJETTON_0_ADDRESS="kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5"; // TestREDconstclient=newTonClient({ endpoint:"https://testnet.toncenter.com/api/v2/jsonRPC",});constrouter=client.open(DEX.v2_1.Router.create("kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v"// CPI Router v2.1.0 ));constproxyTon=pTON.v2_1.create("kQACS30DNoUQ7NfApPvzh7eBmSZ9L4ygJ-lkNWtba8TQT-Px"// pTON v2.1.0);// deposit 1 TON to the TON/TestRED pool and get at least 1 nano LP tokenconsttxParams=awaitrouter.getSingleSideProvideLiquidityTonTxParams({ userWalletAddress:USER_WALLET_ADDRESS, proxyTon, sendAmount:toNano("1"), otherTokenAddress:JETTON_0_ADDRESS, minLpOut:"1", queryId:12345,});
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.