Bitcoin Universe original protocol
A payload you push, then drop
OP_DROP carries data inside a Taproot leaf script. The payload is pushed onto the stack as an ordinary data push, and the very next opcode, OP_DROP, removes it again. The bytes are committed to the blockchain and provable, but they never take part in whether the spend succeeds.
The mechanism
Bitcoin script has an opcode whose entire job is to throw away the top stack item. OP_DROP uses that opcode as a carrier. A leaf script pushes five fields, and after each of the first four it runs OP_DROP. What is left on the stack at the end is a public key and a signature check, so the leaf spends exactly like an ordinary key path would.
OP_DROP. Only part 5 affects consensus validity.The stack, step by step
Bitcoin script is a stack machine. The witness supplies the signature first, then the leaf script runs. Following the stack top to bottom makes the design obvious: the payload occupies the stack for exactly one opcode.
Why build another carrier
Bitcoin already has ways to attach data. Each of them makes a trade you cannot undo later. OP_RETURN puts bytes in an output script, cheap to prune but small and permanently visible to every node's policy checks. Witness envelopes (the Ordinals construction) wrap arbitrary content inside an OP_FALSE OP_IF ... OP_ENDIF block that is never executed, which is cheap thanks to the witness discount but relies on a branch that is skipped rather than evaluated. Stamps deliberately place data in outputs that cannot be pruned at all.
OP_DROP takes a fourth position. The payload sits in the witness (so it gets the witness discount), it is inside code that does execute (the push and the drop both run), and there is no conditional branch anywhere in the script. The whole leaf is five pushes and five opcodes with a fixed shape, which makes both the encoder and the validator small.
The honest version of that comparison, including the places OP_DROP is worse, is on the carrier comparison page.
Two layers, one name
Read the name carefully, because OP_DROP describes two things that are specified separately.
| Layer | What it fixes | Identifier |
|---|---|---|
| Carrier | The exact leaf script grammar, the Taproot commitment proof, and the 256-byte push bound. A leaf either parses or it does not. | bip110-op-drop (internal marker string, never a user-facing name) |
| Ledger | What the carried JSON means: deploy, mint, transfer, supply accounting, and balances. | "p":"op-drop" (the public protocol identifier) |
A leaf can be a perfectly valid carrier and still change no balance, because the ledger applies a narrower profile on top. The test vectors include cases that pass one layer and fail the other.
Who this is for
- Protocol implementers building an encoder, a decoder, or an independent indexer. Start at the specification and check yourself against the test vectors.
- Application developers integrating OP_DROP reads. Start at the API reference.
- Indexer operators who need the confirmation, ordering, and reorg semantics. Start at the reference.
- Holders and users who want to know what a wallet is asking them to sign. Start at the guide.
Entry points
Specification
Numbered normative rules, transaction anatomy, script encoding, operations, state transitions, and every invalid condition.
Carrier comparison
OP_DROP against OP_RETURN, witness envelopes, and Stamps, including where OP_DROP is the worse choice.
Builder and decoder
Paste a leaf script and watch the stack evolve, or build a leaf from a payload and see its size and fee.
Test vectors
Real leaf scripts, digests, commit addresses, and control blocks, with valid and invalid cases.
Guide
What a deploy, mint, and transfer actually do, end to end, and which Bitcoin Universe surfaces support them.
Reference
Terminology, indexer semantics, fee and size figures, standardness, limitations, and security considerations.
What this protocol does not claim
- OP_DROP does not change Bitcoin consensus. It uses opcodes that already exist.
- OP_DROP is not an Ordinals inscription and not BRC-20. It shares the four-character ticker and first-valid-deploy ideas that BRC-20 popularised, and it says so in the ledger rules, but it produces no inscription number and no automatic interoperability with either system.
- The leaf profile is built to survive the limits described in BIP-110, a published proposal that is marked complete as a document. That is a design choice about staying inside conservative bounds. It is not a claim that BIP-110 is active, nor that any node will relay or mine an OP_DROP transaction.
- No claim is made that any third-party wallet, marketplace, miner, or indexer recognises OP_DROP.
Bitcoin Universe surfaces
Support claimed here is limited to what is wired in the organisation's own code. See the support matrix for the exact per-surface detail and its caveats.
| Surface | Status | What it does |
|---|---|---|
| Inscribe workspace | wired | Creates deploy, mint, and transfer events on the dedicated op-drop route. |
| Core explorer | feature-gated | Confirmed deployments, supply, holders, and event history, behind the opDropIndex gate, which is off unless a deployment turns it on. |
| Core portfolio | wired | Available, reserved, and total balances per address. Not gated. |
| Core marketplace | feature-gated | Trading is behind the opDropTrading gate, also off by default, and runs in external-execution mode. Selling is explicitly unsupported. |
Reporting a problem
Report suspected vulnerabilities privately through GitHub private vulnerability reporting on this repository. Do not open a public issue for a security problem, and do not include private keys, seed phrases, or wallet files in a report. The security considerations section lists the failure modes this protocol is already known to have.