Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Testnet

ASecurity

Public mined test networks: testnet3 (deprecated), testnet4 (BIP94) and the testnet5 draft (BIP95). Chain selection, the 20-minute difficulty exception, block storms, and when to prefer signet. USE WHEN: picking a public test network, debugging testnet4 block behaviour, or tracking the testnet5 migration.

33 stars
0 votes
0 copies
0 views
Added 9/22/2026
ai-agentsrustgobashtestingdebugginggitapi

Works with

cliapi

Security Analysis

A100/100

Scanned 9/22/2026

$npx -y skills add claude-dev-suite/claude-dev-suite --skill testnet --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Testnet?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Testnet
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/claude-dev-suite-testnet/badge)](https://www.skillsdirectory.com/skills/claude-dev-suite-testnet)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: bitcoin-testing-testnet
description: |
  Public mined test networks: testnet3 (deprecated), testnet4 (BIP94)
  and the testnet5 draft (BIP95). Chain selection, the 20-minute
  difficulty exception, block storms, and when to prefer signet.
  USE WHEN: picking a public test network, debugging testnet4 block
  behaviour, or tracking the testnet5 migration.
allowed-tools: Read, Grep, Glob
---

# testnet

Bitcoin's *mined* public test networks. Regtest is local and you mine
it yourself; signet is public but its blocks are signed by a fixed
key. Testnet blocks are won by real proof of work from whoever shows
up — which is simultaneously the point of the network and its
recurring failure mode.

Three generations exist. As of September 2026: testnet3 is deprecated
but still shipped, testnet4 is the network you actually get, and
testnet5 is a draft BIP with no genesis block mined yet.

## Chain selection

Verified against Bitcoin Core master, September 2026
(`src/kernel/chainparams.cpp`, `src/chainparamsbase.cpp`,
`src/util/chaintype.cpp`):

| Network | Flag | Config section | datadir | p2p | RPC |
|---------|------|----------------|---------|-----|-----|
| testnet3 | `-testnet` | `[test]` | `testnet3` | 18333 | 18332 |
| testnet4 | `-testnet4` | `[testnet4]` | `testnet4` | 48333 | 48332 |
| signet | `-signet` | `[signet]` | `signet` | 38333 | 38332 |
| regtest | `-regtest` | `[regtest]` | `regtest` | 18444 | 18443 |

The bech32 HRP is `tb` on testnet3, testnet4 and signet alike, so an
address does not tell you which network it belongs to. Genesis blocks
differ, so UTXO sets are disjoint and transactions cannot be replayed
across them.

```bash
bitcoind -testnet4 -daemon
bitcoin-cli -testnet4 getblockchaininfo
```

## testnet3 (2011, deprecated)

Genesis dates to February 2011 (timestamp 1296688602). Years of block
storms (see below) burned through the subsidy schedule: the tip was
height 5,130,590 on 15 September 2026, i.e. past two dozen halvings,
so the coinbase reward is dust and faucets are chronically empty.

Bitcoin Core 28.0 (October 2024) deprecated it in the same release
that shipped testnet4. As of Core master in September 2026 the
deprecation is still only a warning — `src/init.cpp` logs:

```
Warning: Support for testnet3 is deprecated and will be removed in an
upcoming release. Consider switching to testnet4.
```

The RFC issue that decides the removal, bitcoin/bitcoin#31975 ("when
to drop testnet3"), is still open (last touched June 2026). Treat
testnet3 as working-today-but-doomed and migrate.

## testnet4 (BIP94)

BIP94 (Fabian Jahr), status **Deployed**, shipped in Core 28.0
(October 2024), selected with `-testnet4`.

All mainnet consensus rules active at the time of the proposal (2024)
are enforced from block 1 — taproot being the newest — plus three
testnet-specific rules:

1. **20-minute exception**, inherited from testnet3: a block whose
   timestamp is more than 20 minutes past its parent's MUST use
   `nBits = 0x1d00ffff` (difficulty 1), regardless of the real
   network difficulty. The first block of each difficulty period is
   exempt and MUST use the real difficulty.
2. **Block-storm fix**: difficulty retargeting takes its base value
   from the *first* block of the previous period, not the last. On
   testnet3 a min-difficulty last block pinned the next period's
   difficulty to 1-4, which is what let attackers author whole
   subsidy epochs in weeks.
3. **Time-warp prevention**: for a block at height ≡ 0 (mod 2016),
   `nTime` MUST be ≥ the previous block's `nTime` − 600 seconds.
   Without it, a time warp amplifies rule 1 from difficulty 4 down
   to difficulty 1.

Network parameters: message start `0x1c163f28` (randomly generated,
no meaning), genesis timestamp 1714777860 with coinbase message
`03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e`,
hashing to
`00000000da84f2bafbbc53dee25a72ae507ff4914b867c565be350b0da8bf043`.

### The exception is being exploited

BIP94 deliberately kept the 20-minute exception so CPU miners could
acquire coins and mine non-standard transactions. That has not held
up. Block storms are gone, but the exception is saturated: miners run
with the clock pushed forward and take the tip with difficulty-1
blocks, so the chain advances by propagation race rather than by
work, and small re-orgs are constant as exception blocks compete for
the same height.

Measured on 15 September 2026 via the mempool.space testnet4 API:
tip height 152,566; the retarget difficulty for the period beginning
at block 151,200 is ≈1.33 × 10⁹; yet 13 of the 15 blocks ending at
the tip were difficulty 1.

Anthony Towns' analysis on the bitcoin-dev list (June 2026) counted
192 real-difficulty against 1,824 min-difficulty blocks between
heights 135,072 and 137,087, i.e. roughly 90% of testnet4 blocks
confirmed without meaningful proof of work. The practical symptom
developers report is faucet transactions sitting unconfirmed for
30-60 minutes and then falling out of an almost-empty mempool.

bitcoin/bitcoin#31117 ("miner: Reorg Testnet4 minimum difficulty
blocks") proposes a mining-policy mitigation and is still open as of
September 2026.

## testnet5 (BIP95, draft)

BIP95 "Testnet 5", authors Pol Espinasa and Fabian Jahr, first
discussed on the bitcoin-dev list on 2 June 2026, assigned a number
on 22 June 2026 and merged into the BIPs repository as a draft on 25
June 2026. Status is **Draft** as of September 2026; it `Requires`
BIP54 and `Replaces` BIP94.

Three changes relative to testnet4:

- **No difficulty exception at all.** Any exception to the PoW rules
  is exploitable by a motivated attacker, so testnet5 drops the
  20-minute rule entirely and matches mainnet.
- **Higher minimum difficulty.** The PoW limit becomes `0x1a0fffff`
  in compact `nBits` encoding, a minimum difficulty of approximately
  1,000,000. This was rejected for testnet4 only because it would
  have blocked CPU miners from using the exception; with the
  exception gone, the argument lapses.
- **BIP54 (consensus cleanup) enforced from block 1.** Signet already
  enforces BIP54 via Bitcoin Inquisition, but signet cannot exercise
  a miner's own enforcement of those rules; testnet5 can.

Other parameters: message start `0x46495645` (ASCII `FIVE`), default
p2p port 18335. The genesis block is a TODO in the BIP — the values
printed there are testnet4 placeholders, and the intended `Pubkey` is
a recent mainnet block hash used as a provably-unspendable
anti-pre-mine commitment, with the coinbase `Message` left empty.

Patching testnet4 in place was considered and rejected: deploying a
change to a network whose attackers can disrupt the deployment is
slow, and anything beyond a band-aid would need a hard fork.

### Status of the implementation

bitcoin/bitcoin#35861 "Testnet 5 (BIP95)" (fjahr) has been open as a
**draft** since 1 August 2026. It is stacked on #35793 ("Implement
BIP 54 (Consensus Cleanup) without mainnet activation", darosior) and
per the PR description will not make the v32 feature freeze; the plan
is to settle review, mine a genesis block, start the network outside
a release, then ship a patched v32 with testnet5 included. As of
September 2026 there is no genesis block, no DNS seeds and no fixed
seeds, and `-testnet5` does not exist in Core master.

Do not plan on testnet5 for anything with a delivery date. Plan the
*migration* — if your software hardcodes chain parameters, the
testnet4 experience says you will be adding another set.

## Which network to pick

| Need | Use |
|------|-----|
| Deterministic unit/integration tests | regtest |
| Public peers, reliable 10-minute blocks | signet |
| Fast Lightning iteration | Mutinynet (custom signet) |
| Exercising real PoW / miner software | testnet4, with caveats |
| Testnet3 | only for legacy compatibility work |

Signet is the default recommendation for most development precisely
because it has no mining race to exploit: block production is
authorised by signature, so an attacker cannot flood the tip. Reach
for testnet4 when the thing under test *is* proof of work, difficulty
handling, or reorg behaviour — and expect the reorgs.

## Common pitfalls

- Assuming `-testnet` means testnet4. It does not; it is testnet3.
  The flag, the config section (`[test]`) and the datadir
  (`testnet3`) all disagree with each other, which is its own trap.
- Expecting a testnet3 wallet's coins to show up on testnet4. The
  genesis blocks differ, so the UTXO sets are disjoint and nothing
  replays across them.
- Trusting a `tb1...` address to identify a network. It does not.
- Writing tests that assume testnet4 confirms within N minutes.
  Confirmation there is currently unreliable; use signet or regtest
  for anything that must be deterministic.
- Treating a testnet4 block at difficulty 1 as a bug in your
  validation code. It is the 20-minute exception and it is valid.
- Hardcoding `0x1d00ffff` as "the testnet minimum". Testnet5 raises
  it to `0x1a0fffff`.

## See also

- [signet/SKILL.md](../signet/SKILL.md)
- [regtest/SKILL.md](../regtest/SKILL.md)
- [../core/operations/SKILL.md](../../core/operations/SKILL.md)
- BIP94: `https://github.com/bitcoin/bips/blob/master/bip-0094.mediawiki`
- BIP95: `https://github.com/bitcoin/bips/blob/master/bip-0095.md`

Attribution

claude-dev-suiteclaude-dev-suite
View sourceSee grades on GitHubMore from claude-dev-suite →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698461 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →