kycrip-swap

Exchange cryptocurrencies via kyc.rip aggregator API. Use when swapping, converting, or exchanging crypto assets. Supports 700+ coins, no KYC, best rates across 10+ providers.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "kycrip-swap" with this command: npx skills add kyc-rip/swap-api

kyc.rip Swap API

No-KYC cryptocurrency exchange aggregator. Compares rates across 10+ providers (Houdini, Trocador, SimpleSwap, ChangeNOW, FixedFloat, StealthEX, LetsExchange, Exolix, Godex, SideShift, and more) and returns the best deal.

Base URL: https://api.kyc.rip

No authentication required. All endpoints are public.


Endpoints

1. Get Swap Estimate

Compare rates across all providers for a given trading pair.

GET /v2/exchange/estimate

Query Parameters:

ParamTypeDefaultDescription
fromstringbtcSource currency ticker (lowercase)
from_netstringMainnetSource network
tostringxmrDestination currency ticker (lowercase)
to_netstringMainnetDestination network
amountnumber(required)Amount to send (must be > 0)
kycstringDMax KYC level filter: A (none), B (light), C (moderate), D (any)
logstringCMax logging policy filter: A (no logs), B (minimal), C (any)
typestringSet to to for fixed-output mode (specify desired receive amount)
fund_riskstringFund risk tolerance filter
no_cachestringSet to 1 to bypass cache

Example — Get best rate for 0.1 BTC to XMR, privacy-only providers:

GET /v2/exchange/estimate?from=btc&to=xmr&amount=0.1&kyc=A&log=A

Response:

{
  "amount_to": 8.42,
  "routes": [
    {
      "provider": "Houdini_Privacy",
      "engine": "houdini",
      "amount_to": 8.42,
      "amount_from": 0.1,
      "kyc": "A",
      "log_policy": "A",
      "eta": 15,
      "fixed": false,
      "spread": 0.012,
      "providerLogo": "https://..."
    },
    {
      "provider": "SageSwap",
      "engine": "sageswap",
      "amount_to": 8.38,
      "amount_from": 0.1,
      "kyc": "A",
      "log_policy": "A",
      "eta": 20,
      "fixed": false,
      "spread": 0.015
    }
  ]
}

Routes are sorted by best rate. The top-level amount_to reflects the best route.


2. Create a Swap Trade

Execute a swap through a specific provider/engine.

POST /v2/exchange/create
Content-Type: application/json

Request Body:

FieldTypeRequiredDescription
enginestringNoEngine name (default: trocador). Use the engine value from the estimate route.
providerstringYesProvider name from the estimate route
from_currencystringYesSource ticker (e.g. btc)
from_networkstringNoSource network (default: Mainnet)
to_currencystringYesDestination ticker (e.g. xmr)
to_networkstringNoDestination network (default: Mainnet)
amount_fromnumberYes*Amount to send (*required when fixed_rate is false)
amount_tonumberYes*Amount to receive (*required when fixed_rate is true)
address_tostringYesDestination wallet address
address_memostringNoMemo/tag for destination (XRP, XLM, etc.)
fixed_ratebooleanNoLock the exchange rate (default: false)
refstringNoReferral code

Example — Swap 0.1 BTC to XMR:

{
  "engine": "houdini",
  "provider": "Houdini_Privacy",
  "from_currency": "btc",
  "from_network": "Mainnet",
  "to_currency": "xmr",
  "to_network": "Mainnet",
  "amount_from": 0.1,
  "address_to": "48vKMSzWMF9b..."
}

Response:

{
  "id": "abc123-def456",
  "status": "WAITING",
  "engine": "houdini",
  "provider": "Houdini_Privacy",
  "depositAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "depositAmount": 0.1,
  "depositMemo": null,
  "fromTicker": "BTC",
  "fromNetwork": "Mainnet",
  "fromAmount": 0.1,
  "toTicker": "XMR",
  "toNetwork": "Mainnet",
  "toAmount": 8.42,
  "address_user": "48vKMSzWMF9b...",
  "createdAt": "2026-03-15T10:00:00Z",
  "eta": 15
}

