Parifi API Reference
Get Quote
POST
/protocol/get-protocol-quotes
Fetch the quote for depositing into Parifi from any chain using any token.
Base URL
https://api.pod.routerintents.com
Body
{
"ReceiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"SourceTokens": [
{
"chainId": "8453",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"DestinationTokens": [
{
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
// "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1" in case of pfWETH
"name": "USDC", // WETH in case of pfWETH
"symbol": "USDC", // WETH in case of pfWETH
"decimals": 6 // 18 in case of pfWETH
}
```postman_json
{
"chainId": "42161",
"address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"name": "WETH",
"symbol": "WETH",
"decimals": 18
}
```
],
"Amount": [
"11000000"
],
"SourceChainId": 8453,
"Protocol": [
{
"protocolId": "parifi",
"chainId": "42161",
"action": "vault-deposit",
"poolId": "parifi-vault-usdc" // parifi-vault-weth in case of pfWETH
}
]
}
ReceiverAddress
string (required)
Wallet address to receive the Parifi 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 to be deposited
SourceChainId
int (required)
Network ID of the starting chain, for example: 8453 for Base
Protocol
object (required)
Intent adapter information for Parifi
SenderAddress
string (optional)
If SenderAddress is different from the ReceiverAddress
SlippageTolerance
float (optional)
1 means 1%; by default, this is set to 2%.
To deposit into Parifi's WETH vault, replace USDC info with WETH info in the DestinationTokens
array.
Parifi Protocol Data
// For protocol, pass the following:
{
"protocolId": "parifi",
"chainId": "42161",
"action": "vault-deposit",
"poolId": "parifi-vault-usdc". // parifi-vault-weth in case of pfWETH
}
Response
{
"Code": 0,
"Errors": [],
"PayLoad": {
"appId": "0",
"quotationType": "BatchTransaction",
"feeParams": [
{
"fee": "5500",
"recipient": "0x00EB64b501613F8Cf8Ef3Ac4F82Fc63a50343fee",
"decimals": 6,
"symbol": "USDC",
"tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chainId": 8453,
"name": "USDC",
"adapter": "batch-handler"
}
],
"slippageTolerance": 2,
"sourceTokens": [
{
"chainId": "8453",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"amount": [
"11000000"
],
"sourceChainId": 8453,
"destinationChainId": 42161,
"destinationToken": {
"address": "0xbf11aC635fE97430b5333018778d0D746f67C989",
"name": "Parifi USDC Vault",
"symbol": "pfUSDC",
"decimals": 6
},
"adapters": [
{
"adapterId": "nitro_bridge",
"adapterType": "bridge",
"sourceChainId": 8453,
"destChainId": "42161",
"adapterOptions": {
"srcToken": {
"chainId": "8453",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"amountIn": "10994500",
"amountOut": "10873557",
"destToken": {
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"receiverAddress": "0x48aF30669A2622e6941862D2B7453A2612C7a70B",
"data": {
"actionType": 0,
"refundAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"partnerId": 0,
"tokens": [],
"bridgeFee": {
"amount": "11109",
"decimals": 6,
"symbol": "USDC",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
},
"isMainnet": true,
"quotationParams": {
"fromTokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"toTokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"amount": "10994500",
"fromTokenChainId": 8453,
"toTokenChainId": "42161",
"additionalGasLimit": 160000,
"slippageTolerance": 2
},
"forwarderQuotation": {
"flowType": "trustless",
"isTransfer": true,
"isWrappedToken": false,
"allowanceTo": "0x0fa205c0446cd9eedcc7538c9e24bc55ad08207f",
"bridgeFee": {
"amount": "11109",
"decimals": 6,
"symbol": "USDC",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
},
"fromTokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"toTokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"source": {
"chainId": "8453",
"chainType": "evm",
"asset": {
"decimals": 6,
"symbol": "USDC",
"name": "USDC",
"chainId": "8453",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"resourceID": "usdc-circle",
"isMintable": false,
"isWrappedAsset": false
},
"stableReserveAsset": {
"decimals": 6,
"symbol": "USDC",
"name": "USDC",
"chainId": "8453",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"resourceID": "usdc-circle",
"isMintable": false,
"isWrappedAsset": false
},
"tokenAmount": "10994500",
"stableReserveAmount": "10994500",
"path": [],
"flags": [],
"priceImpact": "0",
"tokenPath": "",
"dataTx": []
},
"destination": {
"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": "10983391",
"stableReserveAmount": "10983391",
"path": [],
"flags": [],
"priceImpact": "0",
"tokenPath": "",
"dataTx": []
},
"partnerId": 0,
"fuelTransfer": null,
"slippageTolerance": "2",
"estimatedTime": 40
},
"destinationAmount": "10983391",
"destinationAmountPromised": "10873557"
}
},
"adapters": [
{
"adapterId": "parifi_vault_deposit",
"adapterType": "vault-deposit",
"sourceChainId": "42161",
"destChainId": "42161",
"adapterOptions": {
"srcToken": {
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
},
"amountIn": "10873557",
"amountOut": "1071985",
"destToken": {
"address": "0xbf11aC635fE97430b5333018778d0D746f67C989",
"name": "Parifi USDC Vault",
"symbol": "pfUSDC",
"decimals": 6
},
"receiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"data": {
"refundAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8"
}
},
"adapters": []
}
],
"fee": {
"fee": "11109",
"recipient": "",
"decimals": 6,
"symbol": "USDC",
"tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chainId": 8453,
"name": "USDC",
"adapter": "nitro_bridge"
}
}
],
"quote": [
{
"amountSent": 10994500,
"amountReceived": "10873557",
"amountReceivedInEther": "10.873557",
"exchangeRate": "",
"estimatedTime": 40,
"slippageTolerance": "2",
"srcToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"destToken": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"adapterId": "nitro_bridge",
"bridgeFee": {
"amount": "11109",
"decimals": 6,
"symbol": "USDC",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
},
{
"amountSent": "10873557",
"amountReceived": "1071985",
"amountReceivedInEther": 1.071985,
"exchangeRate": "10.14338540184797361903",
"srcToken": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"destToken": "0xbf11aC635fE97430b5333018778d0D746f67C989",
"adapterId": "parifi_vault_deposit",
"estimatedTime": 0
}
],
"clientAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"senderAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"estimatedTime": 40
}
}
{
"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": "8453",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"DestinationTokens": [
{
"chainId": "42161",
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"name": "USDC",
"symbol": "USDC",
"decimals": 6
}
],
"Amount": [
"11000000"
],
"SourceChainId": 8453,
"Protocol": [
{
"protocolId": "parifi",
"chainId": "42161",
"action": "vault-deposit",
"poolId": "parifi-vault-usdc"
}
]
}'
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": "82600676-56af-4304-8675-f09e1e7328ff",
"gasPrice": "183152032566",
"calldata": "0xabc",
"to": "0x1047770a9eb317667fAa472Ed2579E6f8dA086c6",
"from": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
"value": "0x00",
"prioritySteps": [
{
"contractAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"data": "0x095ea7b30000000000000000000000001047770a9eb317667faa472ed2579e6f8da086c60000000000000000000000000000000000000000000000000000000000a7d8c0",
"value": 0,
"instructionData": "Approve USDC for Batch Handler Contract",
"instructionTitle": "Approve USDC",
"chainId": "8453"
}
],
"gasLimit": "3000000"
}
}
{
"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