Tools/Explorers

Bitcoin Testnet vs Signet vs Regtest: Which Test Network to Use

Compare Bitcoin test networks for development: testnet4, signet, and regtest with use cases, setup instructions, and a decision framework.

Spark TeamInvalid Date

Bitcoin Test Networks Overview

Bitcoin developers have three test networks to choose from: testnet4 (the public proof-of-work test chain), signet (a centrally signed public chain), and regtest (a fully local private chain). Each serves a different stage of the development workflow, and picking the wrong one wastes time. Testnet4 replaced the original testnet3 after years of griefing attacks made it unreliable. Signet was introduced in Bitcoin Core v0.21.0 (January 2021) to provide predictable block times. Regtest has been available since Bitcoin Core's earliest versions for local, deterministic testing.

The following table summarizes the key differences. Each network is covered in detail below.

PropertyTestnet4SignetRegtest
Network typePublic, proof-of-workPublic, signed blocksLocal, on-demand blocks
Block production~10 min target (often irregular)~10 min (consistent)Instant (via RPC call)
Bitcoin Core versionv28.0+ (October 2024)v0.21.0+ (January 2021)All versions
Start flag-testnet4-signet-regtest
P2P port483333833318444
RPC port483323833218443
Address prefixtb1tb1bcrt1
Get coins viaFaucets, CPU miningFaucetsgeneratetoaddress RPC
Requires IBDYesYes (smaller chain)No
Consensus rulesMainnet rules (all soft forks active from genesis)Mainnet rules (all soft forks active from genesis)Mainnet rules (configurable activation)

Testnet4: The Public Proof-of-Work Test Chain

Testnet4 (defined in BIP-94) launched on May 3, 2024 and shipped with Bitcoin Core v28.0 in October 2024. It was created to replace testnet3, which had become unusable due to a difficulty manipulation exploit. All mainnet soft forks including SegWit and Taproot are active from block 0.

What testnet4 fixed

