Get Bridge Quote
Get a quote for bridging assets across chains. Returns available routes sorted by output amount (highest first), not sorted by timing or speed.
Endpoint
Portfolio API: POST https://ddp.definitive.fi/v2/portfolio/bridge/quote
Organization API: Replace
/v2/portfolio/with/v2/organization/portfolios/{portfolioId}/. See Portfolio vs. Organization API.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| fromAssetAddress | string | Yes | Source asset contract address |
| fromChain | string | Yes | Source chain (e.g., "base", "ethereum") |
| toAssetAddress | string | Yes | Destination asset contract address |
| toChain | string | Yes | Destination chain (e.g., "avalanche") |
| fromAmount | string | Yes | Amount of fromAssetAddress to bridge (e.g., "100") |
For a chain's native asset, pass the sentinel address 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE. Arc is the exception: its native asset is USDC, so use the USDC contract address 0x3600000000000000000000000000000000000000 instead; the sentinel is rejected on Arc.
Request Body Examples
const quoteResponse = await AuthHelpers.signAndSend({
path: "/v2/portfolio/bridge/quote",
method: "POST",
body: {
fromAssetAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC on Base
fromChain: "base",
toAssetAddress: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E", // USDC on Avalanche
toChain: "avalanche",
fromAmount: "100",
},
apiKey: process.env.API_KEY,
apiSecret: process.env.API_SECRET,
});Response
{
routes: [
{
routeId: string, // Use this for bridge submission
provider: string, // Bridge provider name
protocols: string[], // Protocol names used
toAmount: string, // Output amount
serviceTime: number // Estimated time in seconds
}
]
}Notes
- Supported pairs: the same ticker on both chains (for example ETH on Ethereum to ETH on Base; WETH to ETH does not qualify), or a stablecoin ticker on each side (USDC, USDCe, USDT, USDTe, USDT0, USDG). Tickers are matched case-insensitively
- A pair outside that rule returns
400withdetailsexplaining the rule. If an asset cannot be resolved right now, the request returns503and should be retried - Routes are sorted by output amount (highest first), not sorted by timing or speed
- Quotes expire and should be used quickly