Skip to content

Latest commit

 

History

History
130 lines (94 loc) · 5.1 KB

File metadata and controls

130 lines (94 loc) · 5.1 KB
title Tapscript
topic-categories
Soft Forks
Scripts and Addresses
excerpt **Tapscript** is the scripting language used for taproot script-path spends.
primary_sources
title
bip-tapscript
optech_mentions
title url date
Executive briefing: Taproot and Tapscript
/en/2019-exec-briefing/#the-next-softfork
2019-06-14
title url date
BIP322 signmessage forward compatibility
/en/bech32-sending-support/#message-signing-support
2019-07-10
title url feature
Extended summary of bip-taproot and bip-tapscript
/en/newsletters/2019/05/14/#overview-of-the-taproot--tapscript-proposed-bips
true
title url
Overview of Taproot and Tapscript
/en/newsletters/2019/05/14/#soft-fork-discussion
title url
Tapscript resource limits
/en/newsletters/2019/09/25/#tapscript-resource-limits
title url
Update on changes to schnorr, taproot, and tapscript
/en/newsletters/2019/10/16/#taproot-update
title url
Announcement of structured taproot review (including tapscript)
/en/newsletters/2019/10/23/#taproot-review
title url date feature
Bitcoin Optech schnorr/taproot workshop
/en/schnorr-taproot-workshop/
2019-10-29
true
title url
Discussion about position commitments using signature-checking opcodes
/en/newsletters/2019/12/04/#continued-schnorr-taproot-discussion
title url
2019 year-in-review: taproot and tapscript
/en/newsletters/2019/12/28/#taproot
title url
btcdeb adds `tap` command for experimenting with taproot and tapscript
/en/newsletters/2020/02/05/#taproot-and-tapscript-experimentation-tool
title url
Bitcoin Core #16902 fixes an inefficiency in OP_IF related opcodes
/en/newsletters/2020/03/18/#bitcoin-core-16902
title url
Bitcoin Core #19953 merged with consensus implementation of BIP342
/en/newsletters/2020/10/21/#bitcoin-core-19953
title url
2020 year in review: Taproot, tapscript, and schnorr signatures
/en/newsletters/2020/12/23/#taproot
title url
Using backup tapscript spending paths to recover from crypto breaks
/en/newsletters/2021/03/24/#taproot-improvement-in-post-qc-recovery-at-no-onchain-cost
title url
Bitcoin Core #21365 allows the wallet to create signatures for tapscript spends
/en/newsletters/2021/06/23/#bitcoin-core-21365
title url
Rust Bitcoin #644 adds support for tapscript’s new opcodes
/en/newsletters/2021/10/06/#rust-bitcoin-644
title url
Question: why do invalid `OP_CHECKSIGADD` signatures fail their script?
/en/newsletters/2022/07/27/#why-do-invalid-signatures-in-op-checksigadd-not-push-to-the-stack
title url
Discussion about lowering tapscript resource limits
/en/newsletters/2022/10/19/#block-parsing-bug-affecting-btcd-and-lnd
title url
Description of tapscript signature malleability and proposed fix for SIGHASH_ANYPREVOUT
/en/newsletters/2023/02/15/#tapscript-signature-malleability
title url
Research showing effect of OP_SUCCESSx on covenants using output script introspection
/en/newsletters/2023/10/25/#op-success-changes-would-be-beneficial
title url
Draft BIP for adding elliptic curve operations to tapscript
/en/newsletters/2025/09/05/#draft-bip-for-adding-elliptic-curve-operations-to-tapscript
title url
Draft BIP for OP_TWEAKADD
/en/newsletters/2025/09/05/#draft-bip-for-op-tweakadd
title url
Draft BIPs for Script Restoration
/en/newsletters/2025/10/03/#draft-bips-for-script-restoration
title url
Native STARK proof verification in Bitcoin Script
/en/newsletters/2025/11/07/#native-stark-proof-verification-in-bitcoin-script
title url
Benchmarking the varops budget
/en/newsletters/2025/12/05/#benchmarking-the-varops-budget
title url
Varops budget and tapscript leaf 0xc2 (aka Script Restoration) are BIPs 440 and 441
/en/newsletters/2026/04/03/#varops-budget-and-tapscript-leaf-0xc2-aka-script-restoration-are-bips-440-and-441
title url
Proposal to embed post-quantum keys in tapscript without consensus changes
/en/newsletters/2026/05/01/#proposal-to-embed-post-quantum-keys-in-tapscript-without-consensus-changes
see_also
title link
Taproot
topic taproot

It shares most operations with legacy and segwit Bitcoin Script but has a few differences:

  • OP_CHECKMULTISIG and OP_CHECKMULTISIGVERIFY are replaced by a OP_CHECKSIGADD opcode.

  • Many previously disabled opcodes are redefined to be OP_SUCCESS opcodes that unconditionally render the entire script valid to simplify soft fork upgrades.

  • Signature hashes are calculated differently than in legacy script or BIP143 v0 segwit.

{% include references.md %}