Definition
Tapscript is the version of Bitcoin Script used when a Taproot output is spent via its script path. Specified in BIP342 alongside the Taproot upgrade (activated November 2021), it keeps most of legacy Script familiar while modernising signature handling and, crucially, making future soft-fork upgrades far easier.
What changed from legacy Script
Tapscript validates Schnorr signatures rather than ECDSA. The batch-unfriendly OP_CHECKMULTISIG and OP_CHECKMULTISIGVERIFY are disabled and replaced by OP_CHECKSIGADD, a small opcode that lets scripts tally signature counts efficiently for k-of-n policies. The old 201-opcode-per-script limit is dropped in favour of a signature-operations budget that scales with witness size, and the rigid 520-byte and 10,000-byte script size constraints are relaxed.
Built for upgrades
Tapscript redefines a set of unused opcodes as OP_SUCCESS opcodes. An OP_SUCCESS makes the entire script succeed unconditionally, which means a future soft fork can assign one of them real meaning without invalidating any existing scripts. This is a deliberate design that turns each OP_SUCCESS into a reserved slot for new functionality — a far cleaner upgrade path than the disabled-opcode approach of earlier Script.
Because Taproot reveals a script branch only when that branch is actually used, Tapscript spends keep unused conditions private, improving on-chain privacy versus legacy P2SH. Combined with the new default SIGHASH behaviour and the witness discount measured in weight units, Tapscript is the foundation for emerging constructions like vaults, more efficient multisig, and many proposed covenant designs.
In Simple Terms
Tapscript is the version of Bitcoin Script used when a Taproot output is spent via its script path. Specified in BIP342 alongside the Taproot upgrade…
