← Back
Collection

BIPs — Open

Proposals currently under discussion.

Curated by pk:bip-mirror·46 specs
BIPinformationalOpen PRwallettransactions

New BIP: Deterministic Satoshi Indexing

This BIP proposes a deterministic scheme for assigning serial numbers to satoshis and tracking their movement across transactions. The goal is to provide a consistent and reproducible method that independent implementations can use to identify and track individual sats. The proposal does not require any changes to Bitcoin consensus rules, transaction formats or network behavior. Implementations of this scheme have been in use on mainnet, signet, and testnet, including wallets with sat-level co

No reviews
pk:bip-mirror·Mar 28, 2026
BIPs — Open
BIPinformationalOpen PRprivacypsbt

BIP376: Spending Silent Payment outputs with PSBTs

**Abstract** This document proposes an additional per input field for BIP 370 PSBTv2 that allows BIP 352 silent payment tweaks to be included in a PSBT of version 2. This field will be relevant to silent payment outputs spending. _Mailing list discussion_: https://groups.google.com/g/bitcoindev/c/Kap7NMwzl2k _Delving bitcoin discussion_: https://delvingbitcoin.org/t/bip352-psbt-support/877/32

No reviews
pk:bip-mirror·Mar 27, 2026
BIPs — Open
BIPinformationalOpen PRwallet

Bip draft: Wallet Backup Metadata Format

This is a bip for encrypted backup, an encryption scheme for bitcoin wallet related metadata. Mailing list post: https://groups.google.com/g/bitcoindev/c/ylPeOnEIhO8

No reviews
pk:bip-mirror·Mar 27, 2026
BIPs — Open
BIPinformationalOpen PRwallet

Bip draft: Bitcoin Encrypted Backup

This is a bip for encrypted backup, an encryption scheme for bitcoin wallet related metadata. Mailing list post: https://groups.google.com/g/bitcoindev/c/5NgJbpVDgEc

2concept ack
pk:bip-mirror·Mar 27, 2026
BIPs — Open
BIPinformationalOpen PRscript

BIP440: Varops Budget for Script Runtime Constraint, BIP441: Restoration of disabled Script (tapleaf 0xc2)

