Thirdfy API Reference
Get Quote
POST
/protocol/get-protocol-quotes
Fetch the quote for adding liquidity into Thirdfy from any chain using any token.
Base URL
https://api.pod.routerintents.com
Body
{
"ReceiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"SourceTokens": [
{
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"DestinationTokens": [
{
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
{
"chainId": "10242",
"address": "0x6C45E28A76977a96e263f84F95912B47F927B687",
"name": "USDT",
"symbol": "USDT",
"decimals": 6
}
],
"Amount": [
"10000000"
],
"SourceChainId": 42161,
"Protocol": [
{
"protocolId": "thirdfy",
"chainId": "10242",
"action": "deposit",
"poolId": "",
"data": {
"upperTick": "887220",
"lowerTick": "-887220"
}
}
]
}
ReceiverAddress
string (required)
Wallet address to receive the LP token
SourceTokens
array (required)
Array of tokens provided by the user on the source side
Amount
array (required)
Array of token amounts being supplied
DestinationTokens
array (required)
Array of tokens for which the liquidity needs to be added
SourceChainId
int (required)
Network ID of the starting chain, for example: 42161 for Arbitrum
Protocol
object (required)
Intent adapter information for Thirdfy
SenderAddress
string (optional)
If SenderAddress is different from the ReceiverAddress
SlippageTolerance
float (optional)
1 means 1%; by default, this is set to 2%.
BaseSwap Protocol Data
// For protocol, pass the following:
{
"protocolId": "thirdfy",
"chainId": "10242", // Arthera
"action": "deposit",
"poolId": "",
"data": {
"lowerTick": "-887220",
"upperTick": "887220",
}
}
Response
{
"Code": 0,
"Errors": [],
"PayLoad": {
"appId": "0",
"quotationType": "BatchTransaction",
"slippageTolerance": 2,
"sourceTokens": [
{
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"amount": [
"10000000"
],
"sourceChainId": 42161,
"destinationChainId": 10242,
"adapters": [
{
"adapterId": "asset_bridge",
"adapterType": "bridge",
"sourceChainId": 42161,
"destChainId": "10242",
"adapterOptions": {
"srcToken": {
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"amountIn": "10000000",
"amountOut": "9642687",
"destToken": {
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"receiverAddress": "0xeA8fd31012991e1518Fe47f7BC7849859385Cf70",
"data": {
"actionType": 0,
"refundAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"partnerId": 129,
"tokens": [],
"bridgeFee": {
"amount": "259912",
"decimals": 6,
"symbol": "USDC",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
},
"isMainnet": true,
"quotationParams": {
"fromTokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"toTokenAddress": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"amount": "10000000",
"fromTokenChainId": 42161,
"toTokenChainId": "10242",
"partnerId": 129,
"additionalGasLimit": 2500000,
"slippageTolerance": 3
},
"forwarderQuotation": {
"flowType": "mint-burn",
"isTransfer": true,
"isWrappedToken": false,
"allowanceTo": "0x0Fa205c0446cD9EeDCc7538c9E24BC55AD08207f",
"bridgeFee": {
"amount": "259912",
"decimals": 6,
"symbol": "USDC",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
},
"fromTokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"toTokenAddress": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"source": {
"chainId": "42161",
"chainType": "evm",
"asset": {
"decimals": 6,
"symbol": "USDC",
"name": "USD Coin",
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"resourceID": "usdc-circle",
"isMintable": false,
"isWrappedAsset": false
},
"stableReserveAsset": {
"decimals": 6,
"symbol": "USDC",
"name": "USD Coin",
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"resourceID": "usdc-circle",
"isMintable": false,
"isWrappedAsset": false
},
"tokenAmount": "10000000",
"stableReserveAmount": "10000000",
"path": [],
"flags": [],
"priceImpact": "0",
"tokenPath": "",
"dataTx": []
},
"destination": {
"chainId": "10242",
"chainType": "evm",
"asset": {
"decimals": 6,
"symbol": "USDC",
"name": "USDC",
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"resourceID": "usdc-circle",
"isMintable": true,
"isWrappedAsset": false
},
"stableReserveAsset": {
"decimals": 6,
"symbol": "USDC",
"name": "USDC",
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"resourceID": "usdc-circle",
"isMintable": true,
"isWrappedAsset": false
},
"tokenAmount": "9740088",
"stableReserveAmount": "9740088",
"path": [],
"flags": [],
"priceImpact": "0",
"tokenPath": "",
"dataTx": []
},
"partnerId": 129,
"fuelTransfer": null,
"slippageTolerance": "3",
"estimatedTime": 180
},
"destinationAmount": "9740088",
"destinationAmountPromised": "9642687"
}
},
"adapters": [
{
"adapterId": "thirdfy_swap",
"adapterType": "swap",
"sourceChainId": "10242",
"destChainId": "10242",
"adapterOptions": {
"srcToken": {
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"amountIn": "4797237",
"amountOut": "4756089",
"destToken": {
"chainId": "10242",
"address": "0x6C45E28A76977a96e263f84F95912B47F927B687",
"name": "USDT",
"symbol": "USDT",
"decimals": 6
},
"receiverAddress": "0xeA8fd31012991e1518Fe47f7BC7849859385Cf70",
"data": {
"amountSent": "4797237",
"amountReceived": "4756089",
"amountReceivedInEther": "4.756089",
"exchangeRate": 1,
"slippageTolerance": 3,
"partnerId": 129
}
},
"adapters": []
},
{
"adapterId": "thirdfy_deposit",
"adapterType": "amm",
"sourceChainId": "10242",
"destChainId": "10242",
"adapterOptions": {
"receiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"data": {
"refundAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"token0": {
"chainId": "10242",
"address": "0x6C45E28A76977a96e263f84F95912B47F927B687",
"name": "USDT",
"symbol": "USDT",
"decimals": 6
},
"token1": {
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"tickLower": "-887220",
"tickUpper": "887220",
"amount0Desired": "4756089",
"amount1Desired": "4797237",
"amount0Min": "4756",
"amount1Min": "4797",
"recipient": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"deadline": 1719839601111,
"token0Reserve": "73483604",
"token1Reserve": "100265003",
"fee": 303
}
},
"adapters": []
}
]
}
],
"quote": [
{
"amountSent": "10000000",
"amountReceived": "9642687",
"amountReceivedInEther": "9.642687",
"exchangeRate": "",
"estimatedTime": 180,
"slippageTolerance": "3",
"srcToken": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"destToken": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"adapterId": "asset_bridge",
"bridgeFee": {
"amount": "259912",
"decimals": 6,
"symbol": "USDC",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
}
},
{
"amountSent": "4797237",
"amountReceived": "4756089",
"amountReceivedInEther": "4.756089",
"exchangeRate": 1,
"slippageTolerance": 3,
"srcToken": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"destToken": "0x6C45E28A76977a96e263f84F95912B47F927B687",
"adapterId": "thirdfy_swap",
"estimatedTime": 0
},
{
"amountSent": 0,
"amountReceived": 0,
"amountReceivedInEther": 0,
"srcToken": "",
"destToken": "",
"adapterId": "thirdfy_deposit",
"estimatedTime": 0
}
],
"clientAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"senderAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"estimatedTime": 180
}
}
{
"Code": 1,
"Error": [
{
"Code": "1",
"Message": [
{
"title": "",
"message": ""
}
]
}
],
"Payload": null
}
Sample cURL
curl --location 'https://api.pod.routerintents.com/router-intent/protocol/get-protocol-quotes' \
--header 'Accept: */*' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: https://poc-intents-ui.vercel.app' \
--header 'Referer: https://poc-intents-ui.vercel.app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: cross-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36' \
--header 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '{
"ReceiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"SourceTokens": [
{
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"DestinationTokens": [
{
"chainId": "10242",
"address": "0x8C4aCd74Ff4385f3B7911432FA6787Aa14406f8B",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
{
"chainId": "10242",
"address": "0x6C45E28A76977a96e263f84F95912B47F927B687",
"name": "USDT",
"symbol": "USDT",
"decimals": 6
}
],
"Amount": [
"10000000"
],
"SourceChainId": 42161,
"Protocol": [
{
"protocolId": "thirdfy",
"chainId": "10242",
"action": "deposit",
"poolId": "",
"data": {
"upperTick": "887220",
"lowerTick": "-887220"
}
}
]
}'
Compose Calldata
POST
/adapter/compose-adapter-calldata
Fetch the calldata to execute the quote fetched via the get-protocol-quotes
endpoint
Base URL
https://api.pod.routerintents.com
Body
Payload object from the response of the get-protocol-quotes
endpoint
Response
{
"Code": 0,
"Errors": [],
"PayLoad": {
"trnxId": "4ef98dca-caec-4f3a-9e83-2f1af33a8d6b",
"gasPrice": "438724",
"calldata": "0x03fe2173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ed24e7e548a3f53c98949079fff6ee804caf9f8900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000000001603130323432000000000000000000000000000000000000000000000000000000000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000810000000000000000000000000000000000000000000000000000000000000014ea8fd31012991e1518fe47f7bc7849859385cf7000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b4fad70fc7e6579f19163deebbc5846bead25c800000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006c39ef688ae7f246d9a1af65689efbd933722489000000000000000000000000e2f77e7b44c02be634ef5f318c9359571074186c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000008c4acd74ff4385f3b7911432fa6787aa14406f8b0000000000000000000000006c45e28a76977a96e263f84f95912b47f927b687000000000000000000000000ea8fd31012991e1518fe47f7bc7849859385cf70000000000000000000000000000000000000000000000000000001906e6e83f70000000000000000000000000000000000000000000000000000000000493335000000000000000000000000000000000000000000000000000000000046651e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000006c45e28a76977a96e263f84f95912b47f927b6870000000000000000000000008c4acd74ff4385f3b7911432fa6787aa14406f8bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000129400000000000000000000000000000000000000000000000000000000000012bd0000000000000000000000002b4fad70fc7e6579f19163deebbc5846bead25c8000000000000000000000000000000000000000000000000000001906e6db1d7",
"to": "0xc304C00001c2fe8feDeE8b49428eB180c34CB3F6",
"from": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"value": "0x00",
"prioritySteps": [],
"gasLimit": "7500000"
}
}
{
"Code": 1,
"Error": [
{
"Code": "1",
"Message": [
{
"title": "",
"message": ""
}
]
}
],
"Payload": null
}
Notes:
In the payload,
prioritySteps
will contain the approval transaction calldata that needs to be executed before performing the transaction.The estimated
gasLimit
sent by our APIs are not based on any simulations because it is not possible to simulate gasLimit without having token allowance. ThegasLimit
sent by our APIs is a highly conservative estimate of the gas that a tx could use. Since the actual gas limit will be much lower, we suggest that the API users estimate thegasLimit
themselves once the approval tx is mined.
Last updated