CONDUIT API
Build with cross-chain intelligence.
Non-custodial transaction API for AI agents. 11 endpoints, 13 chains, 110+ tokens — quote, swap, bridge, and track from a single integration.
Getting Started
Start building with the Conduit API in under a minute. No API keys needed for free endpoints.
What is Conduit?
Conduit is a non-custodial, multi-chain transaction API designed for AI agents. Your agent discovers tokens, gets quotes, and builds transactions through our endpoints — then signs locally and broadcasts. We never touch private keys.
https://api.conduit.exchange/api/agents/3-Step Walkthrough
Query supported tokens and check balances — completely free, no auth needed.
Request
curl https://api.conduit.exchange/api/agents/tokens
Response
{
"ok": true,
"chains": ["solana", "ethereum", "base", "polygon", ...],
"tokens": [
{ "symbol": "SOL", "chains": ["solana"], "decimals": 9 },
{ "symbol": "USDC", "chains": ["solana", "ethereum", "base", ...], "decimals": 6 },
{ "symbol": "ETH", "chains": ["ethereum", "base", "arbitrum", ...], "decimals": 18 }
]
}What can you build?
Auto-swap assets to maintain target allocations across chains
Send value between any chains — Solana, EVM, Bitcoin, Kaspa
Build automated buy/sell strategies with scheduled transactions
Multi-chain balance monitoring and automated fund movements
Architecture
How Conduit works — non-custodial design and the transaction lifecycle.
Non-Custodial Model
Conduit never sees your private key. We return unsigned transactions — you sign locally and broadcast.
Transaction Lifecycle
Check tokens, balances, gas
FREEAggregated multi-provider quotes
FREEBuild unsigned transaction
PAIDSign locally with your key
LOCALMonitor until confirmed
FREEWe build transactions, you sign them. Private keys never leave your device.
Discovery, quotes, balances, and gas checks require zero authentication.
Only transaction building costs money — via x402 USDC micropayments.
Authentication & Payments
Free endpoints need no auth at all. Paid endpoints use x402 micropayments — USDC on Base or Solana. Optional wallet-signature auth for verified identity.
/agents/tokensSupported Tokens & Chains/agents/quoteMulti-Provider Quotes/agents/balancesMulti-Chain Balances/agents/gasGas Estimation/agents/tx-status/{id}Transaction Status/agents/statusAgent Usage Stats/agents/leaderboardAgent Leaderboard/agents/authWallet Authentication/agents/swap$0.01/agents/bridge$0.02/agents/transfer$0.005/agents/multihop$0.03How x402 Works
Call Endpoint
Make a normal HTTP request to a paid endpoint
Receive 402
Get a 402 Payment Required response with payment details
Pay via USDC
Sign a USDC permit/transfer on Base or Solana
Retry with Header
Resend request with the X-PAYMENT header — get your transaction
Think of it like a toll booth — you pay once per build request. Payments are USDC on Base (chain 8453) or Solana. No API keys, no subscriptions, no accounts to create.
SDK Integration
import { wrapFetch } from "@x402/fetch";
// Wrap fetch with x402 payment support
const payFetch = wrapFetch(fetch, {
// Your wallet/signer for USDC payments
paymentSigner: yourWalletSigner,
// Network: "base" or "solana"
network: "base",
});
// Use exactly like fetch — x402 is handled automatically
const res = await payFetch(
"https://api.conduit.exchange/api/agents/swap",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
fromToken: "SOL",
toToken: "USDC",
amount: "1000000000",
chain: "solana",
userAddress: "YourSolanaKey...",
}),
}
);
const data = await res.json();
// → data.transaction contains the unsigned swap txInstall: npm install @x402/fetch
Discovery
Explore tokens, chains, balances, and gas costs
Execution
Swap, bridge, transfer, and multihop routes
Monitoring
Track transactions and agent usage
Try it Live
Test endpoints directly — no setup required
Discover all supported tokens and chains
/api/agents/tokensAmount Formatting
All amounts in the API use the smallest unit (raw). Understanding decimals is critical for correct transactions.
The Rule: Multiply the human-readable amount by 10^decimals to get the raw amount. Always send raw amounts as strings in API requests.
Token Decimals Reference
1000000000100000000000000000010000001000000100000000100000000000000000010000000000000000001000000000000000000100000000100000000000000000010000000000001000000Conversion Examples
// Human-readable → Raw (for API requests) const solAmount = 1.5; const rawAmount = Math.floor(solAmount * 10 ** 9); // → 1500000000 (send this string to the API) const usdcAmount = 100; const rawUsdc = Math.floor(usdcAmount * 10 ** 6); // → 100000000 // Raw → Human-readable (from API responses) const rawOutput = "185420000"; // USDC const humanOutput = Number(rawOutput) / 10 ** 6; // → 185.42 USDC
"amount": "1" — This is 0.000000001 SOL (1 lamport), not 1 SOL"amount": "1000000000" — This is 1.0 SOL (10^9 lamports)Error Handling
Error response format, HTTP status codes, rate limits, and retry strategies.
Error Response Format
{
"ok": false,
"error": "Human-readable error message",
"code": "INSUFFICIENT_BALANCE" // optional error code
}All endpoints return ok: true on success and ok: false on failure. Soft errors (no route, etc.) return HTTP 200 with ok: false.
HTTP Status Codes
Soft errors — no route found, insufficient balance, provider down
Invalid parameters — missing fields, wrong types, bad addresses
x402 payment needed — sign USDC micropayment and retry
Too many requests — back off and retry after Retry-After header
Internal error — retry with exponential backoff
Upstream provider unreachable — try again or use a different route
Request timed out — retry, provider may be slow
Rate Limits
tokens, balances, gas
quote, tx-status, status
swap, bridge, transfer, multihop
Response Headers
X-RateLimit-LimitMax requests per windowX-RateLimit-RemainingRequests left in windowRetry-AfterSeconds to wait before retrying (on 429)Recommended Retry Strategy
Retry-After seconds, then retryPayment headerok: false — don't retry soft errors (no route, bad params)Supported Chains
13+Supported Tokens
110+Basic Swap
Single-chain token swap via the best available DEX provider
Cross-Chain Bridge
Transfer tokens from one chain to another via the best bridge provider
Multihop Route
Complex cross-chain route through intermediate chains (e.g. AVAX -> SOL -> KAS)
Deposit-Based Exchange
Exchange flow for non-smart-contract chains (Kaspa, Bitcoin, Tron) via deposit-based providers
Pricing
Pay-per-call via the x402 protocol. Free endpoints have no cost. Paid endpoints accept USDC on Base or Solana.
| Endpoint | Method | Price | Payment Networks |
|---|---|---|---|
Supported Tokens & Chains/api/agents/tokens | GET | FREE | -- |
Multi-Provider Aggregated Quotes/api/agents/quote | POST | FREE | -- |
Aggregated Swap Execution/api/agents/swap | POST | $0.01 | Base + Solana |
Cross-Chain Bridge/api/agents/bridge | POST | $0.02 | Base + Solana |
Same-Chain Token Transfer/api/agents/transfer | POST | $0.005 | Base + Solana |
Multi-Hop Cross-Chain Route/api/agents/multihop | POST | $0.03 | Base + Solana |
Multi-Chain Balance Oracle/api/agents/balances | GET / POST | FREE | -- |
Gas Estimation & Preflight Check/api/agents/gas | GET / POST | FREE | -- |
Transaction Status Tracker/api/agents/tx-status/{id} | GET | FREE | -- |
Agent Usage, Stats & Profile/api/agents/status | GET / POST | FREE | -- |
Agent Leaderboard/api/agents/leaderboard | GET | FREE | -- |
Agent Wallet Authentication/api/agents/auth | POST | FREE | -- |
Payments via x402 protocol -- USDC on Base or Solana. No API keys needed.
AI Agent Guide
System prompts, decision trees, and tool definitions for integrating Conduit into AI agents and LLMs.
System Prompt Template
Add this to your agent's system prompt to teach it how to use the Conduit API.
You have access to the Conduit API for executing crypto transactions across 13 blockchains.
Base URL: https://api.conduit.exchange/api/agents
## Available Actions (free, no auth):
- GET /tokens — List supported tokens, chains, and decimals
- POST /quote — Get swap/bridge quotes from multiple providers
- GET /balances?chains=solana:ADDRESS,base:ADDRESS — Check balances
- GET /gas?chain=solana — Estimate gas costs
- GET /tx-status/{id} — Track transaction status
- GET /status — Check your usage stats
- GET /leaderboard — View ranked agent leaderboard
- POST /auth — Authenticate via wallet signature (verified identity)
## Build Actions (paid via x402 USDC micropayment):
- POST /swap ($0.01) — Build a swap transaction (same chain)
- POST /bridge ($0.02) — Build a cross-chain bridge transaction
- POST /transfer ($0.005) — Build a same-chain token transfer
- POST /multihop ($0.03) — Build a multi-hop cross-chain route
## Critical Rules:
1. All amounts are in SMALLEST UNIT (raw). 1 SOL = "1000000000", 1 USDC = "1000000"
2. Conduit returns unsigned transactions. Sign locally with your private key, then broadcast.
3. Always get a quote first, then build. Never build without quoting.
4. Free endpoints need no auth. Paid endpoints return 402 → pay USDC → retry.
5. After building a tx, track it with GET /tx-status/{id} until confirmed.
6. Never send your private key to any API. All signing happens locally.
7. Optional: POST /auth with wallet signature for verified leaderboard identity.
## Workflow: Discover → Quote → Build → Sign → Broadcast → TrackEndpoint Decision Tree
/transferSend 10 USDC from Alice to Bob on Solana/swapSwap 1 SOL for USDC on Solana/bridgeBridge USDC from Ethereum to Solana/multihopMove AVAX on Avalanche to KAS on Kaspa/tokensCheck which chains support USDCSigning Flow
Conduit never sees your private key. Sign transactions locally, then broadcast.
Agent Builds
POST /swap returns base64 unsigned tx
Agent Signs
Sign locally with your private key
Broadcast
Submit signed tx to the network
Agent Tracks
GET /tx-status/{id} until confirmed
Tool Definitions
from langchain.tools import tool
import requests
BASE = "https://api.conduit.exchange/api/agents"
@tool
def get_swap_quote(from_token: str, to_token: str, amount: str, chain: str) -> dict:
"""Get a swap quote from multiple DEX providers.
Amount must be in smallest unit (e.g., 1 SOL = '1000000000').
Returns: best quote with provider, output amount, and price impact."""
resp = requests.post(f"{BASE}/quote", json={
"fromToken": from_token,
"toToken": to_token,
"amount": amount,
"chain": chain,
})
return resp.json()
@tool
def check_balances(chains_and_addresses: str) -> dict:
"""Check token balances across chains.
Format: 'solana:ADDRESS,base:ADDRESS,ethereum:ADDRESS'
Returns: balances for each chain with native and token amounts."""
resp = requests.get(f"{BASE}/balances", params={"chains": chains_and_addresses})
return resp.json()
@tool
def get_supported_tokens() -> dict:
"""List all supported tokens, their chains, and decimal counts."""
return requests.get(f"{BASE}/tokens").json()Agent Integration
Connect via MCP, OpenAPI, A2A, or direct REST. Zero-friction setup for AI agents.
Discovery Endpoints
/api/mcp/mcp/.well-known/openapi.json/.well-known/agent-card.json/.well-known/ai-plugin.json/.well-known/conduit-skill.mdConnect directly from Claude Code, Claude Desktop, OpenAI SDK, or any MCP-compatible client. All tools auto-discovered.
// Claude Code CLI
claude mcp add --transport http conduit https://api.conduit.exchange/api/mcp/mcp
// Or add to .mcp.json in your project root:
{
"mcpServers": {
"conduit": {
"type": "http",
"url": "https://api.conduit.exchange/api/mcp/mcp"
}
}
}
// Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"conduit": {
"type": "http",
"url": "https://api.conduit.exchange/api/mcp/mcp"
}
}
}Network Topology
Conduit connects to 13+ chains through a unified hub. Hover a chain to see its connection.