POST
/
buildSwapTransaction
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

Response

200 - application/json

Successful response

The response is of type object.