After creating the trade, send the exact depositAmount to depositAddress. If depositMemo is present, include it in the transaction.


3. Check Trade Status

Poll the status of an existing trade.

GET /v2/exchange/status/:id

Query Parameters:

ParamTypeDescription
enginestring(Optional) Specify the engine directly. If omitted, the API auto-detects.

Example:

GET /v2/exchange/status/abc123-def456?engine=houdini

Response:

{
  "id": "abc123-def456",
  "status": "EXCHANGING",
  "engine": "houdini",
  "provider": "Houdini_Privacy",
  "fromTicker": "BTC",
  "fromAmount": 0.1,
  "toTicker": "XMR",
  "toAmount": 8.42,
  "depositAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "depositAmount": 0.1,
  "address_user": "48vKMSzWMF9b...",
  "txIn": "a1b2c3d4e5f6...",
  "txOut": null,
  "confirmations": 2,
  "createdAt": "2026-03-15T10:00:00Z",
  "timing": {
    "detectedAt": "2026-03-15T10:05:00Z",
    "confirmedAt": "2026-03-15T10:15:00Z",
    "sendingAt": null,
    "finishedAt": null
  }
}

Trade Statuses:

StatusDescription
WAITINGAwaiting deposit from user
CONFIRMINGDeposit detected, waiting for blockchain confirmations
EXCHANGINGDeposit confirmed, exchange in progress
SENDINGExchange complete, sending funds to destination
FINISHEDSwap completed successfully
FAILEDSwap failed (contact support)
REFUNDEDFunds returned to sender
EXPIREDDeposit window expired

4. List Supported Currencies

Get all currencies available for swapping.

GET /v2/exchange/currencies

Query Parameters:

ParamTypeDescription
forcestringSet to true to bypass cache and refresh from all engines

Example:

GET /v2/exchange/currencies

Response (array):

[
  {
    "id": "btc-Mainnet",
    "ticker": "btc",
    "network": "Mainnet",
    "name": "Bitcoin",
    "image": "https://...",
    "minimum": 0.0001,
    "maximum": 10,
    "memo": false,
    "engine": "trocador",
    "engines": ["trocador", "houdini", "sageswap"]
  },
  {
    "id": "usdt-TRC20",
    "ticker": "usdt",
    "network": "TRC20",
    "name": "Tether",
    "image": "https://...",
    "minimum": 1,
    "maximum": 100000,
    "memo": false,
    "engine": "trocador",
    "engines": ["trocador", "houdini"]
  }
]

5. Validate Crypto Address

Check if a wallet address is valid for a given currency and network.

GET /v2/exchange/validate

Query Parameters:

ParamTypeRequiredDescription
tickerstringYesCurrency ticker (e.g. btc)
networkstringYesNetwork name (e.g. Mainnet)
addressstringYesWallet address to validate

Example:

GET /v2/exchange/validate?ticker=btc&network=Mainnet&address=bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh

Response:

{
  "valid": true,
  "ticker": "btc",
  "network": "Mainnet"
}

6. Ghost Protocol (Privacy Bridge)

Two-hop privacy swaps that route through an intermediary (typically XMR) to break the on-chain link between source and destination.

6a. Bridge Estimate

GET /v2/exchange/bridge/estimate

Query Parameters:

ParamTypeDefaultDescription
fromstringbtcSource ticker
tostringbtcDestination ticker
amountnumber(required)Amount to send (must be > 0)
network_fromstringMainnetSource network
network_tostringMainnetDestination network
no_cachestringSet to 1 to bypass cache

Example — Bridge 1 ETH to BTC via privacy tunnel:

GET /v2/exchange/bridge/estimate?from=eth&to=btc&amount=1&network_from=Mainnet&network_to=Mainnet

Response:

