Buy.quote

Retrieves a Universal Bridge quote for the provided buy intent. The quote will specify the necessary originAmount to receive the desired destinationAmount, which is specified with the buyAmountWei option.

Example

import { Bridge, NATIVE_TOKEN_ADDRESS } from "thirdweb";
const quote = await Bridge.Buy.quote({
originChainId: 1,
originTokenAddress: NATIVE_TOKEN_ADDRESS,
destinationChainId: 10,
destinationTokenAddress: NATIVE_TOKEN_ADDRESS,
amount: toWei("0.01"),
client: thirdwebClient,
});

This will return a quote that might look like:

{
originAmount: 10000026098875381n,
destinationAmount: 1000000000000000000n,
blockNumber: 22026509n,
timestamp: 1741730936680,
estimatedExecutionTimeMs: 1000
steps: [
{
originToken: {
chainId: 1,
address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
symbol: "ETH",
name: "Ethereum",
decimals: 18,
priceUsd: 0.0025,
iconUri: "https://..."
},
destinationToken: {
chainId: 10,
address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
symbol: "ETH",
name: "Ethereum",
decimals: 18,
priceUsd: 0.0025,
iconUri: "https://..."
},
originAmount: 10000026098875381n,
destinationAmount: 1000000000000000000n,
estimatedExecutionTimeMs: 1000
}
],
intent: {
originChainId: 1,
originTokenAddress: NATIVE_TOKEN_ADDRESS,
destinationChainId: 10,
destinationTokenAddress: NATIVE_TOKEN_ADDRESS,
amount: 1000000000000000000n
}
}

The quote is an estimate for how much you would expect to pay for a specific buy. This quote is not guaranteed and you should use Buy.prepare to get a finalized quote with transaction data ready for execution. So why use quote? The quote function is sometimes slightly faster than prepare, and can be used before the user connects their wallet.

You can access this functions input and output types with Buy.quote.Options and Buy.quote.Result, respectively.

To limit quotes to routes that have a certain number of steps involved, use the maxSteps option.

const quote = await Bridge.Buy.quote({
originChainId: 1,
originTokenAddress: NATIVE_TOKEN_ADDRESS,
destinationChainId: 10,
destinationTokenAddress: NATIVE_TOKEN_ADDRESS,
amount: toWei("0.01"),
maxSteps: 2, // Will only return a quote for routes with 2 or fewer steps
client: thirdwebClient,
});
function quote(options: Options): Promise<Result>;

Parameters

The options for the quote.

Type

let options: Options;

Returns

let returnType: Promise<Result>;

A promise that resolves to a non-finalized quote for the requested buy.