OP_CAT $OPCAT
OP_CAT is a proposed Bitcoin soft-fork upgrade (formalized in BIP 347) that re-enables a disabled opcode to concatenate two data elements on the stack into a single element
4QV31UeJJyUVWP2f1qgEz8gUPkf6WyPZyAmGdT8UD8Ld
OP_CAT $OPCAT
Now that we’ve laid the foundation let’s look at OP_CAT. It is a defunct OP_Code—short for operation code—that was part of Bitcoin’s original scripting system. Yes, the mysterious creator of Bitcoin, Satoshi himself, the coolest cat, had his hands on this upgrade.
He included OP_CAT, short for concatenate, which allowed you to combine different steps, like linking a fancy spin with a foot pop for a killer combo. OP_CAT would allow a Bitcoin user to join two data points within an execution stack, setting out prior rules that need to be met to execute the event of a transaction.
But here’s the twist: OP_CAT was banned in 2010 because Satoshi deemed it dangerous. Ever the cautious type, Satoshi worried it could be misused for dance-offs that clogged the whole floor (denial-of-service attacks, for you techies).
However, the debate over OP_CAT is heating back up. Some folks want to bring it back, arguing it can unlock new moves, like covenants. These are agreements built into your Bitcoins, ensuring they can only be spent under specific conditions – like only after a certain date or to a particular address.
What is OP_CAT? LORE ⬇️✅
To date, OP_CAT has not been assigned a BIP number. Satoshi originally removed OP_CAT because, at the time, a user could have theoretically used the opcode to push an exponential amount of data onto Bitcoin’s blockchain, resulting in a denial of service (DoS) attack. Now, however, tapscript allows a max of 520 bytes of data within a single stack (a stack is simply a data structure for Bitcoin transactions), so Bitcoin’s 2021 Taproot upgrade nullifies the original DoS vector.
OP_CAT operates by allowing a Bitcoin user to join (a.k.a. concatenate in computer science parlance) two data points together within a stack and places these values at the top of the stack, which makes these values the first items acted on in the event of a transaction. The concatenated values on the stack can ensure that the associated bitcoin can only be spent if certain conditions are met.
To visualize what this does in practice, the tweet below, courtesy of Taproot Wizards CTO Rijndael, shows the structure of an OP_CAT transaction where 0.999 BTC can only be spent to a specific address
$OPCAT
Hello CT I’m OP_CAT 👋
OP_CAT was originally an opcode in Bitcoin. It was disabled in 2010 but slight variations on it are frequently proposed to be added to Bitcoin using a soft fork
Now I am back to LIFE 👀
4QV31UeJJyUVWP2f1qgEz8gUPkf6WyPZyAmGdT8UD8Ld
$OPCAT