A Comprehensive Explanation of Ordinals: NFTs on Bitcoin

Tara Annison
9 min readFeb 6, 2023

On Feb 23rd 2022 developer Casey Rodarmor sent his proposal for Bitcoin Ordinals to the dev mailing list. In brief the idea is that every newly mined satoshi ( and there are currently 6.25BTC mined every ~10mins) is sequentially ordered. Therefore each satoshi will have an ordinal number between 0 and 2,100,000,000,000,000 (hence the term “ordinals”) assigned and this can then be linked to some other information; images, text, videos and even games. This offers the opportunity to create non-fungible properties for satoshis — hence why this idea is spoken about as bringing ‘NFTs’ to Bitcoin. These Bitcoin NFTs are being referred to as “digital artefacts” and the metadata within them is referred to as “Inscriptions”.

This proposal has split the community and there’s been some fierce debate across crypto twitter and the broader cryptosphere. Some believe this is an exciting way to bring new use cases to Bitcoin whilst others believe that Bitcoin should be kept as a system for digital cash and not evolved/mutated. There’s also been concerns raised that this additional transaction size could result in a rise for transaction fees and increase resource demands on nodes.

How Does This Actually Work?

When looking to ‘mint’ digital artefact, you need to create a Bitcoin transaction which stores some extra data (the Inscription) in one of the output addresses. This extra data could be text, images, SCG, or HTML and the size you can include is only capped by the block size limit.

