Overview
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)
GETGet Tokens
Fetch the full list of supported assets programmatically.
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.
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
| Field | Type | Required | Description |
|---|---|---|---|
| sellAsset | string | Yes | Asset identifier (e.g., 'BTC.BTC') |
| buyAsset | string | Yes | Asset identifier (e.g., 'ETH.ETH') |
| sellAmount | string | Yes | Amount to swap in native units |
POSTSwap
Create swap transaction details from a previously selected route. This endpoint proxies SwapKit v3 /v3/swap.
curl -X POST "https://makeswap.io/api/v1/swap" \
-H "Content-Type: application/json" \
-d '{ "routeId": "uuid", "sourceAddress": "bc1...", "destinationAddress": "0x123..." }'
{
"routeId": "uuid",
"targetAddress": "bc1...",
"tx": "base64_or_hex",
"swapId": "uuid"
}POSTTrack Swap
Track swap status using hash + chainId, depositChannelId, or depositAddress.
curl -X POST "https://makeswap.io/api/v1/track" \
-H "Content-Type: application/json" \
-d '{ "hash": "0x...", "chainId": "1" }'
{
"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.
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.