Across API
Users of the Across API are requested to cache results for no longer than 300 seconds.
The Across API serves data that is derived from the on-chain state of the Across contracts and relayer bots. The on-chain state is subject to change each block, and cached data can quickly become invalid as a result.
The API uses the Across SDK under the hood, but offers a convenient way to get suggested fees when placing a Deposit transaction.
Example:
Or curl it on the CLI:
curl "https://across.to/api/suggested-fees?token=0x7f5c764cbc14f9669b88837ca1490cca17c31607&destinationChainId=42161&amount=100000000000"
Note: When filling relays, it is strongly recommended to use the Across SDK relayFeeCalculator. Using the
suggested-fees
API endpoint is done at the relayer's own risk.All API calls use
https://across.to/api
as the host.Path:
/suggested-fees
Method:
GET
Query Params
Parameter Name | Description | Example |
---|---|---|
token | Address of token contract to transfer. For ETH (or other native tokens, like matic) use, use the wrapped address, like WETH.
Note: the address provided can be the token address on any chain. In the unlikely event where two different tokens have the same address on different chains, you can use the optional chainId parameter defined below to indicate which chain should be used. | 0x7f5c764cbc14f9669b88837ca1490cca17c31607 |
destinationChainId | The intended destination of the transfer. | 42161 |
amount | Amount of the token to transfer. Note: this amount is in the native decimals of the token. So, for WETH, this would be the amount of human-readable WETH multiplied by 1e18 . For USDC, you would multiply the number of human-readable USDC by 1e6 . | 100000000000 |
timestamp (optional) | The quote timestamp used to compute the LP fees. When bridging with across, the user only specifies the quote timestamp in their transaction. The relayer then determines the utilization at that timestamp to determine the user's fee. This timestamp must be close (within 10 minutes or so) to the current time on the chain where the user is depositing funds and it should be <= the current block timestamp on mainnet. This allows the user to know exactly what LP fee they will pay before sending the transaction.
If this value isn't provided in the request, the API will assume the latest block timestamp on mainnet. | 1653547649 |
originChainId (optional) | Used to specify which chain where the specified token address exists. Note: this is only needed to disambiguate when there are matching addresses on different chains. Otherwise, this can be inferred by the API. | 10 |
Returns a JSON object with the following properties:
Property Name | Description | Example |
---|---|---|
relayFeePct | The percentage of the transfer amount that should go to the relayer as a fee. This is the strongly recommended minimum value to ensure a relayer will perform the transfer under the current network conditions. The value returned in this field is guaranteed to be at least 0.03% in order to meet minimum relayer fee requirements. Note: 1% is represented as 1e16 , 100% is 1e18 , 50% is 5e17 , etc. These values are in the same format that the contract understands. | 61762946000000000 |
lpFeePct | The percent of the amount that will go to the LPs as a fee for borrowing their funds.
The formatting of the percentage is the same as relayFeePct . | 1252191895805000 |
timestamp | The quote timestamp that was used to compute the lpFeePct . To pay the quoted LP fee, the user would need to pass this quote timestamp to the protocol when sending their bridge transaction. | 1646925270 |
Errors:
- 400: invalid input.
- 500: an unexpected error within the API.
The API uses the UMA SDK under the hood, but offers a convenient way to get transfer limits.
Or curl it on the CLI:
curl "https://across.to/api/limits?token=0x7f5c764cbc14f9669b88837ca1490cca17c31607&destinationChainId=42161"
All API calls use
https://across.to/api
as the host.Path:
/limits
Method:
GET
Query Params
Parameter Name | Description | Example |
---|---|---|
token | Address of token contract to transfer. For ETH (or other native tokens, like matic) use, use the wrapped address, like WETH.
Note: the address provided can be the token address on any chain. In the unlikely event where two different tokens have the same address on different chains, you can use the optional chainId parameter defined below to indicate which chain should be used. | 0x7f5c764cbc14f9669b88837ca1490cca17c31607 |
destinationChainId | The intended destination of the transfer. | 42161 |
originChainId (optional) | Used to specify which chain where the specified token address exists. Note: this is only needed to disambiguate when there are matching addresses on different chains. In that case, an arbitrary one will be chosen, so it is recommended that this is always provided. | 10 |
Returns a JSON object with the following properties:
Property Name | Description | Example |
---|---|---|
minDeposit | The minimum deposit size in the tokens' units. Note: USDC has 6 decimals, so this value would be the number of USDC multiplied by 1e6 . For WETH, that would be 1e18 . | 7799819 |
maxDeposit | The maximum deposit size in the tokens' units. Note: The formatting of this number is the same as minDeposit. | 22287428516241 |
maxDepositInstant | The max deposit size that can be relayed "instantly" on the destination chain. Instantly means that there is relayer capital readily available and that a relayer is expected to relay within 1-4 minutes of the deposit. | 201958902363 |
maxDepositShortDelay | The max deposit size that can be relayed with a "short delay" on the destination chain. This means that there is relayer capital available on mainnet and that a relayer will immediately begin moving that capital over the canonical bridge to relay the deposit. Depending on the chain, the time for this can vary. Polygon is the worst case where it can take between 20 and 35 minutes for the relayer to receive the funds and relay. Arbitrum is much faster, with a range between 5 and 15 minutes.
Note: if the transfer size is greater than this, the estimate should be between 2-4 hours for a slow relay to be processed from the mainnet pool. | 2045367713809 |
Errors:
- 400: invalid input.
- 500: an unexpected error within the API.
Example:
Or curl it on the CLI:
curl "https://across.to/api/available-routes"
All API calls use
https://across.to/api
as the host.Path:
/available-routes
Method:
GET
Query Params
Property Name | Description | Example |
---|---|---|
originChainId | The chain ID of the originating chain to a bridge transfer. Note: This is an optional query parameter. This parameter will filter the response JSON based. This filter can be used in addition to additional parameters to create a custom filter. | 1 |
destinationChainId | The chain ID of the destination chain to a bridge transfer. Note: This is an optional query parameter. This parameter will filter the response JSON based. This filter can be used in addition to additional parameters to create a custom filter. | 10 |
originToken | The token address of the originating bridge transfer. Must be a valid ERC-20 token address. Note: This is an optional query parameter. This parameter will filter the response JSON based. This filter can be used in addition to additional parameters to create a custom filter. | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
destinationToken | The token address that funds will be transferred to at the destination chain. Must be a valid ERC-20 token address. Note: This is an optional query parameter. This parameter will filter the response JSON based. This filter can be used in addition to additional parameters to create a custom filter. | 0x4200000000000000000000000000000000000006 |
Returns a JSON array of
Objects
with the following properties:Property Name | Description | Example |
---|---|---|
originChainId | The chain ID of the originating chain to a bridge transfer. | 1 |
destinationChainId | The chain ID of the destination chain to a bridge transfer. | 10 |
originToken | The token address of the originating bridge transfer.
Note: this will be a valid ERC-20 token address. | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
destinationToken | The token address that funds will be transferred to at the destination chain.
Note: this will be a valid ERC-20 token address. | 0x4200000000000000000000000000000000000006 |
Errors:
- 400: invalid input.
- 500: an unexpected error within the API.
Last modified 21d ago