# BridgePilot Route Prepare

> BridgePilot Route Prepare is a paid API for AI agents from bridgepilot.onrender.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-31).

Re-quotes a cross-chain bridge route and returns unsigned approval and transfer transactions ready for wallet signing, with deterministic safety checks on contracts, calldata, and output tolerance.

## Facts

- Endpoint: POST https://bridgepilot.onrender.com/v1/routes/prepare?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bridgepilot-route-prepare-9b049936
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_bYjEh3R06lLBRt-3VFjIu

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability bridgepilot-route-prepare-9b049936 -d '<json body>'
```

Example prompt: Prepare the bridge transactions for me to sign: I want to move 500 USDC (500000000 base units) from Ethereum to Base, sending from 0xMySenderAddress to 0xMyRecipientAddress using the Across provider, with max slippage of 30 bps and minimum output of 498000000 USDC base units.

## When to prefer this

Use this endpoint when you have already obtained a route quote and need to prepare verified, unsigned transactions for non-custodial signing. Prefer this over generic bridge APIs when you require deterministic safety checks (contract allowlisting, calldata decoding, output tolerance) before committing to sign. Ideal for AI agents or automated workflows where trust minimization and pre-signing validation are critical before executing a cross-chain transfer.

## Known failure modes

- Route no longer available or repriced beyond tolerance — returns error indicating quote expired or output below min_output
- Contract not on allowlist — returns safety check failure blocking transaction preparation
- Slippage or value loss exceeds specified constraints — returns constraint violation error
- Invalid or unsupported chain/token combination — returns 400 with unsupported asset error
- Malformed sender/recipient address — returns validation error
- Provider (lifi/across) temporarily unavailable — returns 503 or provider-specific error

## How this service works

Re-quotes a chosen cross-chain route and returns unsigned approval and transfer transactions after deterministic checks (allowlisted contract, decoded calldata, output tolerance). Non-custodial: the caller signs with their own wallet.

## Output

Returns a re-quoted route with unsigned approval and transfer EVM transactions (calldata, to, value, chainId), deterministic safety check results (allowlist verification, decoded calldata validation, output tolerance confirmation), and fee/output breakdown. The caller signs and broadcasts these transactions independently with their own wallet.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "amount": {
   "type": "string",
   "pattern": "^[1-9][0-9]*$",
   "description": "Integer amount in the token smallest unit (USDC has 6 decimals: 100 USDC = \"100000000\")."
  },
  "sender": {
   "type": "string",
   "description": "Sender EVM address (signs the transactions)."
  },
  "provider": {
   "enum": [
    "lifi",
    "across"
   ],
   "type": "string",
   "description": "Provider chosen from the quote."
  },
  "providers": {
   "type": "array",
   "items": {
    "enum": [
     "lifi",
     "across"
    ],
    "type": "string"
   },
   "description": "Optional subset of providers to query."
  },
  "recipient": {
   "type": "string",
   "description": "Recipient EVM address on the destination chain."
  },
  "constraints": {
   "type": "object",
   "properties": {
    "min_output": {
     "type": "string",
     "description": "Minimum acceptable output in destination token base units."
    },
    "include_review": {
     "type": "boolean"
    },
    "max_slippage_bps": {
     "type": "integer",
     "maximum": 10000,
     "minimum": 1
    },
    "max_time_seconds": {
     "type": "integer",
     "minimum": 1
    },
    "max_total_cost_usd": {
     "type": "string",
     "description": "USD decimal string, e.g. \"1.50\"."
    },
    "max_value_loss_bps": {
     "type": "integer",
     "maximum": 10000,
     "minimum": 1
    },
    "require_executable": {
     "type": "boolean"
    }
   },
   "additionalProperties": false
  },
  "source_chain": {
   "type": [
    "string",
    "integer"
   ],
   "description": "Chain key (ethereum, base, arbitrum, optimism, polygon) or numeric chain id."
  },
  "source_token": {
   "type": "string",
   "maxLength": 64,
   "description": "Token symbol from GET /v1/assets (e.g. USDC, ETH) or token contract address."
  },
  "accepted_output": {
   "type": "string",
   "pattern": "^[1-9][0-9]*$",
   "description": "Output accepted from the quote, destination token base units."
  },
  "max_alternatives": {
   "type": "integer",
   "maximum": 5,
   "minimum": 0
  },
  "selection_policy": {
   "enum": [
    "highest_net_output",
    "fastest"
   ],
   "type": "string",
   "default": "highest_net_output"
  },
  "destination_chain": {
   "type": [
    "string",
    "integer"
   ],
   "description": "Chain key (ethereum, base, arbitrum, optimism, polygon) or numeric chain id."
  },
  "destination_token": {
   "type": "string",
   "maxLength": 64,
   "description": "Token symbol or contra
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bridgepilot-route-prepare-9b049936/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from bridgepilot.onrender.com](https://www.zero.xyz/host/bridgepilot.onrender.com/llms.txt)
