POST
/
buildSwapTransaction
JavaScript
import { setOnchainKitConfig } from '@coinbase/onchainkit';
import { buildSwapTransaction } from '@coinbase/onchainkit/api';
import type { Token } from '@coinbase/onchainkit/token';

setOnchainKitConfig({ apiKey: 'YOUR_API_KEY' });

const fromToken: Token = {
  name: 'ETH',
  address: '',
  symbol: 'ETH',
  decimals: 18,
  image: 'https://wallet-api-production.s3.amazonaws.com/uploads/tokens/eth_288.png',
  chainId: 8453,
};

const toToken: Token = {
  name: 'USDC',
  address: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
  symbol: 'USDC',
  decimals: 6,
  image:
    'https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/44/2b/442b80bd16af0c0d9b22e03a16753823fe826e5bfd457292b55fa0ba8c1ba213-ZWUzYjJmZGUtMDYxNy00NDcyLTg0NjQtMWI4OGEwYjBiODE2',
  chainId: 8453,
};

const response = await buildSwapTransaction({
  fromAddress: '0x...',
  from: fromToken,
  to: toToken,
  amount: '0.1',
  useAggregator: false,
});
{
  "approveTransaction": {
    "chainId": 8453,
    "data": "",
    "gas": 0,
    "to": "",
    "value": 0
  },
  "fee": {
    "baseAsset": {
      "name": "USDC",
      "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
      "currencyCode": "USDC",
      "decimals": 6,
      "imageURL": "https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/44/2b/442b80bd16af0c0d9b22e03a16753823fe826e5bfd457292b55fa0ba8c1ba213-ZWUzYjJmZGUtMDYxNy00NDcyLTg0NjQtMWI4OGEwYjBiODE2",
      "blockchain": "eth",
      "aggregators": [],
      "swappable": true,
      "unverified": false,
      "chainId": 8453
    },
    "percentage": "1",
    "amount": "3517825"
  },
  "quote": {
    "from": {
      "address": "",
      "chainId": 8453,
      "decimals": 18,
      "image": "https://wallet-api-production.s3.amazonaws.com/uploads/tokens/eth_288.png",
      "name": "ETH",
      "symbol": "ETH"
    },
    "to": {
      "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
      "chainId": 8453,
      "decimals": 6,
      "image": "https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/44/2b/442b80bd16af0c0d9b22e03a16753823fe826e5bfd457292b55fa0ba8c1ba213-ZWUzYjJmZGUtMDYxNy00NDcyLTg0NjQtMWI4OGEwYjBiODE2",
      "name": "USDC",
      "symbol": "USDC"
    },
    "fromAmount": "100000000000000000",
    "toAmount": "348264739",
    "amountReference": "from",
    "priceImpact": "",
    "chainId": 8453,
    "highPriceImpact": false,
    "slippage": "3",
    "warning": {
      "type": "warning",
      "message": "This transaction has a very high likelihood of failing if submitted",
      "description": "failed with 500000000 gas: insufficient funds for gas * price + value: address 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed have 0 want 100000000000000000"
    }
  },
  "transaction": {
    "chainId": 8453,
    "data": "0x...",
    "gas": 419661,
    "to": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
    "value": 100000000000000000
  },
  "warning": {
    "type": "warning",
    "message": "This transaction has a very high likelihood of failing if submitted",
    "description": "failed with 500000000 gas: insufficient funds for gas * price + value: address 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed have 0 want 100000000000000000"
  }
}
The buildSwapTransaction function is used to get an unsigned transaction for a swap between two Tokens. Before using this function, make sure to obtain a Client API Key from Coinbase Developer Platform.

Returns

Promise<BuildSwapTransactionResponse>

Parameters

BuildSwapTransactionParams

Types

Body

application/json
fromAddress
string
required

Wallet address initiating the swap

from
object
required
to
object
required
amount
string
required

Amount of the “from” token to swap (in smallest unit or decimal string)

useAggregator
boolean
required

Whether to use aggregator routing

Response

200 - application/json

Successful response

approveTransaction
object
fee
object
quote
object
transaction
object
warning
object