# Testnet

Also written test network, sandbox environment.

*https://cryptomarkets.tools/glossary/testnet · next to Crypto Trading Bots & Execution SDKs*

**Definition:** A separate copy of a venue or a chain, reached at its own address with its own keys, where the assets are virtual and nothing settles for real. On an exchange it is a clone of the trading API whose orders match only against other test orders; on a blockchain it is a second network with worthless tokens. Neither tells you how an order would have filled on the live book.

Bot and connector cards in this catalogue use "testnet", "sandbox", "demo" and "paper" as if they
were one feature. They are four, and only one of them puts an order in front of real prices.

## How it works

**An exchange testnet is the same API at a different URL.** CCXT's manual describes a sandboxed
API as "a clone of a production API, so, it's literally the same API, except for the URL to the
exchange server". Its switch, `setSandboxMode(true)`, has to be the first call after creating the
exchange object, and the manual warns in bold that "Sandbox keys are not interchangeable with
production keys". Every testnet is its own sign-up. Binance's Spot Test Network hands out keys
against a GitHub login, credits every new account with a balance in many assets, allows only the
`/api` endpoints, and is "periodically reset to a blank state" — roughly monthly, with no prior
notice. The funds are virtual and cannot be moved in or out.

**A demo account is not a testnet.** Bybit runs both, and its documentation keeps them apart:
demo trading is "an independent account" opened from a mainnet login, at `api-demo.bybit.com`,
whose public data "is identical to that found on mainnet". It is "meaningless", the same page
says, to use demo trading on the testnet site. Demo orders are kept for seven days, the rate limit
is the default and cannot be raised, and not every endpoint is available.

**A chain testnet is a second network.** Solana publishes separate devnet and testnet clusters
beside mainnet, each with its own RPC endpoint. On-chain venues inherit this: Hyperliquid's
testnet is its own deployment with its own app and API host, and its faucet gives 1,000 mock USDC
only to users who have already deposited on mainnet. The tokens are worthless, which is the point,
and so is every price quoted in them.

**Paper trading is none of these.** It is a simulator on your side — the bot pretends to fill
orders against live prices and never sends them. Nothing reaches the venue, so nothing about the
venue's own behaviour is tested.

## Why it matters here

**A testnet proves the plumbing, not the fills.** An order on a testnet matches against other
virtual orders from other people testing their code. It tells you that your keys sign, that your
order parameters are accepted, that your error handling survives a rejection and that your
position tracking agrees with the venue's. It tells you nothing about queue position, depth or
[slippage](https://cryptomarkets.tools/glossary/slippage) on the live book, because the live book was never involved. A
strategy that looks profitable on a testnet has been measured against a market that does not
exist. A demo account that reads mainnet prices is closer, and its fills still have no
counterparty with real money on the other side.

**"Live trading on testnets only" is a real restriction.** [Jesse](https://cryptomarkets.tools/tools/jesse)'s free plan
limits the exchanges you may trade to testnets, with paper trading switched off. That is a
working rehearsal environment for the integration, and it is not a way to run a strategy for
money; price the paid plan against that.

**Support is uneven, and each card says where.** [CCXT](https://cryptomarkets.tools/tools/ccxt) raises `NotSupported` on any
exchange with no testnet, so the switch reports the gap rather than hiding it. The
[Hyperliquid SDK](https://cryptomarkets.tools/tools/hyperliquid-python-sdk) ships the testnet URL as a constant and its
examples use it by default. [dYdX's clients](https://cryptomarkets.tools/tools/dydx-v4-clients) ship testnet network
constants and a faucet address. [ccapi](https://cryptomarkets.tools/tools/ccapi) has no sandbox switch, so you override the
URL yourself. [Passivbot](https://cryptomarkets.tools/tools/passivbot) has no sandbox switch on any exchange adapter. Its
`fake` exchange is a regression fixture, and its own documentation says not to call it paper,
demo, sandbox or testnet trading. [Tealstreet](https://cryptomarkets.tools/tools/tealstreet) supports Bybit's demo mode and
calls testnets in general best-effort. [How to place an order on several
exchanges](https://cryptomarkets.tools/how-to/place-an-order-on-several-exchanges) lists the rest.

**Testnets break, and they reset.** Binance's monthly wipe means a test that depends on an open
order, a balance or a position from last week will fail for reasons that have nothing to do with
your code. An integration test suite pointed at a testnet needs to create its own starting state
every run.

**Read which of the four a vendor means.** A bot card that offers "paper trading" may be running
its own simulator, routing to the venue's testnet, or using a demo account on mainnet prices. The
three answer different questions, and the marketing page rarely says which it is.

## Where you will meet this

- [CCXT](https://cryptomarkets.tools/tools/ccxt.md)
- [Hyperliquid Python SDK](https://cryptomarkets.tools/tools/hyperliquid-python-sdk.md)
- [dYdX v4 Clients](https://cryptomarkets.tools/tools/dydx-v4-clients.md)
- [Jesse](https://cryptomarkets.tools/tools/jesse.md)
- [Passivbot](https://cryptomarkets.tools/tools/passivbot.md)
- [ccapi](https://cryptomarkets.tools/tools/ccapi.md)
- [Tealstreet](https://cryptomarkets.tools/tools/tealstreet.md)
- [Gunbot](https://cryptomarkets.tools/tools/gunbot.md)
- [Insilico Terminal](https://cryptomarkets.tools/tools/insilico-terminal.md)
- [Paradigm](https://cryptomarkets.tools/tools/paradigm.md)
- [QuantConnect Cloud](https://cryptomarkets.tools/tools/quantconnect-cloud.md)
- [SignalPlus](https://cryptomarkets.tools/tools/signalplus.md)

## Sources

1. [Manual — Testnets and sandbox environments](https://github.com/ccxt/ccxt/wiki/Manual) — CCXT, read 2026-09-27
2. [Spot Test Network](https://testnet.binance.vision/) — Binance, read 2026-09-27
3. [Demo trading service](https://bybit-exchange.github.io/docs/v5/demo) — Bybit, read 2026-09-27
4. [Testnet faucet](https://hyperliquid.gitbook.io/hyperliquid-docs/onboarding/testnet-faucet) — Hyperliquid, read 2026-09-27
5. [Solana clusters and public RPC endpoints](https://solana.com/docs/references/clusters) — Solana Foundation, read 2026-09-27

*Last updated 2026-09-27. A reference page, corrected in place — not a dated post.*
