Start with an exact transfer
bridge-rates returns cross-chain route estimates you can inspect before committing funds. An agent moving ETH from Ethereum to Base can compare the expected arrival amount against the route’s estimated costs, then decide whether its timing fits the task.
The endpoint costs 0.03 USDC per call, paid through x402 on Base mainnet. That payment buys the route lookup. Your bridge transfer has separate costs and requires its own authorization.
Send a POST request to:
https://x402.agentutility.ai/bridge-rates
Five fields are required:
| Field | What to send |
|---|---|
| from_chain | Numeric source chain ID, such as 1 for Ethereum |
| to_chain | Numeric destination chain ID, such as 8453 for Base |
| from_token | Source token contract address; the zero address represents the native token |
| to_token | Destination token contract address, using the same native-token convention |
| amount | A string containing the source amount in its smallest unit |
Units matter before anything else. For ETH, "10000000000000000" means 0.01 ETH. For a token with six decimals, "1000000" means one token.
Here’s a request body for 0.01 native ETH from Ethereum to Base. Replace both wallet placeholders with EVM addresses before sending it through your x402 client.
{
"from_chain": 1,
"to_chain": 8453,
"from_token": "0x0000000000000000000000000000000000000000",
"to_token": "0x0000000000000000000000000000000000000000",
"amount": "10000000000000000",
"from_address": "<SENDER_EVM_ADDRESS>",
"to_address": "<RECIPIENT_EVM_ADDRESS>",
"slippage": 0.005,
"limit": 5
}
Those last four fields are optional. Supply the real sender for a wallet-specific request. to_address defaults to from_address; slippage defaults to 0.005, meaning 0.5%. limit defaults to five routes and accepts values from one through ten.
Read the amount that arrives
The response includes routes and a numeric route_count. Each route exposes to_amount and to_amount_min, alongside the source and destination chain fields.
to_amount is the expected destination amount. to_amount_min is the quoted minimum. Read both using the destination token’s decimals, which you’ll need from token metadata.
For illustration, an ETH route with these values estimates 0.0099 ETH out, with a quoted minimum of 0.00985 ETH:
{
"to_amount": "9900000000000000",
"to_amount_min": "9850000000000000"
}
These numbers are illustrative.
Does your next action need at least 0.0099 ETH? This example’s quoted minimum falls below that requirement. An agent can reject the route before requesting a signature, even though the expected output meets its target.
And compare routes for the exact same transfer. Changing the recipient or source amount changes the request you’re evaluating.
Separate route costs from arrival time
Each route includes gas_cost_usd, total_gas_usd, and total_fee_usd. The steps array gives you more detail: each step has a tool name and type, plus gas_usd, fees, and duration_seconds.
Treat the two gas fields as separate views of the estimate. Don’t add them together automatically. Likewise, check whether a quoted fee is already reflected in the arrival amount before subtracting it again.
Missing data deserves attention. A null cost isn’t proof that a transfer is free. Totals can also contain zero when step estimates are absent, so an agent should inspect the underlying fields before accepting a route under a spending cap.
total_duration_seconds adds the available step durations. It’s an estimate, and missing durations can contribute zero. Check it against your deadline with room for delays.
But don’t assume the first returned route is cheapest. Compare usable output and costs across the returned candidates yourself.
Inspect signing requirements separately
The current response gives you step estimates, but it doesn’t include transaction payloads to sign. step_count counts route steps; it doesn’t establish how many wallet signatures execution will require.
That distinction affects the handoff.
After choosing a candidate, obtain executable transaction details through your bridge execution flow. Confirm that the sender and recipient match your request. Check the transaction’s chain and target contract, then review its calldata and native value. If an approval is required, inspect the spender and allowance separately.
An agent’s execution policy should require fresh transaction details before signing. If the quote has aged or the transfer amount changes, request another estimate and compare it against the same minimum-output requirement. Paying for the lookup doesn’t authorize moving the bridge funds.