No-account cross-chain crypto swaps (BTC, ETH, SOL, USDT, ZEC…) for AI agents. Flat 0.5% fee.
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.
Create a swap from a quoteToken returned by get_quote. Returns a one-time depositAddress, the exact amount to send, expiresAt and a swapId for tracking. Only call after the user confirmed the route and both addresses. The swap only happens when the user sends the funds. Repeating the call with the same quoteToken and addresses returns the same deposit address.
quoteToken of the chosen route (valid for about 2 minutes).
Address on the sell asset's network that receives a refund if the swap cannot complete.
Address that receives the bought asset, on the buy asset's network.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Tool list last changed Oct 23, 2026.
Create a swap from a quoteToken returned by get_quote. Returns a one-time depositAddress, the exact amount to send, expiresAt and a swapId for tracking. Only call after the user confirmed the route and both addresses. The swap only happens when the user sends the funds. Repeating the call with the same quoteToken and addresses returns the same deposit address.
| Argument | Type | Description |
|---|---|---|
| quoteToken* | string | quoteToken of the chosen route (valid for about 2 minutes). |
| refundAddress* | string | Address on the sell asset's network that receives a refund if the swap cannot complete. |
| destinationAddress* | string | Address that receives the bought asset, on the buy asset's network. |
{
"type": "object",
"required": [
"quoteToken",
"destinationAddress",
"refundAddress"
],
"properties": {
"quoteToken": {
"type": "string",
"description": "quoteToken of the chosen route (valid for about 2 minutes)."
},
"refundAddress": {
"type": "string",
"description": "Address on the sell asset's network that receives a refund if the swap cannot complete."
},
"destinationAddress": {
"type": "string",
"description": "Address that receives the bought asset, on the buy asset's network."
}
},
"additionalProperties": false
}Get live quotes for swapping one asset to another (cross-chain or same-chain). Returns routes ranked by amount received, each with a quoteToken, the executing protocol, expectedReceive, minimumReceived and estimated time. All fees (network, protocol and platform) are included.
| Argument | Type | Description |
|---|---|---|
| slippage | number | Maximum slippage in percent. Default 1.5. |
| providers | array | Optional: only return routes from these provider ids, e.g. ["NEAR", "FLASHNET"]. From list_providers. |
| buyAssetId* | string | Asset to receive, e.g. "ethereum-eth". From list_assets. |
| sellAmount* | string | Amount to send as a decimal string in the sell asset's units, e.g. "0.05". |
| sellAssetId* | string | Asset to send, e.g. "bitcoin-btc". From list_assets. |
{
"type": "object",
"required": [
"sellAssetId",
"buyAssetId",
"sellAmount"
],
"properties": {
"slippage": {
"type": "number",
"maximum": 5,
"minimum": 0.1,
"description": "Maximum slippage in percent. Default 1.5."
},
"providers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Optional: only return routes from these provider ids, e.g. [\"NEAR\", \"FLASHNET\"]. From list_providers."
},
"buyAssetId": {
"type": "string",
"description": "Asset to receive, e.g. \"ethereum-eth\". From list_assets."
},
"sellAmount": {
"type": "string",
"description": "Amount to send as a decimal string in the sell asset's units, e.g. \"0.05\"."
},
"sellAssetId": {
"type": "string",
"description": "Asset to send, e.g. \"bitcoin-btc\". From list_assets."
}
},
"additionalProperties": false
}Check the progress of a swap by swapId: awaiting_deposit, confirming, exchanging, sending, completed, refunded, failed or expired.
| Argument | Type | Description |
|---|---|---|
| swapId* | string | swapId returned by create_swap. |
{
"type": "object",
"required": [
"swapId"
],
"properties": {
"swapId": {
"type": "string",
"description": "swapId returned by create_swap."
}
},
"additionalProperties": false
}List assets TorrentSwap can swap, with the id to use in get_quote, ticker, network and decimals. Any two different assets can be swapped. Optional query/network filters.
| Argument | Type | Description |
|---|---|---|
| query | string | Optional filter by ticker or name, e.g. "usdt" or "bitcoin". |
| network | string | Optional filter by network id or name, e.g. "tron" or "solana". |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional filter by ticker or name, e.g. \"usdt\" or \"bitcoin\"."
},
"network": {
"type": "string",
"description": "Optional filter by network id or name, e.g. \"tron\" or \"solana\"."
}
},
"additionalProperties": false
}List the cross-chain protocols TorrentSwap routes through (NEAR Intents, Chainflip, Flashnet, THORChain, Pact Swap and more), with how each executes and how it holds funds. Use the ids to filter get_quote.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Check that an address is valid for the network of an asset before creating a swap (checksums included). Returns the canonical form.
| Argument | Type | Description |
|---|---|---|
| address* | string | Address to check. |
| assetId* | string | Asset the address will receive, e.g. "tron-usdt". Determines the network. |
{
"type": "object",
"required": [
"assetId",
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Address to check."
},
"assetId": {
"type": "string",
"description": "Asset the address will receive, e.g. \"tron-usdt\". Determines the network."
}
},
"additionalProperties": false
}