Get Solana Swap Instructions#
Obtain transaction instruction data for redemption or custom assembly in Solana.
Request URL#
GET https://web3.okx.com/api/v6/dex/aggregator/swap-instruction
Request Parameters#
Parameter | Type | Required | Description |
---|---|---|---|
chainIndex | String | Yes | Unique identifier for the chain. e.g., 501 : Solana. See more here. |
amount | String | Yes | Token amount for the quote. (The amount must include its precision. For example, exchanging 1.00 USDT requires inputting 1000000 , while exchanging 1.00 DAI requires 1000000000000000000 . Token precision can be obtained from the Tokenlist.) |
fromTokenAddress | String | Yes | Address of the token contract being swapped from (e.g., 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ). |
toTokenAddress | String | Yes | Address of the token contract being swapped to (e.g., 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 ). |
slippagePercent | String | Yes | Slippage limit. Note: 1. For EVM networks, the slippage setting has a minimum value of 0 and a maximum value of 100 .2. For Solana, the slippage setting has a minimum value of 0 and a maximum value of less than 100 .(For example: 0.5 means that the maximum slippage for this transaction is 0.5% .) |
autoSlippage | Boolean | No | Default is false. When set to true, the original slippage (if set) will be covered by the autoSlippage and the API will calculate and return auto slippage recommendations based on current market data. |
maxAutoSlippagePercent | String | No | When autoSlippage is set to true, this value is the maximum auto slippage returned by the API(e.g., 0.5 represents 0.5%). We recommend that users adopt this value to ensure risk control. |
userWalletAddress | String | Yes | User’s wallet address (e.g., 0x3f6a3f57569358a512ccc0e513f171516b0fd42a ). |
swapReceiverAddress | String | No | Recipient address for the purchased asset. If not set, the asset will be sent to the userWalletAddress . (e.g., 0x3f6a3f57569358a512ccc0e513f171516b0fd42a ). |
feePercent | String | No | The percentage of fromTokenAmount will be sent to the referrer's address, the rest will be set as the input amount to be sold. min percentage> 0 max percentage: 10 for Solana, 3 for all other chains. By configuring this parameter, you can obtain the final amount of totoken provided to the user after deducting the commission from fromtoken. A maximum of nine decimal places is allowed. If more decimals are entered, the system will automatically round up. |
fromTokenReferrerWalletAddress | String | No | Wallet address receiving the referral fee in fromToken .Must be used with feePercent , and a single transaction can only apply either fromToken or toToken referral fees.Note: Solana: The referral address must hold some SOL for activation. |
toTokenReferrerWalletAddress | String | No | Wallet address receiving the referral fee in toToken .Must be used with feePercent , and a single transaction can only apply either fromToken or toToken referral fees.Note: Solana: The referral address must hold some SOL for activation. |
positiveSlippagePercent | String | No | This feature is open to whitelist or enterprise clients only. If you want to access it , please contact dexapi@okx.com Once configured, a fee can be charged on the quote improvement portion, capped at 10% of the total trade amount. The cap can be adjusted by specifying a custom percentage parameter.The default setting is 0. Min percentage : 0 ,Max percentage : 10 , Maximum of 1 decimal point.Currently, this parameter is only supported on the Solana chain. |
positiveSlippageFeeAddress | String | No | This feature is open to whitelist or enterprise clients only. If you want to use it , please contact dexapi@okx.com The wallet address that receives positive slippage. You must set positiveSlippagePercent parameter together to specify the proportion. If provided, all positive slippage earnings will be sent to this address; if not provided, the wallet address used for collecting referral fees will be used instead. |
dexIds | String | No | Restrict the quote to specific liquidity pools by dexId . Multiple IDs should be comma-separated (e.g., 1,50,180 . See liquidity list for more details). |
excludeDexIds | String | No | The dexId of the liquidity pool will not be used, multiple combinations separated by , (e.g.,1,50,180 , see liquidity list for more) |
disableRFQ | Boolean | No | Disable all liqudity source classified as RFQs that have dependencies on time-sensitive quotes. The default setting is false. |
directRoute | Boolean | No | The default setting is false. When enabled, Direct Routes restrict our routing to a single liquidity pool only. Currently, this feature is only active for Solana swaps. |
priceImpactProtectionPercent | String | No | This is an optional feature. The default value is 90 (representing 90%). The priceImpactProtectionPercent can be set between 0 and 100. When it’s set to 100 (representing 100%), the feature is disabled and every transaction will be allowed to pass. If the estimated price impact is above the percentage indicated, an error will be returned. For example, if priceImpactProtectionPercent = 25 (25%), any quote with a price impact higher than 25% will return an error. Note: If we’re unable to calculate the price impact, we’ll return null, and the price impact protection will be disabled. |
computeUnitPrice | String | No | Used for transactions on the Solana network and similar to gasPrice on Ethereum. This price determines the priority level of the transaction. The higher the price, the more likely that the transaction can be processed faster. |
computeUnitLimit | String | No | Used for transactions on the Solana network and analogous to gasLimit on Ethereum, which ensures that the transaction won’t take too much computing resource. |
Response Parameters#
Parameter | Type | Description |
---|---|---|
addressLookupTableAccount | Array | Address Lookup Table Account. A data structure in the Solana blockchain used to optimize the management and referencing of addresses in transactions. It allows developers to store a group of related addresses in a table and reference them in transactions via index values (instead of the full 32-byte address), significantly improving transaction efficiency and scalability. |
instructionLists | Array | Detailed transaction instruction information |
data | String | Instruction data |
accounts | Array | Instruction account information |
isSigner | Boolean | Whether the account is a signer |
isWritable | Boolean | Whether the account is writable |
pubkey | Boolean | Public key address of the account |
programId | String | Program ID for instruction execution |
routerResult | Object | Quote path data |
chainIndex | String | Unique identifier for the chain. |
swapMode | String | Swap mode of this quote. |
fromTokenAmount | String | The input amount of a token to be sold ( e.g.,500000000000000000000000 ) |
toTokenAmount | String | The resulting amount of a token to be bought ( e.g.,168611907733361 ) |
tradeFee | String | Estimated network fee (USD) of the quote route |
estimateGasFee | String | Estimated gas consumption is returned in the smallest units of each chain, such as wei. |
dexRouterList | Array | Quote path data set |
router | String | One of the main paths for the token swap |
routerPercent | String | The percentage of assets handled by the main path (e.g.,5 ) |
subRouterList | Array | Quote path sub data set |
dexProtocol | Array | Liquidity protocols used on the main path |
dexName | String | The name of the liquidity protocol (e.g.,Verse ) |
fromTokenIndex | String | Token index of fromToken in the swap path. |
percent | String | The percentage of assets handled by the protocol (e.g.,100 ) |
fromToken | Object | The information of a token to be sold |
tokenContractAddress | String | Token contract address (e.g.,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 ) |
tokenSymbol | String | Token symbol (e.g.,USDC ) |
tokenUnitPrice | String | The token unit price returned by this interface is a general USDis a general USD real time price based on data from on-chain sources. Note: This price is only a recommended price. For some special cases, the token unit price may be 'null' |
decimal | String | The decimal number defines the smallest unit into which a single currency token can be divided. For example, if the decimal number of a token is 8, it means that a single such token can be divided into 100,000,000 of its smallest units. Note: This parameter is for reference only. It may change due to reasons such as settings adjustments by the contract owner. |
isHoneyPot | Boolean | If the token is a honeypot token. yes:true no:false |
taxRate | String | Token tax rate for selling: Applicable to tokens with configurable tax mechanisms (e.g., SafeMoon, SPL2022 tokens). Returns 0 for regular tokens without tax. The value ranges from 0 to 1, where 0.01 represents 1%. |
toTokenIndex | String | Token index of toToken in the swap path. |
toToken | Object | The information of a token to be bought |
tokenContractAddress | String | Token contract address (e.g.,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 ) |
tokenSymbol | String | Token symbol (e.g.,USDC ) |
tokenUnitPrice | String | The token unit price returned by this interface is a general USD price based on data from on-chain, exchange, and other third-party sources. Note: This price is only a recommended price. For some special cases, the token unit price may be 'null' |
decimal | String | The decimal number defines the smallest unit into which a single currency token can be divided. For example, if the decimal number of a token is 8, it means that a single such token can be divided into 100,000,000 of its smallest units. Note: This parameter is for reference only. It may change due to reasons such as settings adjustments by the contract owner. |
isHoneyPot | Boolean | If the token is a honeypot token. yes:true no:false |
taxRate | String | Token tax rate for buying: Applicable to tokens with configurable tax mechanisms (e.g., SafeMoon, SPL2022 tokens). Returns 0 for regular tokens without tax. The value ranges from 0 to 1, where 0.01 represents 1%. |
priceImpactPercent | String | Percentage = (Received value – Paid value) / Paid value. The swap amount will affect the depth of the liquidity pool, causing a value difference. This percentage can be positive if the received value exceeds the paid value. |
tx | Object | contract data model |
from | String | User's wallet address (e.g.,0x3f6a3f57569358a512ccc0e513f171516b0fd42a ) |
to | String | The contract address of OKX DEX router (e.g.,0x3b3ae790Df4F312e745D270119c6052904FB6790 ) |
minReceiveAmount | String | The minimum amount of a token to buy when the price reaches the upper limit of slippage (e.g.,900645839798 ) |
slippagePercent | String | The value of current transaction slippage |
Request Example#
shell
curl --location --request GET 'https://web3.okx.com/api/v6/dex/aggregator/swap-instruction?chainIndex=501&amount=350000000&fromTokenAddress=11111111111111111111111111111111&toTokenAddress=Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB&slippagePercent=0.5&userWalletAddress=FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk \
--header 'OK-ACCESS-KEY: 37c541a1-****-****-****-10fe7a038418' \
--header 'OK-ACCESS-SIGN: leaV********3uw=' \
--header 'OK-ACCESS-PASSPHRASE: 1****6' \
--header 'OK-ACCESS-TIMESTAMP: 2023-10-18T12:21:41.274Z'
Response Example#
200
{
"code": "0",
"data": {
"addressLookupTableAccount": [
"4uCLrUtySopUJdHCSZkKDQfvDj1asuahxn8xetjvmwPL",
"CCzpiK5GhTJdRE629m6WgxZe2BVHPdAMQN3hPSud2eMT"
],
"instructionLists": [
{
"data": "AnDhCAA=",
"accounts": [],
"programId": "ComputeBudget111111111111111111111111111111"
},
{
"data": "AwAAAAAAAAAA",
"accounts": [],
"programId": "ComputeBudget111111111111111111111111111111"
},
{
"data": "AgAAAHCx+xQAAAAA",
"accounts": [
{
"isSigner": true,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "8kKUaKPQ6Fq9qQEhtqxr9hbxpDQm1roV483tt5NFJ9ev"
}
],
"programId": "11111111111111111111111111111111"
},
{
"data": "k/F7ZPSErnb9",
"accounts": [
{
"isSigner": true,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "8kKUaKPQ6Fq9qQEhtqxr9hbxpDQm1roV483tt5NFJ9ev"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "So11111111111111111111111111111111111111112"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "11111111111111111111111111111111"
}
],
"programId": "preXgyMmsTzkYSyp9ms1EgSQCbp87B84bT8kyB21bbB"
},
{
"data": "AQ==",
"accounts": [
{
"isSigner": true,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "HwEh3U3E7aPRwXUhzes6wxX1kbSmKm85ugK6DXP5vgzf"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "11111111111111111111111111111111"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"data": "AQ==",
"accounts": [
{
"isSigner": true,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "HuHFhU9C65rgtzZtQJ8TgEJvxCAZLggtze2psmZkGqZy"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "E79zvo5koXfzgfMTZHdaRuHYc5x72bjbYgFPPu6eEYTQ"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "11111111111111111111111111111111"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"data": "qilVsYRQHzVkLgMAAAAAAICT3BQAAAAAuROOBAAAAAAoAAIAAAA/ECcBIBAnEgAAAAAAAGQ=",
"accounts": [
{
"isSigner": true,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "8kKUaKPQ6Fq9qQEhtqxr9hbxpDQm1roV483tt5NFJ9ev"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "HwEh3U3E7aPRwXUhzes6wxX1kbSmKm85ugK6DXP5vgzf"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "So11111111111111111111111111111111111111112"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "preXgyMmsTzkYSyp9ms1EgSQCbp87B84bT8kyB21bbB"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "preXgyMmsTzkYSyp9ms1EgSQCbp87B84bT8kyB21bbB"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "63Y8uhyzkz646xeFtAi5w2MWPeekhKQGKhSB85veFrf8"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "FANwZcH4WpLtJJqgpx1yZwpqphRjKuUsbA7a3nKuKphR"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "6ffuH1F6aoWtbc7AD9THRUhsptbL7Ktkv3DKWz7AsmSu"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "11111111111111111111111111111111"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "4ZR1HTvcur5Tk7Eo6KL7qk4TLeKmrFozESRtpKHFcrk9"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "preXgyMmsTzkYSyp9ms1EgSQCbp87B84bT8kyB21bbB"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TessVdML9pBGgG9yGks7o4HewRaXVAMuoVj4x83GLQH"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "63Y8uhyzkz646xeFtAi5w2MWPeekhKQGKhSB85veFrf8"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "FANwZcH4WpLtJJqgpx1yZwpqphRjKuUsbA7a3nKuKphR"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "6z4XwU2ghvKMySphi696znncomGjpgWcXonYhCQmnJsd"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "8ekCy2jHHUbW2yeNGFWYJT9Hm9FW7SvZcZK66dSZCDiF"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "FLckHLGMJy5gEoXWwcE68Nprde1D4araK4TGLw4pQq2n"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "5pVN5XZB8cYBjNLFrsBCPWkCQBan5K5Mq2dWGzwPgGJV"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "9t4P5wMwfFkyn92Z7hf463qYKEZf8ERVZsGBEPNp8uJx"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "So11111111111111111111111111111111111111112"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "Sysvar1nstructions1111111111111111111111111"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "RBCNJvXMmrcSbX6Tc9dYySLR13Vs6kjVUVXK6qJ4Lf4"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "63Y8uhyzkz646xeFtAi5w2MWPeekhKQGKhSB85veFrf8"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "6z4XwU2ghvKMySphi696znncomGjpgWcXonYhCQmnJsd"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "6ffuH1F6aoWtbc7AD9THRUhsptbL7Ktkv3DKWz7AsmSu"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "GRnf64QaBPQr4YRrE8doN1SnZ5hGsvBPZ1kAjZvNJUF1"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "48CUUFwiXbznYs1Lqj6zoECRJdJN763N3Sp8gKzSfk2s"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "4JLttVTDDALSkMHPNNJYYY2tJDsfg1WyWcnLAhmypgbm"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "DScNRgWc19AQhm2rmzNgaGH35p3KBmi1f4VxFGFAk1k5"
},
{
"isSigner": false,
"isWritable": false,
"pubkey": "Sysvar1nstructions1111111111111111111111111"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "HuHFhU9C65rgtzZtQJ8TgEJvxCAZLggtze2psmZkGqZy"
}
],
"programId": "preXgyMmsTzkYSyp9ms1EgSQCbp87B84bT8kyB21bbB"
},
{
"data": "CQ==",
"accounts": [
{
"isSigner": false,
"isWritable": true,
"pubkey": "8kKUaKPQ6Fq9qQEhtqxr9hbxpDQm1roV483tt5NFJ9ev"
},
{
"isSigner": false,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
},
{
"isSigner": true,
"isWritable": true,
"pubkey": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk"
}
],
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"routerResult": {
"chainIndex": "501",
"contextSlot": 368721531,
"dexRouterList": [
{
"dexProtocol": {
"dexName": "Tessera",
"percent": "100"
},
"fromToken": {
"decimal": "9",
"isHoneyPot": false,
"taxRate": "0",
"tokenContractAddress": "So11111111111111111111111111111111111111112",
"tokenSymbol": "wSOL",
"tokenUnitPrice": "218.410108300635433732"
},
"fromTokenIndex": "0",
"toToken": {
"decimal": "6",
"isHoneyPot": false,
"taxRate": "0",
"tokenContractAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tokenSymbol": "USDC",
"tokenUnitPrice": "1.000111449509154863"
},
"toTokenIndex": "1"
},
{
"dexProtocol": {
"dexName": "Qualia Tech",
"percent": "100"
},
"fromToken": {
"decimal": "6",
"isHoneyPot": false,
"taxRate": "0",
"tokenContractAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tokenSymbol": "USDC",
"tokenUnitPrice": "1.000111449509154863"
},
"fromTokenIndex": "1",
"toToken": {
"decimal": "6",
"isHoneyPot": false,
"taxRate": "0",
"tokenContractAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tokenSymbol": "USDT",
"tokenUnitPrice": "1.000871510628035633"
},
"toTokenIndex": "2"
}
],
"estimateGasFee": "382000",
"fromToken": {
"decimal": "9",
"isHoneyPot": false,
"taxRate": "0",
"tokenContractAddress": "11111111111111111111111111111111",
"tokenSymbol": "SOL",
"tokenUnitPrice": "218.410108300635433732"
},
"fromTokenAmount": "350000000",
"priceImpactPercent": "0.06",
"router": "11111111111111111111111111111111--EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v--Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"swapMode": "exactIn",
"toToken": {
"decimal": "6",
"isHoneyPot": false,
"taxRate": "0",
"tokenContractAddress": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"tokenSymbol": "USDT",
"tokenUnitPrice": "1.000871510628035633"
},
"toTokenAmount": "76420025",
"tradeFee": "0.09125358"
},
"tx": {
"from": "FvUDkjR1STZ3c6g3DjXwLsiQ477t2HGH4LQ81xMKWJZk",
"minReceiveAmount": "76114344",
"slippagePercent": "0.4",
"to": "preXgyMmsTzkYSyp9ms1EgSQCbp87B84bT8kyB21bbB"
}
},
"msg": ""
}