{
  "amount_to": 0.038,
  "eta": 20,
  "routes": [
    {
      "engine": "houdini",
      "provider": "HOUDINI_Tunnel",
      "amount_to": 0.038,
      "eta": 15,
      "kyc": "A",
      "type": "TUNNEL",
      "ingressProvider": "Houdini",
      "egressProvider": "Houdini",
      "ingressKyc": "A",
      "egressKyc": "A",
      "requiresRefund": false,
      "bridgeLabel": "MONERO_TUNNEL",
      "bridgeBadge": "FASTEST",
      "bridgeHighlight": "SPEED_OPTIMIZED"
    },
    {
      "engine": "custom",
      "provider": "Custom_Privacy_Bridge",
      "amount_to": 0.0375,
      "eta": 30,
      "kyc": "A",
      "type": "DOUBLE_HOP",
      "hops": [
        { "name": "SimpleSwap" },
        { "name": "SageSwap" }
      ],
      "ingressProvider": "SimpleSwap",
      "egressProvider": "SageSwap",
      "ingressKyc": "C",
      "egressKyc": "A",
      "requiresRefund": true,
      "bridgeLabel": "CUSTOM_PRIVACY_BRIDGE",
      "bridgeBadge": "OPTIMAL",
      "bridgeHighlight": "BEST_OF_BOTH"
    }
  ]
}

Routes are sorted by a composite score: privacy (40%) + rate (40%) + speed (20%).

6b. Bridge Create

POST /v2/exchange/bridge/create
Content-Type: application/json

Request Body:

FieldTypeRequiredDescription
enginestringNoEngine name (default: trocador). Use engine from bridge estimate route.
from_currencystringYesSource ticker
from_networkstringNoSource network (default: Mainnet)
to_currencystringYesDestination ticker
to_networkstringNoDestination network (default: Mainnet)
amount_fromnumberYesAmount to send
address_tostringYesFinal destination address
refund_addressstringVariesRefund address. Required for engines where requiresRefund is true.
address_memostringNoMemo/tag for destination address
refund_memostringNoMemo/tag for refund address
refstringNoReferral code

Example:

{
  "engine": "houdini",
  "from_currency": "eth",
  "from_network": "Mainnet",
  "to_currency": "btc",
  "to_network": "Mainnet",
  "amount_from": 1,
  "address_to": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}

Response (array of trade legs):

[
  {
    "id": "leg1-id",
    "status": "WAITING",
    "engine": "houdini",
    "fromTicker": "ETH",
    "toTicker": "XMR",
    "depositAddress": "0xabc...",
    "depositAmount": 1,
    "toAmount": 6.5,
    "createdAt": "2026-03-15T10:00:00Z"
  },
  {
    "id": "leg2-id",
    "status": "WAITING",
    "engine": "houdini",
    "fromTicker": "XMR",
    "toTicker": "BTC",
    "depositAddress": "48vKMSzWMF9b...",
    "depositAmount": 6.5,
    "toAmount": 0.038,
    "createdAt": "2026-03-15T10:00:00Z"
  }
]

Only the first leg requires your deposit. The second leg is automatically triggered when the first completes.


Network Names

Use these normalized network names in all API calls:

NetworkValueUsed For
Native chainsMainnetBTC, XMR, ETH (native), LTC, DOGE, XRP, BCH, ADA, XLM, SOL, BNB, TRX
Ethereum ERC-20EthereumUSDT, USDC, DAI on Ethereum
Tron TRC-20TRC20USDT, USDC on Tron
BNB Smart ChainBSCBEP-20 tokens
Solana SPLSolanaSPL tokens
PolygonPolygonPolygon tokens
ArbitrumArbitrumArbitrum tokens
BaseBaseBase tokens
OptimismOptimismOptimism tokens
Avalanche C-ChainAvalancheAvalanche tokens

KYC & Logging Ratings

Providers are rated on two axes. Use these to filter for your privacy needs:

KYC Rating (kyc param): How much identity verification is required.

GradeMeaning
ANo KYC at all
BLight KYC (email or IP-based limits)
CModerate KYC (may require ID for larger amounts)
DAny (no filter)

Logging Policy (log param): How much transaction data the provider retains.

GradeMeaning
ANo logs / fully private
BMinimal logs
CAny (no filter)

For maximum privacy, use kyc=A&log=A.


Common Workflows

Standard Swap (Estimate, Create, Poll)

Step 1: Get quotes
  GET /v2/exchange/estimate?from=btc&to=xmr&amount=0.5

Step 2: Pick the best route and create the trade
  POST /v2/exchange/create
  {
    "engine": "<route.engine>",
    "provider": "<route.provider>",
    "from_currency": "btc",
    "to_currency": "xmr",
    "amount_from": 0.5,
    "address_to": "<user_xmr_address>"
  }

Step 3: Send crypto to the depositAddress from the response

Step 4: Poll status until FINISHED
  GET /v2/exchange/status/<trade_id>?engine=<engine>

Privacy Bridge (Ghost Protocol)

Step 1: Get bridge quotes
  GET /v2/exchange/bridge/estimate?from=eth&to=btc&amount=2

Step 2: Create the bridge (picks a route)
  POST /v2/exchange/bridge/create
  {
    "engine": "<route.engine>",
    "from_currency": "eth",
    "to_currency": "btc",
    "amount_from": 2,
    "address_to": "<user_btc_address>",
    "refund_address": "<user_eth_address>"
  }

Step 3: Send crypto to the first leg's depositAddress

Step 4: Poll both trade legs
  GET /v2/exchange/status/<leg1_id>?engine=<engine>
  GET /v2/exchange/status/<leg2_id>?engine=<engine>

Rate Comparison

# Compare all providers for 1000 USDT (TRC20) -> BTC
GET /v2/exchange/estimate?from=usdt&from_net=TRC20&to=btc&to_net=Mainnet&amount=1000

# Compare only no-KYC providers
GET /v2/exchange/estimate?from=usdt&from_net=TRC20&to=btc&to_net=Mainnet&amount=1000&kyc=A&log=A

Error Handling

All errors return JSON with an error field:

{ "error": "Invalid amount" }
HTTP CodeMeaning
400Bad request (missing/invalid params)
404Trade or resource not found
500Provider or server error

When the estimate endpoint has no available routes, it returns:

{ "routes": [], "amount_to": 0 }

Tips for AI Agents

  • Always estimate first. Do not hardcode provider names; they change. Use the estimate response to get the current best engine and provider.
  • Respect minimums. Check minimum from the currencies endpoint before attempting a swap.
  • Poll with backoff. When checking status, poll every 15-30 seconds. Most swaps complete in 5-30 minutes.
  • Handle memo coins. XRP, XLM, and some others require a depositMemo. Always check the create response for depositMemo and include it in the deposit transaction.
  • Validate addresses before creating trades. Use the /v2/exchange/validate endpoint to avoid failed trades.
  • Use the engine param on status checks for faster lookups when you know which engine handled the trade.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

vultisig-sdk

Use this skill when an agent needs to create crypto wallets, send transactions, swap tokens, check balances, or perform any on-chain operation across 36+ blockchains using threshold signatures (TSS). Vultisig SDK provides self-custodial MPC vaults — no seed phrases, no single point of failure. Fast Vaults (2-of-2 with VultiServer) enable fully autonomous agent operations without human approval.

Registry SourceRecently Updated
1.6K2Profile unavailable
Web3

RiskState — Risk Governor for Crypto Trading Agents

Deterministic risk governance API for autonomous crypto trading agents. Returns position limits, allowed actions, and policy constraints from 30+ real-time s...

Registry Source
1470Profile unavailable
Web3

ZKE Exchange Trading Skill

ZKE AI Master Trader (Official). Control spot and futures trading, manage assets, and access real-time market data on ZKE Exchange.

Registry Source
1980Profile unavailable
Security

Bank of Bots

Trust scoring for AI agents. Log transactions and submit payment proofs to build a verifiable BOB Score — a trust score (think FICO but for AI Agents) that o...

Registry SourceRecently Updated
2400Profile unavailable