Skip to main content
£0.00 0

Basket

No products in the basket.

ASIC mining knowledge centre

OP_SUCCESS Explained: How Tapscript Preserves Future Upgrades

OP_SUCCESS explained from BIP342: learn why reserved Tapscript opcodes succeed today, how soft forks can restrict them and why using them risks funds.

OP_SUCCESS explained guide cover

Op_success explained matters because Bitcoin miners are paid only for work that the network they intend to serve accepts. The labels used in an activation debate can sound political, but the operational questions are concrete: which node validates the template, which rules are active, what the block version communicates, and what happens when two systems disagree. This guide is dated to Bitcoin Core 0.21.1 was released with Taproot activation code on 1 May 2021, deploying BIP342 semantics. It is a historical anchor, not a claim that every later development was known on that date. The current text incorporates the later specification state where the primary sources record it.

TL;DR

BIP342 designates a set of previously unused opcode numbers as OP_SUCCESSx. A future rule can replace unconditional success with a narrower condition. OP_SUCCESS is checked while the script is decoded. OP_RETURN fails a script when it is executed.

What OP_SUCCESS means in Tapscript

BIP342 designates a set of previously unused opcode numbers as OP_SUCCESSx. If the Tapscript decoder encounters one, validation succeeds immediately before ordinary execution and several resource checks. The name describes today’s consensus behaviour, not a useful instruction that wallet developers should place in production scripts. An output using it may be spendable by anyone who can reveal that committed path.

Start with the validating node, because the ASIC only hashes the candidate header it receives. Record the node release and the pool component that assembled the block. If those facts are unknown, the operator cannot show which rules were actually applied before electricity was committed to the work.

Why success enables a soft-fork upgrade

A future rule can replace unconditional success with a narrower condition. Nodes enforcing the new rule would reject some spends that old nodes still accept, which is the validity relationship required for a soft fork. The reserved opcode can read and write stack values or introduce richer behaviour without depending on the limited semantics of older OP_NOP-based upgrade points.

Treat status dashboards as observations, not as the source of truth. Compare them with an independently operated node and retain the raw deployment or template response. Period boundaries, chain reorganisations and cached pool pages can otherwise make a correct-looking percentage describe the wrong state.

Decoding stops before normal failures

OP_SUCCESS is checked while the script is decoded. Its presence can make the spend succeed even if later bytes would not decode, the initial stack is oversized or other execution limits would fail. This ordering is deliberate: it leaves broad room for a future definition. It also makes accidental present-day use especially dangerous because a script that looks restrictive may not execute those restrictions.

OP_SUCCESS explained technical diagram
Decoding stops before normal failures: a practical view of the validation, signalling and mining boundary.

Build the failure response before the boundary arrives. Define which rejection messages trigger an alert, who can pause a template source and how failover is prevented from returning miners to the same faulty validation stack. A second hostname is not independent when both endpoints share one node.

How it differs from OP_RETURN

OP_RETURN fails a script when it is executed. OP_SUCCESS makes the relevant Tapscript path succeed under current rules. The two should not be treated as equivalent data markers. OP_RETURN outputs are commonly made provably unspendable, whereas an OP_SUCCESS path can undermine the intended spending policy of a Taproot output if its creator misunderstands the semantics.

Separate readiness, signalling and enforcement in the operating log. Readiness is a claim about software and process, signalling is data carried by blocks, and enforcement is a validation result. Combining them into a single supported or unsupported label hides the point at which revenue is actually at risk.

How it differs from OP_NOP

Several legacy soft forks redefined OP_NOP opcodes by adding failure conditions, but NOP-style upgrades have limited access to script state. OP_SUCCESS offers a cleaner Tapscript-specific reservation and can support multi-byte opcodes or other execution changes. That flexibility exists because the output owner commits to the script before coins are sent to the Taproot output.

Map responsibility across the full path: validating node, template server, pool protocol, proxy, firmware and ASIC. For each layer, state what it can alter and what it merely relays. This prevents a version-bit setting in firmware from being mistaken for complete consensus-rule support. Relate that responsibility map to the pool and job-control boundary in our Stratum V2 guide.

Why funds can be lost

Before a future opcode is activated, an OP_SUCCESS path imposes no useful condition. Anybody able to construct the committed script-path witness may satisfy it. After an upgrade, the same bytes may acquire restrictions that old wallet software cannot handle. Developers should use dedicated test networks or regtest and avoid mainnet value unless a deployed specification explicitly defines the opcode.

Test the primary and failover paths with the same checks. Compare chain tip, chainwork, deployment state, required rules and template age, then save the result with a timestamp. The process should be repeatable by another operator without relying on an undocumented pool conversation.

Reviewing a Tapscript tree

Decode every leaf under BIP342 rules, not a legacy Script table. Flag all OP_SUCCESS values, unknown key types and disabled CHECKMULTISIG uses. Verify the control block and leaf version, then test each intended path with the same node version used in production. A high-level wallet policy is insufficient evidence if the compiled leaf contains an unconditional-success opcode.

Turn the conclusion into a business decision. State which chain and settlement venues the operation intends to serve, the maximum acceptable stale-block exposure and the point at which mining pauses. This connects protocol evidence to electricity cost, pool revenue and payout finality.

Operator decision record

A concise decision record for OP_SUCCESS explained should name the source documents, their dates, the node release tested, the responsible pool or template provider and the exact trigger for action. Include screenshots or machine-readable output for the deployment state, but keep the raw node response as the stronger evidence. State whether a change affects policy, block construction or consensus validity, because those layers have different failure costs.

Run the check on every production and failover path. Confirm that monitoring alerts on stale templates, unexpected chain tips, rejected proposals and a rise in stale shares. Keep rollback instructions for node and pool configuration, but do not roll back across an active consensus boundary without understanding the rules the older release enforces. If the evidence conflicts, pause the affected path and investigate before committing more electricity to uncertain work.

For related background, read our plain-English BIP-110 guide and technical BIP-110 review. Those articles use a modern proposal to show why signalling, activation, template construction and accepted chain history must be examined separately.

Conclusion

Op_success explained is best understood as a defined interaction between validating software, mining infrastructure and economic acceptance. The safest operator does not infer consensus from a dashboard percentage or a pool slogan. They verify the rule source, the activation boundary, the template fields and the chain their payouts ultimately settle on. That discipline reduces the chance of hashing an invalid or commercially unwanted block.

Primary sources

Primary specifications are living technical records. Check their current status and changelog before using this article for a production activation decision.

On this page

Search More Guides

Continue Reading

Explore more practical guidance on ASIC hardware, profitability, setup, hosting and maintenance.

Need Advice for Your Mining Setup?

Use our guidance to build your shortlist, then speak to our team when you want help comparing hardware, power, hosting or repairs.
Contact our team
Browse ASIC miners