This guide explains BIP 347 OP_CAT in Tapscript in plain English. It covers the problem behind the BIP, why it matters and whether the proposal is part of Bitcoin today.
TL;DR
- What it is: BIP 347 is a Complete Specification for introducing OP_CAT to Tapscript by redefining OP_SUCCESS126 through a soft fork. The opcode would pop the top two stack values, concatenate them in stack order and push the result.
- Why it matters: BIP 347 specifies a deliberately small byte-concatenation primitive with broad possible composition. Its operational boundary remains clear: a complete specification is not active consensus until a separate deployment occurs.
- Current position: Its operational boundary remains clear: a complete specification is not active consensus until a separate deployment occurs.
What this means in simple English
A BIP is a document that proposes or explains a Bitcoin idea, standard or rule. A BIP number does not mean the idea is active. Some BIPs are widely used, while others are drafts or historical proposals.
You do not need to read code to understand the main point. Start with the status, the problem being addressed and the practical effect on ordinary users, wallets, miners or node operators.
Simple example
Think of a mempool as one node’s waiting room for valid transactions that have not yet entered a block. Different nodes can have different waiting rooms, and the contents can change from one second to the next.
Key terms in plain English
- BIP
- Bitcoin Improvement Proposal: a document describing a proposed rule, standard or process. Its status must be checked separately.
- Consensus
- The shared rules full nodes use to decide whether blocks and transactions are valid.
- Soft fork
- A proposed tightening of Bitcoin rules that old nodes may not enforce themselves.
- Taproot
- A Bitcoin upgrade that added new signature and script options for spending outputs.
- Node
- A computer running Bitcoin software that checks data and communicates with other peers.
Status
BIP 347 is Complete, version 1.0.0, and specifies a consensus soft fork. No article or test should describe that status as deployed network rules.
Opcode mapping
The proposal redefines tapscript OP_SUCCESS126, decimal 126 and hexadecimal 0x7e, using the historical OP_CAT opcode value.
Stack order
For a stack ending x1 then x2 with x2 on top, OP_CAT replaces them with x1 concatenated with x2. Reversing operands changes the byte string.
Failure conditions
Execution fails when fewer than two elements exist or when the concatenated result would exceed the 520-byte maximum script element size.
Scope
The proposal applies to Tapscript and depends on BIP 340, 341 and 342 context. It does not reactivate legacy-script OP_CAT by editorial assumption.
Use cases
The BIP discusses hashed data structures, tree signatures, Lamport signatures, covenants and atomic-swap constructions as possibilities, not deployed product guarantees.
How specialists test it
Developers test the proposal with made-up data on an isolated test network. They check normal cases and deliberately invalid cases. Different implementations should reach the same result before anyone relies on the proposal.
Frequently asked questions
What is BIP 347 OP_CAT in Tapscript?
BIP 347 is a Complete Specification for introducing OP_CAT to Tapscript by redefining OP_SUCCESS126 through a soft fork. The opcode would pop the top two stack values, concatenate them in stack order and push the result.
Is BIP 347 OP_CAT in Tapscript active or supported today?
Its operational boundary remains clear: a complete specification is not active consensus until a separate deployment occurs.
Why does BIP 347 OP_CAT in Tapscript matter?
BIP 347 specifies a deliberately small byte-concatenation primitive with broad possible composition. Its operational boundary remains clear: a complete specification is not active consensus until a separate deployment occurs.
Do beginners need to use the technical details?
No. Most readers only need to understand the idea and its current status. Developers and node operators can use the primary sources when they need the exact technical rules.
Conclusion
BIP 347 specifies a deliberately small byte-concatenation primitive with broad possible composition. Its operational boundary remains clear: a complete specification is not active consensus until a separate deployment occurs.
Primary sources
Check the current specification status and the documentation for the exact implementation you operate before moving production funds or changing a mining node.