Until this implementation, any extra data added to a Bitcoin transaction was usually done using an OP_RETURN, an unspendable output (I talk about these in more detail here: https://www.linkedin.com/m/pulse/what-actual-spendable-supply-bitcoins-tara-annison) where you can include up to 80bytes of metadata.

OP_RETURNs in and of themselves have a pretty exciting backstory with the OP_RETURN wars of 2014 being a notable schism within the industry and carrying many similarities with today’s Ordinals debates. I’d recommend reading this write up for background on the 2014 wars: https://blog.bitmex.com/dapps-or-only-bitcoin-transactions-the-2014-debate/#:~:text=Since%20the%20data%20is%20not,of%20up%20to%2010%2C000%20bytes.

OP_RETURNs are prunable, meaning you can drop the data from your full node since they’re unspendable, and so they don’t add bloat to the chain size.

However the Ordinal approach does not make use of OP_RETURNs and instead includes the metadata within the transaction itself — making use of the 2021 segwit update which allows up to 3MB of witness data to be stored ‘outside’ of the 1MB block limit at the protocol level and using taproot script-path spend scripts This provides up to 4MB worth of storage space for the Inscription content.

To read up on Taproot check out my previous piece here: https://tara-annison.medium.com/what-are-taproot-mast-and-schnorr-signatures-b737dae20681

Let’s dig into the technicals of this a little more …

TL;DR the Inscription data is stored within the raw transaction data

The digital artefact is minted from a Taproot enabled output (a “bc1p…” address) using a two-phrase process. Initially the taproot output must commit to a script containing the inscription content. This content is serialized in what’s called an ‘envelope’ e.g sandwiched between some op-codes: OP_FALSE OP_IF … OP_ENDIF.

However a key part of the Taproot and MAST upgrade is that this script isn’t revealed on-chain until it’s spent, therefore you then need to create another transaction to reveal the information. In this reveal transaction the output created by the commit transaction is spent, thus revealing the inscription content on-chain.

An example of this for creating an Inscription of the text “Hello, world!” would be:

How Do You Send Digital Artefacts?

To understand how digital artefacts can be transferred let’s follow an example with three inputs and 2 outputs and varying (but simplified) amounts:

Above we can see there’s a total of 6 satoshis coming from 3 different addresses and 5 satoshis being sent to 2 different addresses, with 1 satoshi being paid to the miner as the fee.

We can then assign the Ordinals for each satoshi of the inputs and then following the first-in-first-out algorithm to assign them to the outputs with any remaining ordinals then going to the miner.

It’s worth noting there that not all Ordinals have Inscriptions assigned to them so this doesn’t mean there are 6 digital artefacts being transferred in this transaction, there could be 1, none or up to 6.

If we explore an individual digital artefact then we can understand more about the Inscription data and how the ordinal number comes into play:

https://ordinals.com/inscription/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511i0

This Bored Ape Yacht Club re-created digital artefact was created in transaction hash: 2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511

And is related to address: bc1pc837xc4vfq66g2wm3hy6rd4nxjlkwcl46m4wn2n6u0afd45h472sx8924n (a Taproot enabled address type as clear from the “bc1p” prefix) but specifically the satoshi with the ordinal: 1598601235315166

You can see the amount of witness data, which is encoding the image, here: https://blockstream.info/tx/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511?expand

You may notice in the inscription information that there’s also a name field with the value “cnhzpcdknwl”. This is because every ordinal maps to a name consisting of the letters A through Z, that get shorter the further into the future the satoshi was mined:

https://ordinals.com/inscription/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511i0

How Does This Compare to NFTs on Ethereum?

This is a very different approach to smart contract based blockchains like Ethereum where token standards (most often ERC721, ERC1155) are used to create collections for NFTs with each NFT being given a tokenID to uniquely reference it (alongside the account for the collection smart contract). The complexity of the NFT can result in large transaction costs to create (mint) or transfer it on blockchains like Ethereum however due to transaction fee optimisations with Taproot on Bitcoin, the fee to send Inscriptions is comparably very low.

Another notable difference between the implementation of digital artefacts on Bitcoin vs smart contract protocols like Ethereum is that all Inscriptions are stored fully on-chain. This makes them immutable and fully decentralised whereas one criticism often levelled against NFTs on Ethereum is that the metadata could be removed if the centralised storage solution goes offline or if the project rugs you by swapping the metadata out e.g https://cointelegraph.com/news/opensea-collector-pulls-the-rug-on-nfts-to-highlight-arbitrary-value . However it’s also notable that this immutability means that illicit or ‘unsavoury’’ content as Inscriptions is on chain forever. There are already examples of pornographic Inscriptions https://cointelegraph.com/news/bitcoin-ordinals-creators-look-for-fix-after-first-instance-of-shock-porn and it will only be a matter of time until illegal imagery makes it’s way into an Inscription. So whilst websites which help to visualise Ordinal data can block these obscene images, it will exist forever on the blockchain. Although it’s worth noting that this isn’t something introduced with Inscription, for as long as arbitrary data has been storable on blockchains, there have been those who have immutability stored illicit and unsavoury imagery, links and text.

What Data Is Being Stored in Digital Artefacts?

As to be expected there’s plenty of memes being stored as Inscriptions, lots of well known NFTs being reproduced on Bitcoin — Like Bored Apes, plenty of price charts and also some Bitcoin specific digital artefacts. You can view the inscriptions on this explorer here: https://ordinals.com/inscriptions

An interesting aspect of these inscriptions which has been embedded from the get go is ‘Rarity’ so each digital artefact has a level of rarity which is linked to the ordinals position from those in the genesis block to those in the block at the tip.

  • common: Any sat that is not the first sat of its block
  • uncommon: The first sat of each block
  • rare: The first sat of each difficulty adjustment period
  • epic: The first sat of each halving epoch
  • legendary: The first sat of each cycle
  • mythic: The first sat of the genesis block

It’s also likely that some digital artefacts will have a rarity outside the specified approach above due to the Inscription being especially prized, created by an addresses liked to a notable entity or the ordinal having a certain property e.g 1111111111111111. These are referred to as “exotics”.

What’s The On-Chain Data Saying?

Currently there are 4,675 Inscriptions https://dune.com/dataalways/ordinals with a huge bump in the last few days since the mainstream crypto press have reported on the ongoing drama.

Around the same time there has been an increase in the average block size with the biggest block in Bitcoin’s 14 year history being mined last week. Block 774,628 was a whopping 3.96MB (close to the 4MB max size enabled by the 2021 Segwit upgrade which allows extra space to be used to exceed the 1MB protocol block size limit). The block contained just 63 transactions with 99.5% of the blockspace being taken up by the Taproot wizard meme (a nod to the “magic internet money” meme) as inscription 652: https://ordinals.com/inscription/0301e0480b374b32851a9462db29dc19fe830a7f7d7a88b81612b9d42099c0aei0

There’s also been a recent bump in transaction fees with the average tx fee in January 2023 at ~$1 and since the launch of ordinals this is now edging closer to $2. Therefore the fears that some ordinals critics have warned of, increasing fees due to block space use, look like they might becoming true.

Another important on chain metric to track is the blockchain size since full nodes must store a complete history of the chain since the genesis block and therefore an increase in the average block size, due to Inscription data being included, will bloat the chain and put heavier resource requirements on spinning up and running a node. So far there hasn’t been a notable increase in the blockchain size since the launch of Ordinals however at 452.38GB and counting, running the Bitcoin blockchain (as a full node) is a sizeable commitment.

Where Have I Heard of This Before?

If the concept of NFTs on Bitcoin sounds familiar that’s because Ordinals isn’t the first project to try to accomplish this. Back in 2012/13 the idea of Coloured Coins on Bitcoin was proposed. This looked to link satoshis to specific values and metadata, and was mainly taken up by projects such as Counterparty which allowed for the trading of Rare Pepes memes.

There’s also been projects such as the Omni Layer which uses extra data stored in a Bitcoin transaction to allow the creation and movement of assets ‘on top of’ Bitcoin: https://tara-annison.medium.com/the-omni-layer-explained-1f3e9cd8f973. Advancing on this was the 2022 Taro proposal: https://lightning.engineering/posts/2022-4-5-taro-launch/ . In 2019 the Stacks https://www.stacks.co/ project was launched which created a smart contract layer for Bitcoin, including the possibility for NFTs. One notable project on this was https://satoshibles.com/.

However all previous NFT-style projects have failed to gain significant traction so it will be interesting to see whether the Ordinals projects grows past the initial excitement and drama-fuelled interest.

Originally published at https://www.linkedin.com.

--

--