Installs into .claude/skills of the current project.
Are you the author of Proposals?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/claude-dev-suite-proposals)
---
name: bitcoin-proposals
description: |
Soft-fork proposals NOT activated on mainnet: consensus cleanup
(BIP54), CTV (BIP119), the BIP448 rebindable-transaction bundle
(BIP446/348/349), APO/APOAS (BIP118), OP_CHECKCONTRACTVERIFY
(BIP443), OP_CAT (BIP347), the 2026 script/covenant BIP cluster
(BIP440-443, 446, 448, 449), post-quantum proposals (BIP360/361),
drivechains (BIP300/301), spacechains, CISA. Status, mechanics,
controversy per proposal.
USE WHEN: discussing covenants, evaluating L2 design that depends on
unactivated opcodes, understanding the soft-fork pipeline.
allowed-tools: Read, Grep, Glob
---
# Bitcoin Soft-Fork Proposals
These are **not consensus-active on mainnet**. Some are deployed on
signet (custom signets) or testnet for experimentation. Be explicit
when reasoning: never present these as "Bitcoin" features without
naming the proposal status.
Statuses below are as of **September 2026** and cite the BIPs repo
index, which moved to BIP-3 status semantics (Draft / Complete /
Deployed / Closed). "Complete" means the authors finished the spec
and recommend adoption; it does **not** mean activated.
## BIP54 - Consensus Cleanup
The most advanced soft-fork proposal in the pipeline, and the only
non-covenant one here. Authors Antoine Poinsot and Matt Corallo;
assigned 2025-04-11; **Status: Complete** since version 1.0.0
(2026-05-22). Four narrow restrictions on 2009-era defects:
| Defect | New rule |
|--------|----------|
| Timewarp (off-by-one at retarget) | Timestamp floors at period edges |
| Worst-case block validation time | Legacy sigop cap of **2500** per tx |
| Merkle-tree ambiguity | **64-byte** transactions invalid |
| Duplicate txids / BIP30 | Coinbase `nLockTime` commits to height |
- **Timewarp**: for `N % 2016 == 0`, T_N >= T_{N-1} - 7200; for
`N % 2016 == 2015`, T_N >= T_{N-2015} (the Murch-Zawy clause).
- **Sigops**: legacy `CHECKSIG`/`CHECKMULTISIG` counted over scriptSig
+ prevout scriptPubKey + P2SH redeemScript with BIP16 accounting;
coinbase exempt.
- **64 bytes**: the *witness-stripped* serialized size, exactly 64.
Split out as its own spec, BIP53 (Draft).
- **Coinbase**: `nLockTime` must equal block height minus 1 and
`nSequence` must not be 0xffffffff.
All four tighten rules only, so the soft fork is backward-compatible
with non-upgraded nodes.
**Already shipped as policy, not consensus:**
- Bitcoin Core 30.0: "the maximum number of potentially executed
legacy signature operations in a single standard transaction is now
limited to 2500" (PR #32521), explicitly "to prepare for a possible
BIP54 deployment".
- Bitcoin Core 0.16.1 and later already refuse to relay or template
64-byte witness-stripped transactions.
- Bitcoin Core 29.0 and later will not template a block violating the
new timestamp rules; PR #35949 (merged 2026-09-07) extended
`getblocktemplate` to adjust both `mintime` and `curtime` for the
Murch-Zawy end-of-period rule, on **all** networks. Consensus
validation is unchanged.
**Status (September 2026)**: spec Complete, no activation parameters
chosen. Core PR #35793 "Implement BIP 54 (Consensus Cleanup) without
mainnet activation" is open and unmerged. Bitcoin Inquisition carries
an implementation for signet (Optech, 2026-02-13); a slow-block
demonstration ran on signet (Optech, 2026-05-01); a draft BIP would
activate BIP54 from block 1 on testnet5 (Optech, 2026-06-12).
**Pool readiness**: pools have been emitting forward-compatible
coinbase transactions (`nLockTime = height - 1`) since February 2026.
mainnet-observer's per-pool table (fetched 2026-09-15) records
WhitePool first at block 937,404 (2026-02-19), then MARA Pool at
940,548 (2026-03-13), ViaBTC at 949,094 (2026-05-12) and Foundry USA
at 952,880 (2026-06-08), plus Solo CK and CKPool. Between 33% and 49%
of coinbase transactions per day carried a BIP54 locktime over
2026-09-01..15. This is readiness, *not* BIP9 signaling, and cannot
lock in a soft fork. F2Pool still uses coinbase `nLockTime` for job
metadata; Poinsot reported (BNOC, 2026-02-23) that it does not intend
to change until BIP54 is further along toward activation.
## Covenants in general
A covenant restricts how an output may be re-spent (where the funds
go, in what shape, with what conditions). Existing scripts can
restrict **who** spends; covenants restrict **how**.
Use cases:
- **Vaults** — cooldown period before final spend; recoverable from
cold key.
- **Congestion control** — pre-commit to a tree of payments.
- **L2 protocols** — Ark, Spacechains, CoinPool depend on covenants.
## CTV — `OP_CHECKTEMPLATEVERIFY` (BIP119)
```
<TemplateHash> OP_CTV
```
Forces the tx to match a pre-committed template:
- Output set, amount, scriptPubKeys.
- Number of inputs (but NOT specific prevouts).
- Locktime, sequence values.
Template-hash is committed on-chain → spending tx must produce the
exact set of outputs.
**Status (September 2026)**: BIP119 assigned 2020-01-06, still
**Draft** in the BIPs repo. Active on **signet** for testing
(specifically the "CTV signet"), and on the default signet via
Bitcoin Inquisition.
There is now a concrete - but entirely third-party - activation path,
so "no activation path" is no longer accurate:
- A June 2025 open letter (ctv-csfs.com) signed by dozens of
application and protocol developers asked Core contributors to
prioritise CTV (PR #31989) and CSFS (PR #32247) within six months.
Both PRs are still **open and unmerged** as of September 2026, and
both are titled "(regtest only)".
- A separate activation client (github.com/ctv-activation/
activation-client, announced on Delving Bitcoin 2026-02-09) deploys
BIP119 via **BIP9 on bit 5**: `nStartTime` 2026-03-30, `nTimeout`
2027-03-30, `threshold` 1815/2016 (90%), `min_activation_height`
1001952 (~May 2027). This is not Bitcoin Core.
- Miner signaling has been **flat at 0.00%**: bip119monitor.com shows
every completed difficulty period from 466 through 478 at 0 of 2016
blocks, and period 479 at 0.00% as of 2026-09-15.
Competing designs: BIP446 `OP_TEMPLATEHASH` (Draft) covers the same
"commit to the spending transaction" ground inside the BIP448 bundle
below, and BIP443 `OP_CHECKCONTRACTVERIFY` is a more general
deferred-check covenant.
**Use cases**: vaults, payment pools, congestion control, simple Ark
variants.
## SIGHASH_ANYPREVOUT — APO / APOAS (BIP118)
New SIGHASH flag. Sig commits to script + value but **not** to
specific prevout txid:vout.
```
APO sighash (commits to scriptPubKey, not txid)
APOAS sighash variant (also doesn't commit to script — even more permissive)
```
Original use case: **Eltoo** — Lightning channel update protocol that
replaces commitment-tx penalty with simple state replacement.
**Status (September 2026)**: BIP118 assigned 2017-02-28, still
**Draft**; no mainnet activation, signet only via Bitcoin Inquisition
(binana `[2016, 118, 0]`, deployment `ANYPREVOUT`). Treat it as the
*historical* route to eltoo: the mainstream route is now BIP448's
Taproot-native rebindable signatures (below), which reach the same
LN-Symmetry semantics without a new sighash flag or key version.
BIP118 has not been withdrawn or formally replaced, so do not call it
dead - but do not present it as the live eltoo path either.
## BIP448 - Taproot-native (Re)bindable Transactions
Authors Gregory Sanders, Antoine Poinsot and Steven Roose; assigned
2026-03-11; **Status: Draft**. A deployment bundle of three tapscript
operations, each spec'd in its own BIP:
| BIP | Opcode | Redefines | Status |
|-----|--------|-----------|--------|
| 446 | `OP_TEMPLATEHASH` | `OP_SUCCESS206` (0xce) | Draft (assigned 2026-02-06) |
| 348 | `OP_CHECKSIGFROMSTACK` | `OP_SUCCESS204` (0xcc) | Draft (assigned 2024-11-26) |
| 349 | `OP_INTERNALKEY` | `OP_SUCCESS203` (0xcb) | Draft (assigned 2024-11-14) |
`OP_TEMPLATEHASH` pushes a hash of the spending transaction onto the
stack rather than taking a commitment as an argument, so it composes
with other opcodes where CTV does not. `OP_CHECKSIGFROMSTACK` gives
BIP340 verification over arbitrary messages (delegation, oracle
attestations). `OP_INTERNALKEY` pushes the Taproot internal key, an
8-vbyte optimisation for rebindable signatures.
BIP448's stated motivation: together these "enable rebindable
transaction signatures, making possible a new type of payment
channel: LN-Symmetry ('Eltoo')", make multiparty channels practical,
enable the Daric 2-party channel simplification, "substantially
improve statechains", and reduce interactivity in the Ark variant
"Erk" and in PTLC upgrades. Deployment: "the specific activation is
left to be determined at a later date." A CTV+CSFS-flavoured variant
of this opcode set was previously proposed for activation as
"LNHANCE".
**Ecosystem as of September 2026** (Optech, 2026-09-04): a BIP448
GitHub organization aggregates implementations (Bitcoin Inquisition,
a Core patch without activation, miniscript and PSBT integration,
draft LN-Symmetry BOLTs plus a Core Lightning implementation, an Ark
`OP_TEMPLATEHASH` signet demo); covenants.diy is a browser tapscript
editor with selectable opcode sets; and a Covenants Use-Case Atlas
collects more than two dozen constructions. The full bundle is
expected on the default signet with the next Bitcoin Inquisition
release.
## OP_VAULT (BIP345)
Two-stage vault primitive:
- `OP_VAULT` output: spend to a "trigger" path (begins cooldown) or
recover path (immediate, to cold key).
- After cooldown, spend the trigger to actual destination.
Provides **first-class vault** semantics without complex script
gymnastics. Works in P2TR script-path.
**Status (September 2026)**: BIP345 is **Closed** with
`Proposed-Replacement: 443`. Under BIP-3, Closed means "of historical
interest only, and is not being actively worked on, promoted or in
active use". Read the OP_VAULT mechanics above as design history.
### Successor - `OP_CHECKCONTRACTVERIFY` (BIP443)
Salvatore Ingala; assigned 2025-05-08; **Status: Draft**. A single
general deferred-check opcode (`OP_CCV`) instead of a vault-specific
pair: a UTXO carries a dynamic commitment to a piece of data, the
script can introspect that data, and it can constrain the internal
public key, taptree and committed data of one or more outputs.
Combined with a vector-commitment opcode this composes into arbitrary
UTXO state machines, of which a vault is one instance. Also cited as
a way to make CTV-based receive addresses safer (Optech,
2026-01-02).
## OP_CAT reactivation
Re-enable string concatenation in Tapscript. Disabled since 2010
genesis era (pulled due to DoS concerns, since obsoleted by stack-item
size limits).
Why people want it:
- **Verifiable computation** — constructs proofs/scripts via concatenation.
- **Quantum-resistant signature** schemes (Lamport / Winternitz one-time).
- **BitVM2** — simplified bridge construction.
- **Recursive covenants** with limited branching.
**Status (September 2026)**: this is **BIP347, "OP_CAT in
Tapscript"** (Ethan Heilman, Armin Sabouri), assigned 2023-12-11,
version 1.0.0, **Status: Complete** - spec finished and recommended
for adoption, with no mainnet activation; it is available on the
default signet via Bitcoin Inquisition. It redefines
`OP_SUCCESS126` (0x7e, the original OP_CAT opcode value) in tapscript
only, and fails if the concatenated result would exceed the 520-byte
element limit.
## Drivechains — BIP300 / BIP301
Sidechains pegged with miner-validated locks:
- BIP300 — hashrate escrow with deposit/withdraw tx types.
- BIP301 — blind merge mining.
Allows trustless-of-miner-majority sidechains. Critique: trusts miners
implicitly with all sidechain funds.
**Status (September 2026)**: BIP300 and BIP301 are both still
**Draft**, with no Bitcoin mainnet soft-fork activation and no
activation parameters. **LayerTwo Labs** runs testnet drivechains and
maintains `bip300301_enforcer`, "CUSF software enforcing BIP300 and
BIP301 rules" - a client-side user soft fork enforcement path that
does not require a Bitcoin-wide deployment - plus
`cusf-enforcer-mempool`, which patches `getblocktemplate` to mine
CUSF-compliant blocks.
Beyond Bitcoin, LayerTwo Labs stopped waiting for a soft fork: Paul
Sztorc announced an **"eCash" hard fork** of Bitcoin targeting block
964,000 (August 2026), with a one-time minimum-difficulty reset, a
1:1 airdrop to BTC holders and BIP300/301 drivechains enabled from
day one. It is heavily contested because the plan also describes a
partial reassignment of coins for development or community incentives
(Bitcoin.com News, 2026-06-22). That chain is **not Bitcoin**: a
drivechain running there says nothing about BIP300/301's status on
Bitcoin mainnet.
## Spacechains (Ruben Somsen)
Sidechain idea using `OP_CAT` (BIP347) + `OP_CHECKSIGFROMSTACK`
(BIP348, also unactivated) to enable arbitrary-script verification
without explicit miner support.
**Status**: Concept. Not a formal BIP.
## Cross-Input Signature Aggregation (CISA)
Aggregate all signatures in a transaction into a single signature.
Massive witness savings (n inputs → 1 sig instead of n sigs). Active
research; not yet a deployable proposal.
As of September 2026 CISA is rarely discussed standalone: the live
question is whether to bundle it with a post-quantum output type.
Pieter Wuille put the maximum weight reduction at about 28%, and only
for transactions with many inputs, argued wallet and custodian
support is the real bottleneck, and warned that bundling would delay
a P2TRv2 soft fork; Adam Gibson agreed. Conduition argued pairing
CISA with P2TRv2 would strongly incentivise migration, and that a
CISA-supporting output type can ship first with ordinary BIP340
signatures and gain aggregation later (Optech, 2026-09-04).
## Post-quantum proposals
Post-quantum work is now a dominant consensus-track discussion and
covers far more than signature schemes.
| Proposal | What it is | Status |
|----------|------------|--------|
| **BIP360** | Pay-to-Merkle-Root output type | Draft (v0.12.1) |
| **BIP361** | PQ migration / legacy signature sunset | Draft, Informational |
| **P2TRv2** | Candidate PQC output type, not a BIP | Under discussion |
| **SHRINCS** | Semi-stateful hash-based signatures | Draft spec, no BIP |
| **DropKick** | Commit/reveal rescue for stranded coins | Sketch |
- **BIP360** "Pay-to-Merkle-Root (P2MR)": a P2TR-like output type with
the key path spend removed, so no EC point is exposed. Hunter Beast,
Ethan Heilman, Isabel Foxen Duke; assigned 2024-12-18. Scoped to
long-exposure resistance; PQ signatures are a separate proposal.
- **BIP361** "Post Quantum Migration and Legacy Signature Sunset":
Phase A disallows sending to quantum-vulnerable addresses; Phase B
encumbers ECDSA/Schnorr spends with a quantum-safe rescue protocol
on a well-publicized flag day five years after activation. Jameson
Lopp et al.; assigned 2026-02-11, published 2026-04-24.
- **P2TRv2**: positioned by Wuille as the default for casual users,
with P2MR for sophisticated users who want to hide EC points.
- **SHRINCS**: 48-byte pubkeys, 548-byte stateful signatures at the
smallest, 5,777-byte stateless fallback, 2^40 stateless signature
budget. First draft posted 2026-09-04, alongside `libshrincs` with
machine-checked WOTS+C proofs. A signature scheme only - deployment
would be a separate proposal.
- **DropKick**: commit/reveal rescue for coins not moved to PQC
outputs by Q-day, deployable as a non-confiscatory soft fork only if
it encumbers UTXOs with decidable knowledge asymmetries. Conduition,
2026-09-04.
Also live: a proposed segwit commitment to post-quantum witness data
(Optech, 2026-08-07) and a post-quantum path for BIP324 P2P transport
encryption (Optech, 2026-06-05).
Reusing a SHRINCS stateful counter lets an observer forge signatures;
Antoine Riard noted 5,777-byte stateless signatures would be roughly
90x today's onchain cost absent a witness discount. None of these is
activated, numbered as a consensus deployment, or scheduled.
## The 2026 script / covenant BIP cluster
Any engineer reasoning about Bitcoin covenants today will run into
these. All **Draft**, none deployed, as of September 2026:
| BIP | Title | Author(s) |
|-----|-------|-----------|
| 440 | Varops Budget For Script Runtime Constraint | Russell, Moik |
| 441 | Restoration of disabled script (Tapleaf 0xC2) | Russell, Moik |
| 442 | OP_PAIRCOMMIT | moonsettler, Brandon Black |
| 443 | OP_CHECKCONTRACTVERIFY | Salvatore Ingala |
| 446 | OP_TEMPLATEHASH | Sanders, Poinsot, Roose |
| 448 | Taproot-native (Re)bindable Transactions | Sanders, Poinsot, Roose |
| 449 | OP_TWEAKADD - x-only key tweak addition | Jeremy Rubin |
- 440 and 441 are Rusty Russell and Julian Moik's "Great Script
Restoration", both assigned 2026-03-25; 441 requires 440.
- 442 is a vector-commitment primitive; 443 is the proposed
replacement for BIP345; 446 is bundled by BIP448, which bundles
446 + 348 + 349.
- The range is not contiguous: there are no BIP444, 445 or 447 rows
in the BIPs index.
Alongside them, BIP53 "Disallow 64-byte transactions" (Chris Stewart,
Draft) is the standalone spec for one of BIP54's four fixes.
## Status terminology
BIP-3 replaced the older BIP-2 status set. Current statuses:
| Status | Meaning |
|--------|---------|
| **Draft** | In the BIPs repo, work ongoing |
| **Complete** | Planned work concluded; adoption recommended |
| **Deployed** | Evidence of active use; for a soft fork, activated |
| **Closed** | Of historical interest only; not worked on or in use |
A Specification BIP needs a reference implementation and
comprehensive test vectors before it can move to Complete.
The BIP-2 names still appear in secondary sources and in this
corpus's older material. BIP-3 renamed **Proposed** to `Complete`,
folded **Deferred, Obsolete, Rejected, Replaced** and **Withdrawn**
into `Closed`, and **Final** and **Active** into `Deployed`. Older
material in this corpus that says "Proposed" means `Complete`. A
Closed BIP may carry a `Proposed-Replacement: <n>` header naming its
successor (BIP345 does, pointing at 443).
For consensus changes, `Deployed` requires a successful soft-fork
deployment — never assume it from `Complete`. BIP54 and BIP347 are
both Complete and neither is active on mainnet.
## Common pitfalls
- Reasoning about a protocol that **depends** on CTV/APO/OP_CAT as if
those were already active. Always name the dependency explicitly.
- Citing drivechain TVL or activity → likely on a private testnet or
on LayerTwo Labs' forked "eCash" chain, not Bitcoin mainnet.
- Reading "Status: Complete" as "activated". Under BIP-3 it only means
the authors finished the spec (BIP54, BIP347).
- Citing miner signaling for CTV as evidence of momentum: the
third-party BIP9 bit-5 deployment has been at 0.00% since it began.
- Confusing forward-compatible coinbase construction (BIP54
`nLockTime = height - 1`) with BIP9 signaling. They are different
things and only the latter can lock in a soft fork.
- Presenting BIP118/APO as the current eltoo route. Since March 2026
the active proposal is BIP448.
- Confusing **signet** activation (custom signet challenge that includes
the proposed opcode) with mainnet activation.
## See also
- [consensus/SKILL.md](../consensus/SKILL.md) - BIP54 touches block
validation, merkle roots and BIP30
- [bips/SKILL.md](../bips/SKILL.md) - BIP numbering and status index
- [scripts/SKILL.md](../scripts/SKILL.md) - opcode allocations the
BIP448 bundle redefines
- [../../mining/pool-architectures/SKILL.md](../../mining/pool-architectures/SKILL.md)
- coinbase construction, which BIP54 constrains
- [../../lightning/channels/SKILL.md](../../lightning/channels/SKILL.md)
- LN-Symmetry depends on BIP448
- [../../l2/statechains/SKILL.md](../../l2/statechains/SKILL.md) -
BIP448 cites statechain improvement as motivation
- [../../l2/drivechains-spacechains/SKILL.md](../../l2/drivechains-spacechains/SKILL.md)
- [../../l2/ark/SKILL.md](../../l2/ark/SKILL.md)
- [../../l2/bitvm/SKILL.md](../../l2/bitvm/SKILL.md)
- [../../cryptography/schnorr/SKILL.md](../../cryptography/schnorr/SKILL.md)
- the signature scheme the post-quantum work would replace