Fast. Private. Ultra-Low Fees. No KYC, no bridges, native swaps with subscriber discount support.

API Documentation

Integrate MakeSwap's powerful native cross-chain swapping capabilities directly into your application. Our API provides access to the underlying protocol, enabling secure, non-custodial swaps between major blockchains like Bitcoin, Ethereum, Polkadot, and more.

Secure & Non-Custodial

All swaps are executed via MPC validators. We never hold user funds.

Fast Execution

Optimized routing through JIT liquidity providers.

Supported Assets

Use the correct asset identifier when interacting with the Quote endpoint. Identifiers follow the Chain.Ticker format.

Supported Asset List

Asset Identifier Format

Assets are identified by a string format: CHAIN.TICKER or CHAIN.TICKER-CONTRACT

Supported Asset List is intentionally curated to major assets only. Long-tail and scam-token candidates are excluded.

  • Native Assets: e.g., ETH.ETH (Ethereum), BTC.BTC (Bitcoin)
  • Token Assets: e.g., ETH.USDC-0xA0b8... (USDC on Ethereum)
IdentifierNameChainDecimals
No assets found.

GETGet Tokens

Fetch the full list of supported assets programmatically.

GEThttps://makeswap.io/api/v1/tokens
curl -X GET "https://makeswap.io/api/v1/tokens" 

POSTGet Quote

Fetch available swap routes and quotes for a given pair. This endpoint is optimized to return valid routes for the supported native assets via the Chainflip provider.

POSThttps://makeswap.io/api/v1/quote
curl -X POST "https://makeswap.io/api/v1/quote" \
-H "Content-Type: application/json" \
-d '{"sellAsset":"BTC.BTC", "buyAsset":"ETH.ETH", "sellAmount":"0.1"}'

Interactive Playground - Get Quote

Parameters

FieldTypeRequiredDescription
sellAssetstringYesAsset identifier (e.g., 'BTC.BTC')
buyAssetstringYesAsset identifier (e.g., 'ETH.ETH')
sellAmountstringYesAmount to swap in native units

POSTSwap

Create swap transaction details from a previously selected route. This endpoint proxies SwapKit v3 /v3/swap.

POSThttps://makeswap.io/api/v1/swap
curl -X POST "https://makeswap.io/api/v1/swap" \
-H "Content-Type: application/json" \
-d '{ "routeId": "uuid", "sourceAddress": "bc1...", "destinationAddress": "0x123..." }'
Response:
{
  "routeId": "uuid",
  "targetAddress": "bc1...",
  "tx": "base64_or_hex",
  "swapId": "uuid"
}

POSTTrack Swap

Track swap status using hash + chainId, depositChannelId, or depositAddress.

POSThttps://makeswap.io/api/v1/track
curl -X POST "https://makeswap.io/api/v1/track" \
-H "Content-Type: application/json" \
-d '{ "hash": "0x...", "chainId": "1" }'
Response:
{
  "id": "12345",
  "status": "deposit_received", // waiting_deposit, sending, complete
  "depositAddress": "...",
  "txHash": null,
  "outAmount": null
}

POSTIntegration Token

Issue short-lived tokens for iframe, SDK, or wallet integrations. You can authenticate with partner credentials or an internal signed request.

POSThttps://makeswap.io/api/v1/integrations/token
curl -X POST "https://makeswap.io/api/v1/integrations/token" \
-H "Content-Type: application/json" \
-d '{ \"origin\": \"https://partner.example\", \"affiliateFeeBps\": 100 }'

Partner mode headers

  • x-makeswap-key-id
  • x-makeswap-key-secret

Internal wallet mode headers

  • x-makeswap-internal-key-id
  • x-makeswap-internal-timestamp (unix seconds)
  • x-makeswap-internal-signature (HMAC-SHA256 hex of METHOD\\nPATH\\nTIMESTAMP\\nSHA256(BODY))
  • x-makeswap-internal-body-sha256 (optional integrity check)

Embed quickstart

<iframe
  src="https://makeswap.io/embed?token=INTEGRATION_TOKEN"
  style="width:100%;min-height:640px;border:0"
  title="MakeSwap Widget"
/>

No-SDK partner onboarding

<iframe
  src="https://makeswap.io/embed/PARTNER_ID?sellAsset=BTC.BTC&buyAsset=ETH.ETH"
  style="width:100%;height:760px;border:0"
  title="MakeSwap Widget"
/>

The partner route validates parent website origin against allowed origins configured in admin.