Skip to content

Testnet, Signet & Regtest

You should never learn Bitcoin’s moving parts with real money on the line. Bitcoin ships with three test networks — parallel chains with worthless coins — precisely so you can generate blocks, craft transactions, and make every beginner mistake safely. Picking the right one is the difference between fighting a flaky public network and having instant, total control.

NetworkWho controls blocksBest for
regtestYou — you mine on demandLocal development; instant, deterministic testing
signetA central signer (predictable)Realistic multi-party testing without chaos
testnetPublic miners (anyone)Final dress rehearsal against a real-ish public network

Regression test mode spins up a brand-new, empty blockchain that lives only on your machine. The superpower: you mine blocks whenever you want, instantly, for free. No waiting, no faucets, no other participants.

Terminal window
# start a private regtest node
bitcoind -regtest -daemon
# create a wallet and an address
bitcoin-cli -regtest createwallet "lab"
addr=$(bitcoin-cli -regtest getnewaddress)
# mine 101 blocks to that address — coinbase needs 100 confirmations to be spendable
bitcoin-cli -regtest generatetoaddress 101 "$addr"
# you now have spendable regtest coins
bitcoin-cli -regtest getbalance

Signet is a public test network where blocks are produced by a designated signer on a steady schedule, so it behaves predictably (no wild difficulty swings or block droughts). It’s the modern default for testing software that needs a shared network — multiple people, realistic timing — without testnet’s unreliability.

Terminal window
bitcoind -signet -daemon
bitcoin-cli -signet getblockchaininfo
# fund a signet address from a public signet faucet (search "signet faucet")

Testnet (currently testnet3/4) is the oldest public sandbox: open mining by anyone, which makes it realistically chaotic — erratic block times, occasional large reorgs, and coins that have drifted from “worthless” enough to attract spam. Useful as a final check against a fully permissionless network, but for day-to-day development regtest and signet are usually saner.

Terminal window
bitcoind -testnet -daemon
bitcoin-cli -testnet getblockchaininfo

Notice the pattern: every command takes a network flag (-regtest, -signet, -testnet), and mainnet is simply the absence of one. Each network uses different address prefixes and a different data directory, so you physically cannot mix up a testnet coin with a mainnet one — the encodings don’t match (see addresses & encoding).

mainnet address bc1q... / 1... / 3...
testnet/signet tb1q... / m... / n... / 2...
regtest bcrt1q...
  1. regtest first — mine blocks, watch the chain grow, build a transaction (see Build & Decode a Raw Transaction) with full control.
  2. signet next — repeat against a shared network with realistic timing and a faucet.
  3. testnet last — sanity-check against an open, unpredictable public chain before you ever touch mainnet.

How does this help untrusting strangers agree on one ledger? Test networks let you verify the rules for yourself — cheaply, repeatedly, destructively — instead of taking anyone’s word for how Bitcoin behaves. Mine a block on regtest and you’ve personally watched Proof of Work, the maturity rule, and validation play out. That hands-on verifiability is the same ethos that lets strangers trust the real network: don’t trust, run it yourself.

  1. Match each network to its block-production model: regtest, signet, testnet.
  2. On regtest, why do you typically mine 101 blocks before spending?
  3. Why can’t a testnet coin accidentally be spent on mainnet?
  4. Which network would you choose to test multi-party software on a realistic but predictable schedule, and why?
  5. Spin up regtest and mine yourself a spendable balance. What command shows it?