Native cross-chain swaps: Bitcoin, Ethereum, Solana, Polkadot, Tron, Arbitrum. Quote, swap, track.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check the status of a swap by its ID. Returns the current swap state including deposit detection, swap progress, and egress information.
The swap ID returned by start_swap or start_dca_swap
Check the status of a swap by its ID. Returns the current swap state including deposit detection, swap progress, and egress information.
| Argument | Type | Description |
|---|---|---|
| swapId* | integer | The swap ID returned by start_swap or start_dca_swap |
{
"type": "object",
"required": [
"swapId"
],
"properties": {
"swapId": {
"type": "integer",
"description": "The swap ID returned by start_swap or start_dca_swap"
}
}
}Get swap quotes for exchanging one crypto asset to another using native (smallest unit) amounts. Returns available quotes with exchange rates, fees, and estimated output amounts. Use this when you have amounts in native units (e.g., satoshis for BTC, wei for ETH). API key is optional.
| Argument | Type | Description |
|---|---|---|
| amount* | string | Amount to swap in native units (e.g., '100000000' for 1 BTC in satoshis) |
| apiKey | string | null | Optional partner API key. |
| sourceAsset* | string | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') |
| destinationAsset* | string | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') |
{
"type": "object",
"required": [
"sourceAsset",
"destinationAsset",
"amount"
],
"properties": {
"amount": {
"type": "string",
"description": "Amount to swap in native units (e.g., '100000000' for 1 BTC in satoshis)"
},
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional partner API key."
},
"sourceAsset": {
"type": "string",
"description": "Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth')"
},
"destinationAsset": {
"type": "string",
"description": "Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol')"
}
}
}Get swap quotes for exchanging one crypto asset to another. Returns available quotes with exchange rates, fees, and estimated output amounts. API key is optional.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Amount to swap in human-readable format (e.g., 1.5 for 1.5 BTC) |
| apiKey | string | null | Optional partner API key. |
| sourceAsset* | string | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') |
| destinationAsset* | string | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') |
{
"type": "object",
"required": [
"sourceAsset",
"destinationAsset",
"amount"
],
"properties": {
"amount": {
"type": "number",
"description": "Amount to swap in human-readable format (e.g., 1.5 for 1.5 BTC)"
},
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional partner API key."
},
"sourceAsset": {
"type": "string",
"description": "Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth')"
},
"destinationAsset": {
"type": "string",
"description": "Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol')"
}
}
}List all available swap assets and their details including ticker, network, direction, decimals, minimum amounts, and current USD prices.
No arguments.
{
"type": "object",
"properties": {}
}Start a DCA (Dollar Cost Averaging) cross-chain swap that splits into multiple sub-swaps over time. Returns the deposit address. API key is optional.
| Argument | Type | Description |
|---|---|---|
| apiKey | string | null | Optional partner API key. |
| sourceAsset* | string | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') |
| minimumPrice | number | null | Optional minimum accepted price as a destination-per-source ratio (e.g., for a btc.btc to eth.eth swap, 28.5 means 1 BTC gets at least 28.5 ETH). When omitted, automatically calculated from current pool prices with 2% slippage tolerance. Set to 0 to accept any price. |
| refundAddress* | string | Refund address on the source chain, used if minimum price cannot be met |
| numberOfChunks* | integer | Number of sub-swaps for DCA (Dollar Cost Averaging). Must be >= 1. |
| destinationAsset* | string | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') |
| destinationAddress* | string | Destination address on the target chain |
Start a cross-chain swap. Returns the deposit address where you should send your source asset. API key is optional.
| Argument | Type | Description |
|---|---|---|
| apiKey | string | null | Optional partner API key. |
| sourceAsset* | string | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') |
| minimumPrice | number | null | Optional minimum accepted price as a destination-per-source ratio (e.g., for a btc.btc to eth.eth swap, 28.5 means 1 BTC gets at least 28.5 ETH). When omitted, automatically calculated from current pool prices with 2% slippage tolerance. Set to 0 to accept any price. |
| refundAddress* | string | Refund address on the source chain, used if minimum price cannot be met |
| destinationAsset* | string | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') |
| destinationAddress* | string | Destination address on the target chain |
| livePriceSlippageTolerancePercent | number | null | Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before the swap is retried and then refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies. |
| chunkIntervalBlocks |
| integer | null |
| Optional delay between DCA sub-swaps in state-chain blocks (1 block = 6 seconds). Defaults to 2 blocks (12 seconds). |
| livePriceSlippageTolerancePercent | number | null | Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before a sub-swap is retried and the rest refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies. |
{
"type": "object",
"required": [
"sourceAsset",
"destinationAsset",
"destinationAddress",
"refundAddress",
"numberOfChunks"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional partner API key."
},
"sourceAsset": {
"type": "string",
"description": "Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth')"
},
"minimumPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional minimum accepted price as a destination-per-source ratio (e.g., for a btc.btc to eth.eth swap, 28.5 means 1 BTC gets at least 28.5 ETH). When omitted, automatically calculated from current pool prices with 2% slippage tolerance. Set to 0 to accept any price."
},
"refundAddress": {
"type": "string",
"description": "Refund address on the source chain, used if minimum price cannot be met"
},
"numberOfChunks": {
"type": "integer",
"description": "Number of sub-swaps for DCA (Dollar Cost Averaging). Must be >= 1."
},
"destinationAsset": {
"type": "string",
"description": "Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol')"
},
"destinationAddress": {
"type": "string",
"description": "Destination address on the target chain"
},
"chunkIntervalBlocks": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Optional delay between DCA sub-swaps in state-chain blocks (1 block = 6 seconds). Defaults to 2 blocks (12 seconds)."
},
"livePriceSlippageTolerancePercent": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before a sub-swap is retried and the rest refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies."
}
}
}{
"type": "object",
"required": [
"sourceAsset",
"destinationAsset",
"destinationAddress",
"refundAddress"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional partner API key."
},
"sourceAsset": {
"type": "string",
"description": "Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth')"
},
"minimumPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional minimum accepted price as a destination-per-source ratio (e.g., for a btc.btc to eth.eth swap, 28.5 means 1 BTC gets at least 28.5 ETH). When omitted, automatically calculated from current pool prices with 2% slippage tolerance. Set to 0 to accept any price."
},
"refundAddress": {
"type": "string",
"description": "Refund address on the source chain, used if minimum price cannot be met"
},
"destinationAsset": {
"type": "string",
"description": "Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol')"
},
"destinationAddress": {
"type": "string",
"description": "Destination address on the target chain"
},
"livePriceSlippageTolerancePercent": {
"type": [
"number",
"null"
],
"default": null,
"description": "Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before the swap is retried and then refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies."
}
}
}