Skip to main content
14 votes
Accepted

Follow-up to Segwit: Arbitrary data storage in witness?

Am I understanding this correctly? Yes. will this transaction have failed the normal rules in Bitcoin Core for relaying transactions It's a P2TR (taproot) spend. Those spends have different policy ...
Pieter Wuille's user avatar
8 votes
Accepted

When is OP_RETURN cheaper than OP_FALSE OP_IF?

TL;DR: OP_RETURN is cheaper for data smaller than 143 bytes. The overhead of an OP_RETURN output is at least 11 bytes: amount (8 bytes) compact size of script (at least 1 byte) script: OP_RETURN ...
Vojtěch Strnad's user avatar
7 votes
Accepted

DDOS attack via BRC-20 & ordinals on Bitcoin

Do we currently see a DDOS attack on Bitcoin as the mempool is flooded with low value Transactions incl. BRC-20, ordinals etc. (where the transaction fee exceeds the transferred value)? I get why ...
Michael Folkson's user avatar
6 votes
Accepted

Understanding how ordinals work with the Bitcoin blockchain. What is exactly stored on the blockchain?

Ordinals Inscriptions don't use OP_RETURN, they are embedded within the script of a taproot input. It's not just a link to a file on some website, the entire file is actually published to the ...
Vojtěch Strnad's user avatar
5 votes
Accepted

Was the lifting of the Taproot transaction size limit "accidental"? Why would ordinals want to fill a block with OP_RETURNs?

No it was not accidental, see the BIP342 section on Resource Limits Script size limit: The maximum script size of 10000 bytes does not apply. Their size is only implicitly bounded by the block weight ...
pinhead's user avatar
  • 5,164
4 votes

Why weren’t Inscriptions possible before taproot by just using OP_RETURN to store the data?

It may have been possible but it would be more expensive to do so. From Michael Folkson Was the lifting of the Taproot transaction size limit "accidental"? Why would ordinals want to fill a ...
Poseidon's user avatar
  • 653
4 votes

Follow-up to Segwit: Arbitrary data storage in witness?

Pieter Wuille has answered the technical question of how these transactions are affected by the rules. Vojtěch Strnad identified the origin as Ordinals Inscriptions - a kind of NFT. When I asked &...
RedGrittyBrick's user avatar
4 votes
Accepted

Is a BIP required for the removal of SegWit Discount for Inscriptions?

The removal of the witness discount would be a consensus change, specifically a soft fork. Changes to consensus rules have always been standardized as BIPs ever since the BIP process was created and I ...
Vojtěch Strnad's user avatar
4 votes

How can I tell from the `getrawtransaction` if a transaction signaled Taproot?

