Router Intents
  • Router Intents
    • What is an Intent?
    • Why is Intent-driven DeFi a Requirement?
    • Intro to Router's CCIF
  • How to Create an Intent Adapter using Router's CCIF
  • How to Generate Calldata for Invoking an Intent Adapter
  • API Reference
    • StakeStone API Reference
    • StakeStone (X Layer) API Reference
    • Lido API Reference
    • Kim API Reference
    • SwapMode API Reference
    • Lynex API Reference
    • Scribe API Reference
    • Ring Exchange API Reference
    • xFai API Reference
    • BaseSwap API Reference
    • Thirdfy API Reference
    • Parifi API Reference
    • Wen API Reference
  • Chains Supported
  • Contract Addresses
    • Mainnet Contracts
    • Testnet Contracts
  • Audit Reports
  • Router CCIF Whitepaper
Powered by GitBook
On this page
  • Get Quote
  • Base URL
  • Body
  • Response
  • Sample cURL
  • Compose Calldata
  • Base URL
  • Body
  • Response
  1. API Reference

Lido API Reference

PreviousStakeStone (X Layer) API ReferenceNextKim API Reference

Last updated 9 months ago

Get Quote

POST /protocol/get-protocol-quotes

Fetch the quote for staking into Lido from any chain using any token.

Base URL

Body

{
    "ReceiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
    "SourceTokens": [
        {
            "chainId": "42161",
            "address": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
            "symbol": "USDT",
            "decimals": 6
        }
    ],
    "Amount": [
        "100000000"
    ],
    "SourceChainId": 42161,
    "Protocol": [
        {
            "protocolId": "lido",
            "chainId": "1",
            "action": "express-stake",
            "poolId": "lido-stEth_1",
            "data": {
                "bridgeChain": "1",
                "bridgePoolId": "lido-stEth"
            }
        }
    ]
}
Name
Type
Description

ReceiverAddress

string (required)

Wallet address to receive wstETH

SourceTokens

array (required)

Array of tokens at the source side

Amount

array (required)

Array of token amounts being supplied

SourceChainId

int (required)

Network ID of the starting chain, for example: 42161 for Arbitrum

Protocol

object (required)

Intent adapter information for Lido

SenderAddress

string (optional)

If SenderAddress is different from the ReceiverAddress

SlippageTolerance

float (optional)

1 means 1%; by default, this is set to 2%.

// For protocol, pass the following:
{
    "protocolId": "lido",
    "chainId": "1",
    "action": "express-stake",
    "poolId": "lido-stEth_1",
    "data": {
        "bridgeChain": "324", // if you want to bridge wstETH to some other chain, else data should be empty
        "bridgePoolId": "lido-stEth" 
        }
}

Response

{
    "Code": 0,
    "Errors": [],
    "PayLoad": {
        "appId": "0",
        "quotationType": "BatchTransaction",
        "slippageTolerance": 2,
        "sourceTokens": [
            {
                "chainId": "42161",
                "address": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                "symbol": "USDT",
                "decimals": 6
            }
        ],
        "amount": [
            "100000000"
        ],
        "sourceChainId": 42161,
        "destinationChainId": 1,
        "destinationToken": {
            "address": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
            "name": "stETH",
            "symbol": "stETH",
            "decimals": 18
        },
        "adapters": [
            {
                "adapterId": "nitro_bridge",
                "adapterType": "bridge",
                "sourceChainId": 42161,
                "destChainId": "1",
                "adapterOptions": {
                    "srcToken": {
                        "chainId": "42161",
                        "address": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                        "symbol": "USDT",
                        "decimals": 6
                    },
                    "amountIn": "100000000",
                    "amountOut": "23788845745661004",
                    "destToken": {
                        "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
                        "name": "ETH",
                        "symbol": "ETH",
                        "decimals": 18
                    },
                    "receiverAddress": "0x4D9733ca83610E1343Ed2581d1779f294638BB33",
                    "data": {
                        "actionType": 1,
                        "refundAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
                        "partnerId": 6,
                        "tokens": [
                            "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
                            "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
                        ],
                        "bridgeFee": {
                            "amount": "4280091678031428",
                            "decimals": 18,
                            "symbol": "WETH",
                            "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
                        },
                        "isMainnet": true,
                        "quotationParams": {
                            "fromTokenAddress": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                            "toTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
                            "amount": "100000000",
                            "fromTokenChainId": 42161,
                            "toTokenChainId": "1",
                            "partnerId": 6,
                            "additionalGasLimit": 160000,
                            "slippageTolerance": 2
                        },
                        "forwarderQuotation": {
                            "flowType": "trustless",
                            "isTransfer": "false",
                            "isWrappedToken": false,
                            "allowanceTo": "0xCA94d8C245601B152C904f42fE788B4125f5b46B",
                            "bridgeFee": {
                                "amount": "4280091678031428",
                                "decimals": 18,
                                "symbol": "WETH",
                                "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
                            },
                            "fuelTransfer": null,
                            "fromTokenAddress": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                            "toTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
                            "source": {
                                "chainId": "42161",
                                "chainType": "evm",
                                "asset": {
                                    "decimals": 6,
                                    "symbol": "USDT",
                                    "name": "Tether USD",
                                    "chainId": "42161",
                                    "address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
                                    "resourceID": "usdt",
                                    "isMintable": false,
                                    "isWrappedAsset": false,
                                    "isReserveAsset": false,
                                    "tokenInstance": {
                                        "decimals": 6,
                                        "symbol": "USDT",
                                        "name": "Tether USD",
                                        "chainId": 42161,
                                        "address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
                                    }
                                },
                                "stableReserveAsset": {
                                    "decimals": 18,
                                    "symbol": "WETH",
                                    "name": "WETH",
                                    "chainId": "42161",
                                    "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
                                    "resourceID": "native-eth",
                                    "isMintable": false,
                                    "isWrappedAsset": false,
                                    "isReserveAsset": false
                                },
                                "tokenAmount": "100000000",
                                "stableReserveAmount": "28309228794860723",
                                "path": [
                                    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
                                    "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
                                ],
                                "flags": [
                                    "4002"
                                ],
                                "priceImpact": "0.00",
                                "tokenPath": "USDT->WETH",
                                "dataTx": [
                                    "0x90411a3200000000000000000000000066398e8b1e02291381d049c0c932394d5f2fc7ac000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb900000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab100000000000000000000000066398e8b1e02291381d049c0c932394d5f2fc7ac000000000000000000000000ca94d8c245601b152c904f42fe788b4125f5b46b0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000649317f62ed4b30000000000000000000000000000000000000000000000000065972a4e00c22a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d2137a6d0ef438a7c2bb38eeef364500271658be00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e5b07cdb000000000000000000000000389938cf14be379217570d8e4619e51fbdafaa2100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000066398e8b1e02291381d049c0c932394d5f2fc7ac00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002efd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb900006482af49447d8a07e3bd95bd0d56f35241523fbab100000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000648a6a1e8500000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000353c1f0bc78fbbc245b3c93ef77b1dcc5b77d2a00000000000000000000000000000000000000000000000000065972a4e00c22a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f86542200000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab100000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f9900000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000ca94d8c245601b152c904f42fe788b4125f5b46b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
                                ]
                            },
                            "destination": {
                                "chainId": "1",
                                "chainType": "evm",
                                "asset": {
                                    "chainId": "1",
                                    "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
                                    "name": "ETH",
                                    "symbol": "ETH",
                                    "decimals": 18,
                                    "resourceID": "native-eth",
                                    "isMintable": false,
                                    "isWrappedAsset": false
                                },
                                "stableReserveAsset": {
                                    "decimals": 18,
                                    "symbol": "WETH",
                                    "name": "WETH",
                                    "chainId": "1",
                                    "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
                                    "resourceID": "native-eth",
                                    "isMintable": false,
                                    "isWrappedAsset": false,
                                    "isReserveAsset": false
                                },
                                "tokenAmount": "24029137116829295",
                                "stableReserveAmount": "24029137116829295",
                                "priceImpact": "0.00",
                                "tokenPath": "WETH",
                                "dataTx": [
                                    "0x00"
                                ],
                                "path": [
                                    "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
                                ],
                                "flags": [
                                    "4002"
                                ]
                            },
                            "partnerId": "6",
                            "slippageTolerance": "2",
                            "estimatedTime": 40
                        },
                        "destinationAmount": "24029137116829295",
                        "destinationAmountPromised": "23788845745661004"
                    }
                },
                "adapters": [
                    {
                        "adapterId": "lido_stake",
                        "adapterType": "stake",
                        "sourceChainId": "1",
                        "destChainId": "1",
                        "adapterOptions": {
                            "srcToken": {
                                "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
                                "name": "ETH",
                                "symbol": "ETH",
                                "decimals": 18
                            },
                            "amountIn": "23788845745661004",
                            "amountOut": "23788845745661004",
                            "destToken": {
                                "address": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
                                "name": "stETH",
                                "symbol": "stETH",
                                "decimals": 18
                            },
                            "receiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
                            "data": {
                                "refundAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
                                "partnerId": 6,
                                "protocolData": {
                                    "bridgeChain": "1",
                                    "bridgePoolId": "lido-stEth"
                                }
                            }
                        },
                        "adapters": []
                    }
                ]
            }
        ],
        "quote": [
            {
                "amountSent": "100000000",
                "amountReceived": "23788845745661004",
                "amountReceivedInEther": "0.023789",
                "exchangeRate": "",
                "estimatedTime": 40,
                "slippageTolerance": "2",
                "srcToken": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                "destToken": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
                "adapterId": "nitro_bridge",
                "bridgeFee": {
                    "amount": "4280091678031428",
                    "decimals": 18,
                    "symbol": "WETH",
                    "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
                }
            },
            {
                "amountSent": "23788845745661004",
                "amountReceived": 23788845745661004,
                "amountReceivedInEther": 0.023788845745661005,
                "exchangeRate": 23788845745661004,
                "srcToken": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
                "destToken": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
                "adapterId": "lido_stake",
                "estimatedTime": 12
            }
        ],
        "clientAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
        "senderAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
        "estimatedTime": 0
    }
}
{
  "Code": 1,
  "Error": [
    {
      "Code": "1",
      "Message": [
        {
          "title": "",
          "message": ""
        }
      ]
    }
  ],
  "Payload": null
}

Under protocol, set action as express-stake if you want the best path for the user. If the action is set as stake, our pathfinder will always generate a path that involves staking into Lido on Ethereum. In the case of express-stake, our pathfinder will also evaluate if directly swapping into wstETH will result in a better output.

Sample cURL

curl --location 'https://api.pod.routerintents.com/router-intent/protocol/get-protocol-quotes' \
--header 'Accept: */*' \
--header 'Accept-Language: en-GB,en;q=0.7' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: https://lido.routerintents.com' \
--header 'Referer: https://lido.routerintents.com/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'Sec-GPC: 1' \
--header 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36' \
--header 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Brave";v="126"' \
--header 'sec-ch-ua-mobile: ?1' \
--header 'sec-ch-ua-platform: "Android"' \
--data '{
    "ReceiverAddress": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
    "SourceTokens": [
        {
            "chainId": "42161",
            "address": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
            "symbol": "USDT",
            "decimals": 6
        }
    ],
    "Amount": [
        "100000000"
    ],
    "SourceChainId": 42161,
    "Protocol": [
        {
            "protocolId": "lido",
            "chainId": "1",
            "action": "express-stake",
            "poolId": "lido-stEth_1",
            "data": {
                "bridgeChain": "1",
                "bridgePoolId": "lido-stEth"
            }
        }
    ]
}'


Compose Calldata

POST /adapter/compose-adapter-calldata

Fetch the calldata to execute the quote fetched via the get-protocol-quotes endpoint

Base URL

Body

Payload object from the response of the get-protocol-quotes endpoint

Response

{
    "Code": 0,
    "Errors": [],
    "PayLoad": {
        "trnxId": "afc3480f-a8a3-441b-a43e-676d1f284b84",
        "gasPrice": "803830000000",
        "calldata": "0xabcd",
        "to": "0xc304C00001c2fe8feDeE8b49428eB180c34CB3F6",
        "from": "0x2B4fAD70FC7E6579f19163DeEBbc5846bead25C8",
        "value": "0x00",
        "prioritySteps": [
            {
                "contractAddress": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                "data": "0x095ea7b3000000000000000000000000c304c00001c2fe8fedee8b49428eb180c34cb3f60000000000000000000000000000000000000000000000000000000005f5e100",
                "value": 0,
                "instructionData": "Approve USDT for Batch Handler Contract",
                "instructionTitle": "Approve USDT",
                "chainId": "42161"
            }
        ],
        "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. The gasLimit 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 the gasLimit themselves once the approval tx is mined.

https://api.pod.routerintents.com
https://api.pod.routerintents.com