Testnet3's critical flaw was in its difficulty adjustment logic. The 20-minute minimum difficulty exception (which lets anyone CPU-mine a block if no block appears for 20 minutes) applied to the last block of a difficulty period. This caused the next period's difficulty to recalculate based on an artificially easy block, dropping the entire network difficulty to near-zero. In early 2024, Jameson Lopp demonstrated this by generating over 165,000 blocks (roughly three years' worth) in a single week at minimal cost.

Testnet4 addresses this with two changes: the difficulty adjustment now uses the first block of the previous period (not the last) for its calculation, and period-opening blocks (height % 2016 == 0) cannot have timestamps more than 600 seconds before the prior block's timestamp, preventing time-warp attacks.

Current limitations

Testnet4 retained the 20-minute minimum difficulty exception to let developers CPU-mine coins. In practice, this exception is being exploited: a large majority of blocks are mined at minimum difficulty by CPU miners sending empty blocks. Real transactions only confirm on the remaining ASIC-mined blocks, which can mean waits of an hour or more. Proposals to disable the minimum difficulty exception via a soft fork are under discussion in the Bitcoin Core repository. For applications that need predictable confirmation times, signet is a better choice.

Signet: The Reliable Public Test Network

Signet (defined in BIP-325) replaces proof-of-work with block signing. Instead of miners competing to solve hash puzzles, an authorized signer produces blocks on a predictable schedule. The default signet is controlled by a 1-of-2 multisig between Kalle Alm and AJ Towns, two Bitcoin Core contributors.

Because block production is controlled, signet delivers consistent ~10 minute block intervals without the difficulty manipulation, block storms, or empty-block spam that plague testnet4. Signet coins have no market value (centralized issuance prevents speculation), so faucets work reliably.

Custom signets

Any team can run a private signet with its own challenge script using the -signetchallenge flag. This is useful for organizations that want a shared, controlled test environment without relying on the default signet's operators. Custom signets can also trigger controlled reorgs for testing chain reorganization handling.

Signet coins are available from faucets or via the contrib/signet/getcoins.sh script included in the Bitcoin Core source tree. For a list of working faucets, see our Bitcoin testnet faucet guide.

Regtest: The Local Development Chain

Regtest (regression test mode) is a fully local blockchain with no network peers. You control exactly when blocks are created by calling the generatetoaddress RPC command. Blocks appear instantly, there is no initial block download, and you can reset the entire chain by deleting the regtest/ data directory.

Regtest is the only test network suitable for CI/CD pipelines and automated test suites. It starts in seconds, requires no internet connection, and produces deterministic results. The block reward starts at 50 BTC and coinbase outputs require 100 confirmations before they are spendable, so most test setups begin by mining 101 blocks.

Developers building on Lightning channels or other layer-2 protocols typically start with regtest for rapid iteration, then move to signet for integration testing against a public network with realistic block times.

When to Use Each Network

The right test network depends on what you are building and which stage of development you are in. Here is a decision framework:

Development StageBest NetworkWhy
Unit testing and TDDRegtestInstant blocks, deterministic, no network dependency
CI/CD pipelinesRegtestStarts in seconds, fully reproducible, works offline
Lightning Network developmentRegtest (local) or Signet (public)Regtest for fast channel open/close; signet for multi-party testing
Wallet integration testingSignetStable block times, public infrastructure, reliable faucets
Protocol testing with realistic timingSignetConsistent 10-minute blocks match mainnet behavior
Multi-party or cross-organization testingSignet or Testnet4Public network; signet preferred for reliability
Testing under adversarial conditionsTestnet4Real PoW with unpredictable block times mimics worst-case scenarios
Faucet-dependent public demosSignetCoins freely available with no market value pressure

Most professional Bitcoin development workflows use regtest for local development and automated testing, then signet for staging and integration testing. Testnet4 is best reserved for scenarios that specifically require a proof-of-work environment.

Setup Instructions

All three networks are built into Bitcoin Core. No additional software is needed. The following commands assume Bitcoin Core v28.0 or later is installed.

Starting testnet4

Launch the daemon with the -testnet4 flag. Data is stored in a testnet4/ subdirectory of your Bitcoin data directory. You will need to wait for initial block download to complete before the node is usable.

bitcoind -testnet4 -daemon

Starting signet

The -signet flag connects to the default signet. The chain is smaller than testnet4, so IBD completes faster.

bitcoind -signet -daemon

Starting regtest

Regtest starts immediately with no sync. Create a wallet and mine 101 blocks to have spendable coins:

bitcoind -regtest -daemon
bitcoin-cli -regtest createwallet "dev"
bitcoin-cli -regtest generatetoaddress 101 $(bitcoin-cli -regtest getnewaddress)

Testnet3: Deprecated but Not Yet Removed

Testnet3 was deprecated in Bitcoin Core v28.0 when testnet4 was introduced. The chain remains technically operational, but service providers are dropping support: block explorers and faucets are migrating to testnet4 and signet. If you have existing infrastructure on testnet3, plan to migrate to testnet4 or signet. New projects should not use testnet3.

Test Network Tooling and Infrastructure

The availability of block explorers, faucets, and API services varies across test networks. Regtest has no public infrastructure by design (you run everything locally). Signet and testnet4 both have growing ecosystems.

  • Block explorers: Mempool.space supports both testnet4 and signet
  • Faucets: both testnet4 and signet have working faucets (see our faucet guide for current links)
  • Wallet SDKs: most Bitcoin development libraries support all three networks via configuration (see the wallet SDK comparison for details)
  • Lightning: LND, CLN, and LDK all support regtest and signet for Lightning channel testing

Developers building on Bitcoin layer-2 protocols like Spark often use regtest for local development and signet for pre-production testing, as these environments provide the deterministic behavior needed for protocol-level validation.

Frequently Asked Questions

What happened to Bitcoin testnet3?

Testnet3 suffered from a difficulty manipulation vulnerability that allowed attackers to trigger "block storms" of thousands of blocks per day at minimal cost. In early 2024, a public demonstration generated over 165,000 blocks in one week, making nodes unable to sync. Bitcoin Core v28.0 (October 2024) deprecated testnet3 and introduced testnet4 as a replacement with fixes for the difficulty exploit.

Is Bitcoin testnet4 reliable for development?

Testnet4 is more reliable than testnet3 but still has issues. The retained 20-minute minimum difficulty exception means CPU miners can produce empty blocks at low difficulty, which causes irregular confirmation times for real transactions. For applications that need predictable block times, signet is more reliable. Testnet4 is best suited for scenarios that specifically require a public proof-of-work chain.

How do I get testnet or signet coins?

For testnet4, use faucets like the one at mempool.space/testnet4/faucet, or CPU-mine blocks using Bitcoin Core's built-in miner. For signet, use signet faucets or the getcoins.sh script in Bitcoin Core's contrib/signet/ directory. For regtest, simply mine blocks locally using the generatetoaddress RPC command: no faucet needed.

Can I use regtest for Lightning Network testing?

Yes. Regtest is the standard environment for Lightning development. LND, Core Lightning, and LDK all support regtest mode. You can open and close channels instantly, simulate payment routing, and test failure scenarios without waiting for real block confirmations. Most Lightning development tutorials and CI/CD test suites use regtest for this reason.

What is the difference between signet and testnet4?

Testnet4 uses real proof-of-work mining with a public, permissionless set of miners. Block times are unpredictable, and the chain is subject to empty-block spam from CPU miners exploiting the minimum difficulty rule. Signet uses authorized block signers (currently two Bitcoin Core contributors) to produce blocks on a consistent ~10 minute schedule. The tradeoff: signet is centralized by design, while testnet4 more closely mimics mainnet's adversarial mining environment.

Should I use testnet3 or testnet4 for new projects?

Always use testnet4. Testnet3 was deprecated in Bitcoin Core v28.0 and service providers are dropping support. Testnet4 fixes the difficulty manipulation vulnerability and has active faucets, block explorers, and API services. Better yet, consider signet if you need reliable block times, or regtest if you need local, instant testing.

How do I run a custom signet?

Generate a key pair, create a challenge script (such as a Bitcoin script requiring your public key), and start Bitcoin Core with -signet -signetchallenge=<hex>. Other participants connect to your node using -signetseednode. The Bitcoin Core source includes a contrib/signet/miner tool for producing signed blocks. Custom signets are useful for organizational testing environments where you want full control over block production.

For more on Bitcoin development tooling, see our Bitcoin for developers guide and the Bitcoin development tools landscape.

This tool is for informational purposes only and does not constitute financial advice. Technical details are based on publicly available Bitcoin Core documentation and BIP specifications. Software versions, network parameters, and tooling availability change over time. Always consult the official Bitcoin Core release notes for the most current information.

Build with Spark

Integrate bitcoin, Lightning, and stablecoins into your app with a few lines of code.

Read the docs →