Token Requests
tokenRequests declares the token outputs required on the target chain. The orchestrator routes available source assets to satisfy them.
Using token requests
Add tokenRequests to your sendCalls to specify what tokens you need:
How it works
- Declare the target-chain token outputs.
- The orchestrator evaluates available balances.
- It prepares funding and token delivery.
- The requested tokens arrive before the calls execute; funding and calls succeed or fail together.
TokenRequest object
| Field | Type | Description |
|---|---|---|
token | string | ERC-20 token contract address on the target chain |
amount | bigint | Amount in base units (e.g., parseUnits('100', 6) for 100 USDC) |
Multiple token requests
Request multiple target-chain tokens in one intent:
sendCalls({
calls: [{ to: '0x...', data: '0x...' }],
chainId: 8453,
tokenRequests: [
{
token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
amount: parseUnits('100', 6),
},
{
token: '0x4200000000000000000000000000000000000006', // WETH
amount: parseUnits('0.05', 18),
},
],
})Common use cases
E-commerce checkout
User wants to buy an item priced in USDC, but only has ETH on mainnet:
sendCalls({
calls: [{
to: SHOP_CONTRACT,
data: encodeFunctionData({
abi: shopAbi,
functionName: 'purchase',
args: [itemId],
}),
}],
chainId: 8453, // Shop is on Base
tokenRequests: [{
token: USDC_BASE,
amount: parseUnits('29.99', 6), // Item price
}],
})DeFi interactions
Provide liquidity with tokens from any chain:
sendCalls({
calls: [{
to: LP_CONTRACT,
data: encodeFunctionData({
abi: lpAbi,
functionName: 'addLiquidity',
args: [amount0, amount1],
}),
}],
chainId: 42161, // Arbitrum
tokenRequests: [
{ token: USDC_ARB, amount: parseUnits('1000', 6) },
{ token: WETH_ARB, amount: parseUnits('0.5', 18) },
],
})NFT minting
Mint an NFT with payment in any token:
sendCalls({
calls: [{
to: NFT_CONTRACT,
data: encodeFunctionData({
abi: nftAbi,
functionName: 'mint',
args: [tokenId],
}),
}],
chainId: 8453,
tokenRequests: [{
token: USDC_BASE,
amount: parseUnits('0.5', 6), // Mint price
}],
})Next steps
- Crosschain - Back to crosschain overview
- Batch Transactions - Combine multiple operations