Are you the author? Sign in to claim
Free non-custodial Swap API — Solana (Jupiter) + 7 EVM chains (KyberSwap) + universal cross-chain router + priority-fee
Swap on Solana and 7 EVM chains with one free REST API. Every endpoint returns an unsigned transaction — you sign with your own wallet. The server never holds funds, never sees keys. No registration, no API key, no KYC.
Base URL: https://swaptitan.net
A self-contained MCP server — no dependencies, Node >= 18:
node mcp-server.js
18 tools (prices, quotes, Solana + EVM swaps, routing, priority fees, Hyperliquid, rug checks). The protocol layer runs locally; tool calls hit the free public API. Hosted alternative: https://swaptitan.net/mcp (streamable HTTP, no auth).
# Quote
curl "https://swaptitan.net/v1/sol/quote?from=sol&to=usdc&amount=0.1"
# Build unsigned swap transaction for YOUR wallet
curl -X POST https://swaptitan.net/v1/sol/swap \
-H "Content-Type: application/json" \
-d '{"from":"sol","to":"usdc","amount":0.1,"userPublicKey":"<YOUR_WALLET>"}'
Response contains swapTransaction (base64, unsigned) — deserialize, sign, send to any RPC:
import { VersionedTransaction, Connection } from '@solana/web3.js';
const { swapTransaction } = await (await fetch('https://swaptitan.net/v1/sol/swap', {
method: 'POST', headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ from: 'sol', to: 'usdc', amount: 0.1, userPublicKey: wallet.publicKey.toString() })
})).json();
const tx = VersionedTransaction.deserialize(Buffer.from(swapTransaction, 'base64'));
tx.sign([wallet]);
await new Connection('https://api.mainnet-beta.solana.com').sendRawTransaction(tx.serialize());
from / to: sol, usdc, usdt or any base58 mint (memecoins, pump.fun tokens — anything Jupiter routes)amount (human units for sol/usdc/usdt) or amountRaw (base units, any mint)slippageBps: 1–1000, default 50feeBps and serviceFeeLamports)# Quote
curl "https://swaptitan.net/v1/evm/base/quote?tokenIn=native&tokenOut=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=0.1"
# Build unsigned calldata
curl -X POST https://swaptitan.net/v1/evm/base/swap \
-H "Content-Type: application/json" \
-d '{"tokenIn":"native","tokenOut":"0x8335...2913","amount":0.1,"account":"<YOUR_0x_WALLET>"}'
Response: tx: { to, data, value } — sign and broadcast with your own wallet (ethers/viem/web3.js). ERC-20 input requires prior approval to tx.to. Pricing: free API, 0.3% routing fee in calldata.
One call compares all rails (cross-chain exchange bridge, direct H2H liquidity, Solana DEX) and returns the best route with ready-to-execute parameters — including hard pairs like eth -> xmr:
curl "https://swaptitan.net/v1/route?from=eth&to=xmr&amount=0.5"
Live compute-unit price tiers, refreshed continuously — call before sending any Solana transaction:
curl "https://swaptitan.net/v1/sol/priority-fee"
# -> { "recommended": { "low": ..., "medium": ..., "high": ..., "turbo": ... }, "computeUnitsHint": {...} }
Remote endpoint (no auth, free tier): https://swaptitan.net/mcp — JSON-RPC 2.0, streamable HTTP, 18 tools.
https://swaptitan.net/mcp → Connect.{ "mcpServers": { "swaptitan": { "url": "https://swaptitan.net/mcp" } } }
node mcp-server.js (see above).tools/list then tools/call. Tools: sol_swap, evm_swap, smart_route, sol_priority_fee, swap_create, swap_status, get_prices, rug_check and more.Discovery: /llms.txt · /.well-known/agent-skills/index.json · /.well-known/mcp/server-card.json
GET /v1/swap/quote?from=btc&to=eth&amount=1GET /v1/pricesGET /v1/xmr/quote?from=sol&amount=1&to=xmrPublic endpoints are rate-limited per IP (20–60/min depending on endpoint). Fees are always disclosed in the API response. All transactions are non-custodial: nothing executes until you sign.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows