All Skills

Suggested Fees API

Legacy bridge-only path using GET /suggested-fees for fee quotes and manual depositV3 construction on the SpokePool contract.

Edit

Suggested Fees API (Legacy / Advanced)

Use the /suggested-fees API when you control your own swap infrastructure and only need Across for the bridge leg. This is the lower-level path: you construct depositV3 calls manually.

For most integrations, use the Swap API (/swap/approval).

When to use this API

GET /suggested-fees

Returns suggested fees based on inputToken + outputToken, originChainId, destinationChainId, and amount. Also includes data used to compute the fees.

Required parameters

ParameterDescription
inputTokenToken address on origin chain (use wrapped token for native assets, e.g., WETH)
outputTokenToken address on destination chain (use wrapped token for native assets, e.g., WETH)
originChainIdOrigin chain ID
destinationChainIdDestination chain ID
amountAmount in token native decimals (USDC 1e6, WETH 1e18)

Optional parameters

ParameterDescription
recipientRecipient of the deposit (EOA or contract). If this is an EOA and message is set, the API returns an error
messageCalldata for contract recipients; passed to handleAcrossMessage() on the recipient
relayerOverride the relayer used to simulate fillRelay() for gas estimation
timestampQuote timestamp used to compute LP fees. Must be close to current time and <= current mainnet block timestamp. Defaults to latest mainnet block timestamp

Key response fields

GET /limits

Returns transfer limits for inputToken, outputToken, originChainId, and destinationChainId.

TransferLimits fields

GET /available-routes

Returns available bridgeable routes. Filter by any combination of:

Each route includes token addresses and symbols for both chains.

Manual depositV3 flow

  1. Call /suggested-fees to get fee quote and SpokePool address.
  2. Approve the input token for the origin SpokePool (spokePoolAddress from the response) if needed.
  3. Construct and submit depositV3 on the origin SpokePool with the quote parameters.
  4. Track status via GET /deposit/status.

depositV3 function signature

function depositV3(
    address depositor,           // Address initiating the deposit
    address recipient,           // Address receiving tokens on destination chain
    address inputToken,          // Token address on origin chain
    address outputToken,         // Token address on destination chain
    uint256 inputAmount,         // Amount of inputToken to deposit
    uint256 outputAmount,        // Minimum output amount (inputAmount - totalRelayFee.total)
    uint256 destinationChainId,  // Destination chain ID
    address exclusiveRelayer,    // From /suggested-fees response (address(0) if none)
    uint32 quoteTimestamp,       // timestamp from /suggested-fees response
    uint32 fillDeadline,         // fillDeadline from /suggested-fees response
    uint32 exclusivityDeadline,  // exclusivityDeadline from /suggested-fees response
    bytes message                // Calldata for destination contract (empty bytes if none)
)

Mapping /suggested-fees response to depositV3 parameters

depositV3 paramSource
inputAmountYour original amount
outputAmountamount - totalRelayFee.total
exclusiveRelayerexclusiveRelayer from response
quoteTimestamptimestamp from response
fillDeadlinefillDeadline from response
exclusivityDeadlineexclusivityDeadline from response
message0x (empty) unless using crosschain messages

Call depositV3 on the SpokePool contract at spokePoolAddress from the /suggested-fees response.

Important Notes