The full revision history is available in a separate branch (https://github.com/rustyrussell/bips/tree/guilt/varops): this is a clean one to submit for merge.

No reviews
pk:bip-mirror·Mar 27, 2026
BIPs — Open
BIPinformationalOpen PRwalletkey-management

BIP85: add Nostr application

# BIP-85: the Nostr path Adds a dedicated BIP-85 application for deriving Nostr private keys a.k.a. `nsec`, with a structured `/{identity}'/{account}'` path supporting multiple unlinkable identities. ## Motivation Today there is no standardized BIP-85 path for Nostr key derivation: | Method | Path | Problem | |--------|------|---------| | BIP-85 HEX | `m/83696968'/128169'/32'/index'` | Not Nostr-specific, no identity structure | | BIP-85 mnemonic + NIP-06 | BIP-85 → 12 words → `m/44'/1237'/0

No reviews
pk:bip-mirror·Mar 26, 2026
BIPs — Open
BIPinformationalOpen PRpsbtaddresses

BIP 391: Binary Output Descriptors

A BIP 174 PSBT may contain an extended key for deriving input and output addresses. This document proposes an additional field for PSBTs to represent arbitrary BIP 380 output script descriptors. To support transfer of output descriptors outside signing flows, the proposal makes the unsigned transaction optional.

No reviews
pk:bip-mirror·Mar 26, 2026
BIPs — Open
BIPinformationalOpen PRwalletkey-management

BIP393: Output Script Descriptor Annotations

This BIP proposal follows from the discussion for BIP392 (#2047) in which it emerged that due to the resource-intensive scanning requirements of the protocol some metadata (for example the birthday block height) may be practically required for efficient recovery of wallet funds. However, this metadata is not technically required to determine the output scripts, and therefore deemed unsuitable for direct inclusion in an output descriptor. This may lead to a situation in future where a wallet back

1concept ack
pk:bip-mirror·Mar 25, 2026
BIPs — Open
BIPinformationalOpen PRkey-management

BIP Draft: Formosa — Themed mnemonic sentences for generating deterministic keys

Mnemonic *sentences* instead of words proposed as forwards- and backwards-compatible expansion to BIP39, itself as Bitcoin Improvement Proposal.

No reviews
pk:bip-mirror·Mar 25, 2026
BIPs — Open
BIPinformationalOpen PRprivacypsbt

BIP375: Add test vectors + validator

This PR provides `bip-0375/bip375_test_vectors.json` and a reference `bip-0375/validator/validate_psbt.py` for validating Sending Silent Payments with PSBTs. PSBTs are validated against v2 requirements with BIP-375 rules (building on BIP-352 silent payment derivation and BIP-374 DLEQ proofs). Changes since last force-push: - Add vendored dependencies in `bip-0375/deps`: - `secp256k1lab` (ECC operations) - `bitcoin_test` (PSBT parsing adapted from Bitcoin Core test framework) - Implement 4-st

No reviews
pk:bip-mirror·Mar 25, 2026
BIPs — Open
BIPinformationalOpen PRopcodes

BIP449: OP_TWEAKADD

Opening this PR for feedback & discussion on the specification for OP_TWEAKADD. Mailing list post: https://groups.google.com/g/bitcoindev/c/-_geIB25zrg

No reviews
pk:bip-mirror·Mar 24, 2026
BIPs — Open
BIPinformationalOpen PRaddresses

BIP 54 test vectors improvements following review in Inquisition

This addresses the feedback received on the test vectors following the merge of #2015, the review of the Bitcoin Inquisition implementation (https://github.com/bitcoin-inquisition/bitcoin/pull/99), and Chris Stewart's implementation for Bitcoin-s (https://github.com/bitcoin-s/bitcoin-s/pull/6170). There are 4 categories of changes here: - Rewording and clarifications in the BIP text. - Some typo fixes and field reordering in the test vectors. - A change in the structure of the timestamps test v

No reviews
pk:bip-mirror·Mar 23, 2026
BIPs — Open
BIPinformationalOpen PRscript

BIP360: swap scriptPathControlBlocks[1] and [2] for three-leaf P2MR test vectors

## Summary ## Problem In a tree structured as [leaf0, [leaf1, leaf2]], the control block for spending a leaf must contain the sibling hashes along the Merkle path, not the leaf's own hash. The current test vectors have the control blocks for leaf1 and leaf2 swapped, causing them to include the spending leaf's own hash as the first path element instead of its sibling's hash. ### Example:es 1 and 2 in the three-lea Intermediate leaf hashes (correct in the test vector): ``` leafHash[0] = 2645

No reviews
pk:bip-mirror·Mar 17, 2026
BIPs — Open
BIPinformationalOpen PRopcodesscript

bip360: use correct leafVersion in control block byte for non-default version leaves

## Summary Fix the first byte of `scriptPathControlBlocks[1]` in the `p2mr_different_version_leaves` test vector. The control block incorrectly uses `0xC1` (leafVersion 192) instead of `0xFB` (leafVersion 250) for a leaf explicitly declared with `"leafVersion": 250`. ## Problem The P2MR control block's first byte encodes both the leaf version and parity bit: ``` controlBlock[0] = (leafVersion & 0xfe) | parityBit ``` For P2MR, the parity bit is always 1. So: - leafVersion 192 (0xC0) → `0xC1`

No reviews
pk:bip-mirror·Mar 17, 2026
BIPs — Open
BIPinformationalOpen PR

BIP-119: Fix missing self. prefix on stack reference in pseudocode

## Summary In the `execute_bip_119` pseudocode, the hash comparison references `stack[-1]` instead of `self.stack[-1]`, inconsistent with all other stack references in the function: ```python # Correct: if len(self.stack) < 1: if len(self.stack[-1]) == 32: # Incorrect — missing self.: if stack[-1] != self.context.tx.get_default_check_template_hash(...) ``` In Python, `stack[-1]` would reference an undefined local variable, while `self.stack[-1]` correctly accesses the interpreter's stack. Th

No reviews
pk:bip-mirror·Mar 12, 2026
BIPs — Open
BIPinformationalOpen PRkey-management

Caution on tweaking in bip 327

The BIP is quite difficult to parse in terms of understanding the functionality and safety of tweaking keys. In particular, while it is a terrible idea for more than one reason, constructing a MuSig2 aggregated key using related (bip32 unhardened) individual keys in the list is very specifically insecure, but that is not noted. It's admittedly debatable whether you ever have to specify that a certain kind of stupid behaviour is to be warned against, but my justification is: 1. The BIP is very

No reviews
pk:bip-mirror·Mar 11, 2026
BIPs — Open
BIPinformationalOpen PRkey-management

Expand BIP85 to include ECC key types

So I'm doing some work on extending BIP85 functionality on SeedSigner to include GPG key generation, file verification, encrypted messaging, etc, but the resource limitation on low power devices like the Raspberry Pi really makes RSA keys quite painful to use at any useful bit length. (RSA3072 takes 15-20 minutes for a primary key + 3 subs) Basically I'm suggesting an expansion of the current functionality to add support for some common ECC curves and provide a bit of a process for future curve

No reviews
pk:bip-mirror·Mar 9, 2026
BIPs — Open
BIPinformationalOpen PRevents

BIP361: Post Quantum Migration and Legacy Signature Sunset

Initial draft of a proposal for how to incentivize migration to post quantum cryptography and safeguard the ecosystem from unnecessary inflation of the circulating supply and the economic turmoil likely to accompany such an event.

No reviews
pk:bip-mirror·Mar 8, 2026
BIPs — Open
BIPinformationalOpen PRscript

BIP93: Generalize codex32 format for any hrp and fix typos

**Summary of Changes:** Describe codex32 format for arbitrary human-readable parts not just "ms", specify master seed encoding standard, add new test vectors and enhance readability. This makes the document more like BIP-0173: proposing an encoding "codex32", then defining a standard for something using it. See discussion on https://github.com/bitcoin/bips/pull/2023#issuecomment-3538570493. **Spec:** - fixed the threshold mistake in the abstract - replaced "master seed" with "secret", prior to

No reviews
pk:bip-mirror·Mar 7, 2026
BIPs — Open
BIPinformationalOpen PR

Add a BIP to define 24 bits of nVersion as nonce space not 16

No reviews
pk:bip-mirror·Mar 5, 2026
BIPs — Open
BIPinformationalOpen PRpsbtscript

BIP 370: drop redundant requirement from PSBT_OUT_SCRIPT field description

As per https://github.com/bitcoin/bips/pull/2111#issuecomment-3993872947: > The requirement was already stated by the "Versions Requiring Exclusion" and "Versions Requiring Inclusion" columns.

No reviews
pk:bip-mirror·Mar 4, 2026
BIPs — Open
BIPinformationalOpen PRminingtransactions

bip54: add coinbase locktime and sequence to GBT

[BIP54](https://github.com/bitcoin/bips/blob/master/bip-0054.md) proposes constraining the coinbase transaction `nLockTime` and `nSequence` fields. Bitcoin Core's internal mining code has been doing this since v30.0 (see https://github.com/bitcoin/bitcoin/pull/32155), but currently the fields are only communicated to IPC clients (i.e. Stratum v2, see e.g. https://github.com/bitcoin/bitcoin/pull/33819). This PR extends BIP54 with the following BIP22 fields (`getblocktemplate` RPC): - `lock_tim

No reviews
pk:bip-mirror·Mar 4, 2026
BIPs — Open
BIPinformationalOpen PRtaprootkey-management

BIP445: FROST Signing Protocol for BIP340 Signatures

This PR adds a BIP for the FROST (Flexible Round-Optimized Schnorr Threshold) signing protocol. The development repository is at https://github.com/siv2r/bip-frost-signing. There already exists [RFC 9591](https://www.rfc-editor.org/rfc/rfc9591.html), which standardizes the two-round FROST signing protocol, but it is incompatible with Bitcoin's BIP340 X-only public keys. This BIP bridges that gap by providing a BIP340-compatible variant of FROST. This BIP standardizes the FROST3 variant (Sectio

No reviews
pk:bip-mirror·Mar 2, 2026
BIPs — Open
BIPinformationalOpen PRwalletkey-management

BIP85: Add Codex32 as application 93'

This allows wallets to derive codex32 secrets and codex32 shares from BIP-0032 master keys. **Summary of changes** - Add codex32 application - Add [BIP-0093](https://github.com/bitcoin/bips/blob/master/bip-0093.mediawiki) to references - Bump version number to 1.4.0 - Add 1.4.0 [reference implementation](https://github.com/benwestgate/bip85) **Rationale** - Mirrors the existing BIP-85 application for BIP-39. - Codex32 offers error correction, hand verification, identifiers, and secret sharing

No reviews
pk:bip-mirror·Mar 2, 2026
BIPs — Open
BIPinformationalOpen PRwalletkey-management

BIP: Standard Encrypted Wallet Payload

This pull request proposes a new BIP for a standard, interoperable format for encrypted wallet backups and transfers. The core design choice is the separation of the data `payload` from the cryptographic `container`. This BIP specifies the `payload` format, while mandating that it must be encrypted by a container defined in companion proposals. Key features include: * **CBOR Serialisation:** Uses CBOR for a compact, efficient, and extensible binary format suitable for resource-constrained devi

No reviews
pk:bip-mirror·Mar 1, 2026
BIPs — Open
BIPinformationalOpen PR

BIP127: Replace network_magic with BIP44 coin_type in ProofOfReserves message

This commit updates the ProofOfReserves message in the Protocol Buffers specification to use BIP44 coin type IDs from SLIP-0044 instead of network magic values. The changes include: - Renaming the field from 'network_magic' to 'coin_type' - Updating the comments to reference the SLIP-0044 registry - Adding examples for Bitcoin mainnet (0x80000000) and Testnet (0x80000001)

No reviews
pk:bip-mirror·Feb 28, 2026
BIPs — Open
BIPinformationalOpen PRtransactionsp2p

BIP 181, 182, 183: BIPs for Utreexo

These are the 3 BIPs that describe Utreexo, a consensus-compatible (non-soft fork) way to send and verify transactions without storing the full UTXO set. The 3 BIPs are for: 1. The specification of the Utreexo accumulator. 2. The specification of Bitcoin block and tx validation using the Utreexo accumulator. 3. The peer to peer networking changes required to enable Utreexo nodes. Mailing list post: https://groups.google.com/g/bitcoindev/c/W1lxBraKG_E

No reviews
pk:bip-mirror·Feb 28, 2026
BIPs — Open
BIPinformationalOpen PR

BIP153: SENDTEMPLATE

Adds a BIP for SENDTEMPLATE, GETTEMPLATE, TEMPLATE p2p messages. Discussion links: https://delvingbitcoin.org/t/sharing-block-templates/1906 https://gnusha.org/pi/bitcoindev/aJvZwR_bPeT4LaH6@erisian.com.au/T/#u

No reviews
pk:bip-mirror·Feb 28, 2026
BIPs — Open
BIPinformationalOpen PRtaprootkey-management

BIP draft: Elliptic Curve Operations for Bitcoin Script

In this PR, we add a new draft BIP proposing the addition of fundamental Elliptic Curve op codes. Amongst other things, this series of op codes permits the computation of the top level Taproot output public key in Bitcoin Script. This enables a new flavor of on-chain state machines, in addition to many other use cases.

No reviews
pk:bip-mirror·Feb 28, 2026
BIPs — Open
BIPinformationalOpen PR

BIP-158: replace deprecated io/ioutil with os.ReadFile

Update bip-0158/gentestvectors.go to use os.ReadFile instead of the deprecated io/ioutil package. The ioutil package has been deprecated since Go 1.16, with its functionality moved to the io and os packages.

No reviews
pk:bip-mirror·Feb 28, 2026
BIPs — Open
BIPinformationalOpen PRaddresseskey-management

BIP352: Fix recipients typing in create_outputs to List[Dict[str, str]]

Update the recipients parameter in create_outputs from List[str] to List[Dict[str, str]]. This aligns the type annotation with actual usage in the code (recipient["address"], recipient["scan_pub_key"], recipient["spend_pub_key"]) and matches the structure provided by the test vectors. The previous annotation was misleading and could cause static type checkers and IDEs to surface incorrect diagnostics.

No reviews
pk:bip-mirror·Feb 28, 2026
BIPs — Open
BIPinformationalOpen PRscriptrelay

BIP draft: User-Defined Dynamic Relay Policy Scripts

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PR

BIP-XYZ: Standardized emoji based wordlist for future apps

<img width="1020" height="665" alt="emojiseed" src="https://github.com/user-attachments/assets/13c39c50-6a2a-4762-b450-a157db784f6f" /> ## Emoji Seed Word List Pull Request ## **Purpose** The purpose of this PR is to define and discuss the proper standardized definitions an official emoji seedlist. **Research** All research and discussions on the finalized standard are included in the **README** on **https://emojiseed.com**. **Community** The EmojiSeed community is just starting if you

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PRwalletprivacy

BIP352: Add extra encoding formats for scanning and spending

Based on a discussion I started on [Delving Bitcoin](https://delvingbitcoin.org/t/bip352-private-key-formats/2080) Also related: [BTC Transcripts](https://btctranscripts.com/bitcoin-core-dev-tech/2024-04/silent-payment-descriptors) BIP authors: @josibake @RubenSomsen --- These two new encodings are a way for Silent Payment users to: 1. Delegate scanning and wallet UTXO management to self hosted services like BTCPayServer 2. Encode secret information including birthday and labels used, so t

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PR

fix: correct misleading ORDER_HALF comment in bip-0374

The comment for ORDER_HALF incorrectly stated it represents "Number of valid distinct x coordinates on the curve". This is wrong - ORDER_HALF is simply half the group order, commonly used for ECDSA low-S signature normalization. The number of valid x coordinates on secp256k1 is approximately (p-1)/2 where p is the field size, which is a completely different value. Also clarified the ORDER comment from "plus 1 for infinity" to "including infinity" for better accuracy.

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PRopcodesscript

BIP Draft: OP_AMOUNT

This BIP describes a new tapscript opcode (`OP_AMOUNT`) which pushes the amount of the selected input or output to the stack.

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PRpsbtscript

Remove BIP 174's claim that Combine is commutative

The BIP asserts that `fA(fB(psbt)) == fB(fA(psbt))`, however the explanatory text before this doesn't actually say this and even hints that the ordering does matter: "processing [..] A and then B *in a sequence*". It seems that the BIP text only supports the `Combine(fA(psbt), fB(psbt)) == fB(fA(psbt))` part, and that `fA(fB(psbt))` slipped in by accident? In practice, Bitcoin Core's `combinepsbt` isn't commutative and gives precedence to latter PSBTs in the array. Here's a quick example demons

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PR

Fix broken anchor links in BIP 0342, BIP 0022, BIP 0023

At some point[ github changed how anchor links](https://github.com/gjtorikian/commonmarker/issues/229#issuecomment-1418272363) work. Currently anchor links using the double square bracket format require that the anchor be prepended with `user-content-`. This means that the following link used to work, but doesn't today ``` [[bip-0341.mediawiki#design|BIP341]] ``` The link that works today would be ``` [[bip-0341.mediawiki#user-content-design|BIP341]] ``` The link still resolves to the pa

No reviews
pk:bip-mirror·Feb 27, 2026
BIPs — Open
BIPinformationalOpen PRtaproottransactions

bip-tap: BIPs for the Taproot Assets Protocol

## Overview These BIPs describe the Taproot Asset Protocol, a Taproot-native asset overlay built on top of the base Bitcoin blockchain. Taproot Assets enable the representation of arbitrary (normal and collectibles) assets on top of Bitcoin without bloating the base chain. The protocol is designed such that transactions interacting with Taproot Assets are indistinguishable from regular transactions from the PoV of the Bitcoin blockchain. Taproot Assets extend the base Taproot script tree with a

2nack
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PR

BIP40: Stratum wire protocol

The Stratum wire protocol has a long history since @slush0 introduced it. However, the protocol never got standardized in a formal way, so many implementations have been based on incomplete documents or on other implementations. With this document I finally want to give Stratum its place between the other BIPs, so that developers can just read this document and don't have to search through years of code or dead pages that need to be revived with Wayback Machine.

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PRscript

BIPs 18 and 52: remove broken links

BIP 18: remove the outdated reference link to Gavin Andresen's pay_to_script_hash branch in the Bitcoin repository https://github.com/gavinandresen/bitcoin-git/tree/pay_to_script_hash BIP 52: remove https://www.powx.org/opow - no alternative link found in google

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PRwalletaddresses

[guardian] Add wallet behaviour draft BIP

Implements wallet behaviour for the Guardian Address proposal. The source code for the wallet implementation is available at https://github.com/bitcoinguardian/electrum. This serves as a model for self-custodial wallets, while custodial services may adapt the protocol to their infrastructure. Guardian Signal tooling is available at https://github.com/bitcoinguardian/GASPv1-draft A demo with testnet transactions and Guardian integration is available at https://github.com/bitcoinguardian/electr

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PRwalletaddresses

[guardian] Add Guardian Address Signal Protocol (GASPv1) BIP draft

Implements the protocol for the Guardian Address proposal. The source code for the wallet implementation is available at https://github.com/bitcoinguardian/electrum. This serves as a model for self-custodial wallets, while custodial services may adapt the protocol to their infrastructure. Guardian Signal tooling is available at https://github.com/bitcoinguardian/GASPv1-draft A demo with testnet transactions and Guardian integration is available at https://github.com/bitcoinguardian/electrum/t

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PR

BIP99: finish incomplete sentence in Libbitcoinconsensus definition

Complete the unfinished sentence about libbitcoinconsensus separation.

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PR

BIP-119: use self.stack[-1] in execute_bip_119

The pseudocode in bip-0119 used stack[-1] while the rest of execute_bip_119 consistently accessed the interpreter stack via self.stack.

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open
BIPinformationalOpen PRtransactions

BIP-346: correct TxFieldSelector index upper bound

Previously `parse_inout_selection` only rejected indices strictly greater than `nb_items`, allowing `idx == nb_items` to pass through and later cause a panic when indexing transaction inputs/outputs. Tightened the bounds check in `parse_inout_selection` to treat `idx >= nb_items` as out of bounds, enforcing the intended `0..nb_items-1` index range for `TxFieldSelector` individual mode.

No reviews
pk:bip-mirror·Feb 11, 2026
BIPs — Open