It is still not clear to me what tx version number a Taproot transaction uses. Any transaction version number can have Taproot inputs or outputs. Is there a way to know via the ins (via ...
Pieter Wuille's user avatar
4 votes
Accepted

How to differentiate between BTC transactions and BRC20 transactions on a blockchain?

How to differentiate between BTC transactions and BRC20 transactions Well, you can't because they are not disjoint sets, all BRC-20 transactions are also BTC transactions. You identify BTC ...
RedGrittyBrick's user avatar
4 votes

How exactly do ordinals and inscriptions work, technically?

inscriptions are the data (the JPEG for example) being inscribed into the witness section of a block. Once this data/inscription is burnt into the block via multiple confirmations of that block, it ...
Fiach-Dubh's user avatar
4 votes
Accepted

How do I set up bitcoin.conf in Bitcoin Knots to stop spam and low value transactions?

Bitcoin Knots aims to default to reasonable node policies. The reason datacarrier is enabled by default, is that it's impractical to prevent 32-byte spam from abusing p2*h outputs which is much more ...
Luke Dashjr's user avatar
  • 1,269
4 votes
Accepted

How is tapscript different than P2PKH using opcodes from a developer perspective?

It sounds like this means that I could do an ordinal in a non-taproot address bitcoin transaction. So I could mint an ordinal with a P2PKH address. Historically output types with address standards ...
Murch's user avatar
  • 75.9k
3 votes
Accepted

Does ordinal theory affect fungibility?

Are ordinals just serial numbers attached to specific satoshis? As I understand it yes. The serial numbers are assigned to transaction outputs. As I understand it, when an output is spent in a later ...
RedGrittyBrick's user avatar
3 votes

Was the lifting of the Taproot transaction size limit "accidental"? Why would ordinals want to fill a block with OP_RETURNs?

The previous transaction size limit (pre Taproot) was deliberately relaxed though I can't (yet) find links to historical discussion on whether to relax it or not. This was addressed on Twitter by ...
Michael Folkson's user avatar
3 votes

Do know which UTXO fees are chosen from? Need help on an inscription in a native segwit wallet

According to the Ordinals FAQ, the ordinals are assigned first-in-first-out. Each satoshi in the inputs is assigned in order to each first available satoshi in the outputs. Any satoshis from the ...
Murch's user avatar
  • 75.9k
3 votes

Do know which UTXO fees are chosen from? Need help on an inscription in a native segwit wallet

is there any way to dictate which UTXO the fees come from? Some wallets have a feature named "coin control". The fee is simply the difference between input amount and output amount. There ...
RedGrittyBrick's user avatar
3 votes
Accepted

Why was there a jump in transactions per block in 2023?

The blame is on BRC-20, a terribly inefficient token protocol built on Ordinals that saw a lot of use during that time. BRC-20 requires a huge number of small transactions, which drives down the ...
Vojtěch Strnad's user avatar
3 votes
Accepted

How can taproot transactions manage to store so much data?

The only thing Taproot changed with respect to the "inscription envelope" is removing the script size limit, which was previously 10,000 bytes for P2WSH and 520 bytes for P2SH. In P2TR, the ...
Vojtěch Strnad's user avatar
3 votes

Code: -26, Error: non-mandatory-script-verify-flag (Data push larger than necessary)" when trying to spend from P2WSH

Bitcoin Core standardness rules require data pushes to be minimal, i.e. where multiple ways exist to push the same byte vector, the shortest one must be used. (See explanation at Opcode Explained.) In ...
Vojtěch Strnad's user avatar
2 votes

Understanding how ordinals work with the Bitcoin blockchain. What is exactly stored on the blockchain?

The MIME data type of that inscription is text/html;charset=utf-8. So maybe it is something like Doom in javascript Ordinals inscriptions do embed the data in transaction data that occupies space in ...
RedGrittyBrick's user avatar
2 votes
Accepted

Why would someone create a transaction where the fee is bigger than the sum of the outputs?

My guess is those are Ordinals Inscriptions (NFTs). They typically have a single output of 10000 Satoshi (about $28 US). Update: Yes, typical huge witness data in one I checked. So fee correspondingly ...
RedGrittyBrick's user avatar
2 votes
Accepted

What is "collection" for Ordinals? Where are "collections" stored?

It appears to me that "collections" isn't something defined by the Ordinals protocol, and it's not something that gets stored on chain. Rather, there appear to be centralized repositories to ...
Vojtěch Strnad's user avatar
2 votes

Can I create an ordinals-like transaction using bcoin / btcwallet?

You can create any kind of script spend with bcoin but for taproot you will need to use the taproot branch which has not yet been sufficiently reviewed or released. You can follow along with this test ...
pinhead's user avatar
  • 5,164
2 votes

Inscriptions with size less than 10Kb were seemingly possible before taproot, why did they become popular only now?

There's really no reason inscriptions couldn't have been done with SegWit v0. The only difference would be that large inscriptions would have to be split across multiple inputs, making the ...
Vojtěch Strnad's user avatar
2 votes

Inscriptions with size less than 10Kb were seemingly possible before taproot, why did they become popular only now?

With P2WSH, one could seemingly use the same script structure ("envelope") OP_FALSE OP_IF OP_ENDIF to store up to ~10Kb of data in witness This is incorrect. The maximum standard witness ...
Antoine Poinsot's user avatar
2 votes

Where exactly is the Inscription media stored in witness signature?

I think this is explained at https://docs.ordinals.com/inscriptions.html Inscription content is serialized using data pushes within unexecuted conditionals, called "envelopes". Envelopes ...
RedGrittyBrick's user avatar
2 votes
Accepted

Is the Taproot upgrade really essential for BRC-20 tokens on Bitcoin?

As far as I know, in principle, BRC-20, or something equivalent, only really needs to store about 60 bytes in some predictable location in a Bitcoin transaction. Nothing else. There is a very long ...
RedGrittyBrick's user avatar
2 votes

Read ordinal transaction data

As Vojtěch writes in the linked topic, the inscriptions will be found in an unexecuted part of the leaf script of the taproot input. “The leaf script is the second to last element of the witness stack ...
Murch's user avatar
  • 75.9k
2 votes
Accepted

How to pick the block in which a transaction will get mined?

There is no way to reliably pick the block in which your transaction will be mined. The best you can do is to broadcast your transaction right after the previous block is mined, and set the fee high ...
Vojtěch Strnad's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible