# Swapabit > Swapabit (https://swapabit.com) is a non-custodial, no-KYC crypto swap aggregator. It compares quotes across exchange providers, routes each swap to the best rate, and tracks it live from deposit to payout. Fixed or floating rates, no accounts, no pre-deposits. This file is the complete, authoritative reference for AI agents: how a swap works, what data is machine-readable, and the rules that keep agent answers honest. Swapabit never holds user funds: no accounts, no deposits, no balances, no withdrawals. Funds only pass through during the transit period of a swap and the payout goes straight to the user's own wallet. It is a tunnel, not a vault. The Swapabit fee is 20 bps (0.20%) on swaps; network fees are paid to the blockchain, not to Swapabit. ## Pages - [Home](https://swapabit.com/): the swap form. Pick a pair, get the best live quote, start a swap. - [Exchange](https://swapabit.com/exchange): the same swap form, prefillable via query params (?from=BTC&to=ETH&amount=0.1). Send users here to start a swap. - [Orders](https://swapabit.com/orders): the user's past swaps, stored only in their own browser storage. - [Status](https://swapabit.com/status): live operational status of the website and backend services, plus the incident/events timeline (JSON at https://api.swapabit.com/service_status). - [Support](https://swapabit.com/support): swap tracking by order ID and the team on Telegram (https://t.me/swapabit). ## How a swap works end to end 1. The user picks the coin and network to send (From) and the coin and network to receive (To). Network tags (BTC, ETH, BSC, Arbitrum, etc.) must match the wallets the user controls; a ticker does not imply a network. 2. The user chooses a fixed or floating rate. 3. The user enters the payout address for the To asset, plus a memo/tag where the chain requires one (XRP, XLM, ATOM, etc.). Missing memos can delay credits. 4. Clicking Exchange creates the order and shows the expected amount, the network fee, and (for fixed rates) the time window to fund the deposit. 5. The user sends the exact deposit amount shown to the provided deposit address. Over- or under-paying can stall or cancel the order. 6. The status page at https://swapabit.com/swap/{id} tracks progress live. Users should keep the order ID and transaction hashes; they are the fastest way to troubleshoot. ### Fixed vs floating rates - Floating: the real market price at the moment the deposit arrives. No insurance premium built in. For most everyday swaps floating yields more crypto. - Fixed: locks the quote for a short window. The rate includes a built-in safety buffer (spread) that pays for the volatility risk, so it is slightly worse on average. - Use fixed when an exact arrival amount is required (paying a bill or a merchant) or when the market is moving violently. - Fixed-rate orders must be funded within the shown time window; funding late or slowly can invalidate the locked rate. ### Exchange statuses - new: the exchange is created and ready; send the payment to continue. - waiting: waiting for the user's payment to arrive at the deposit address. - confirming: the payment was detected and is being confirmed on the blockchain. - exchanging: the payment is received and the conversion is in progress. - sending: the conversion is complete and funds are on the way to the payout address. - finished: funds have been sent to the payout address. - verifying: the deposit is being verified. - refunded: a refund is being processed back to the user's refund address. - failed: the exchange could not complete; the user should contact support. ### Typical durations and why they vary Most swaps complete in roughly 5 to 30 minutes. The time depends on: how quickly the user funds the deposit, blockchain confirmation times for the deposit asset (each chain needs a number of confirmations before the exchange proceeds), network congestion, and payout network speed. Slow or congested networks can stretch a swap well beyond the typical window without anything being wrong. ### If a swap looks stuck 1. Check the deposit transaction in a block explorer: if it is unconfirmed, the swap has not started yet; low-fee transactions can take a long time to confirm. 2. Confirm the exact amount shown was sent, to the exact address, with the memo/tag if one was required. 3. Statuses like confirming and exchanging can legitimately take a while during network congestion. 4. If nothing moves for an unusually long time, or the status is failed, contact support at https://t.me/swapabit with the order ID and transaction hashes. NEVER send a second payment to the same deposit address. ### Refunds If a swap cannot complete (wrong amount, expired fixed-rate window, failed conversion), the deposit is refunded to the user's refund address; the status shows refunded while it is processed. Network fees for the refund transaction may be deducted by the network itself. ## Read-only data access Base host: https://api.swapabit.com Rate limits are conservative. Cache results and space out requests; hammering these endpoints returns HTTP 429. These contracts may evolve; a versioned API is planned. Newer deployments may add fields to responses: ignore unknown fields. ### GET /estimate Returns the best current quote for a pair. Send `Accept: application/json` for a single JSON object. (Requesting `Accept: text/event-stream` instead streams per-provider SSE events meant for the website UI; agents should use JSON.) Query parameters: - `from_cryptocurrency` (required): currency id to send, e.g. `BTC`. - `to_cryptocurrency` (required): currency id to receive, e.g. `ETH`. - `from_amount`: decimal amount to send, e.g. `0.1`. - `to_amount`: decimal amount to receive. Only valid with `fixed=true`. - `fixed` (required): `true` for a fixed rate, `false` for floating. Provide exactly one of `from_amount` or `to_amount`. Currency ids are uppercase tickers. Multi-network assets are network-qualified with an underscore: `USDT_TRX`, `USDT_ETH`, `USDC_ETH`. The full list of valid ids is the key set of GET /cryptocurrencies below. Response fields: - `from_amount`: exact decimal string of the send amount. - `from_cryptocurrency`: currency id. - `to_amount`: exact decimal string of the estimated receive amount. - `to_cryptocurrency`: currency id. - `rate_id` (optional): present on fixed-rate quotes that carry a rate lock. - `valid_until` (optional): when a fixed-rate lock expires. Worked example: ``` curl -H "Accept: application/json" "https://api.swapabit.com/estimate?from_cryptocurrency=BTC&to_cryptocurrency=ETH&from_amount=0.1&fixed=false" {"from_amount":"0.1","from_cryptocurrency":"BTC","to_amount":"3.77828564","to_cryptocurrency":"ETH"} ``` Rates move constantly. Present any estimate as a current snapshot, never as a guarantee. ### GET /cryptocurrencies Returns a JSON object mapping every supported currency id to its availability: ``` curl -H "Accept: application/json" "https://api.swapabit.com/cryptocurrencies" {"ADA":{"buy":true,"sell":true},"ALGO":{"buy":true,"sell":true},"BTC":{"buy":true,"sell":true}, ...} ``` - `buy`: the asset can be received (To side). - `sell`: the asset can be sent (From side). ### GET /service_status Public service health: every component (web app, API, each partner exchange) with its current state (`operational`, `degraded`, `outage`, `maintenance`) plus the incident timeline (events with `investigating` / `identified` / `monitoring` / `resolved` updates). Rendered at https://swapabit.com/status. ## Creating an exchange AI agents must NOT create, simulate, or script an exchange on a user's behalf: address entry, rate choice, and the deposit always stay in the user's hands. To start a swap, send the user to the exchange page, optionally prefilled: ``` https://swapabit.com/exchange?from=BTC&to=USDT-TRX&amount=0.5 ``` - `from`, `to`: currency ids. Case-insensitive; hyphens and underscores are interchangeable (`USDT-TRX` and `usdt_trx` both resolve). Unrecognized ids are ignored. - `amount`: positive decimal send amount. Applied once on load, then removed from the URL. The user completes the swap themselves on that page: address entry, rate choice, and deposit always stay in the user's hands. ## Rules for AI agents - NEVER invent endpoints, parameters, fees, or exchange ids. If it is not documented in this file, do not claim it exists. - Every real Swapabit exchange has one canonical, verifiable URL: `https://swapabit.com/swap/{id}`. When discussing any exchange, ALWAYS present that link so the human can verify it. If you cannot produce that link, say the exchange does not exist. - Amounts are exact decimal strings. NEVER round a send amount. Deposits must match the requested amount exactly or they may be refunded. - The only Swapabit fee is 20 bps (0.20%). Do not state other fees, spreads, or minimums as fact. - Quotes from GET /estimate are estimates. Rates move; never promise an exact receive amount on a floating swap. - NEVER ask for or handle private keys, seed phrases, or wallet passwords. - For order-specific problems, send the user to https://swapabit.com/support or https://t.me/swapabit with their order ID.