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.
BIP 347 OP_CAT in Tapscript in simple English
BIP 347 OP_CAT in Tapscript: The proposal redefines tapscript OP_SUCCESS126, decimal 126 and hexadecimal 0x7e, using the historical OP_CAT opcode value. The proposal applies to Tapscript and depends on BIP 340, 341 and 342 context.
Simple example
A node operator is checking BIP 347 OP_CAT in Tapscript. Execution fails when fewer than two elements exist or when the concatenated result would exceed the 520-byte maximum script element size.
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 the main point of BIP 347 OP_CAT in Tapscript?
BIP 347 OP_CAT in Tapscript: The proposal redefines tapscript OP_SUCCESS126, decimal 126 and hexadecimal 0x7e, using the historical OP_CAT opcode value.
For BIP 347 OP_CAT in Tapscript, what should a beginner know about status?
BIP 347 is Complete, version 1.0.0, and specifies a consensus soft fork.
For BIP 347 OP_CAT in Tapscript, what should a beginner know about opcode mapping?
The proposal redefines tapscript OP_SUCCESS126, decimal 126 and hexadecimal 0x7e, using the historical OP_CAT opcode value.
For BIP 347 OP_CAT in Tapscript, what should a beginner know about stack order?
For a stack ending x1 then x2 with x2 on top, OP_CAT replaces them with x1 concatenated with x2.
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.
Join the ASIC Mining Discussion
Members can read and join the discussion
Log in to read comments from other miners. Create a free account if you would like to ask a question or share your experience.
Membership helps us protect the discussion from spam and keep answers useful.