Bitcoin Ordinals for Dummies


1 Bitcoin = 100 million satoshis
1 ETH = 1 billion gwei
1 USD = 100 cents
1 Bitcoin = $23,600
1 Satoshi = $0.000236

What are “sats”?

“Sats” is shorthand for “satoshis”. When you see people say “stack sats” that means “stack satoshis” aka, buy more Bitcoin, as 100 million sats equals 1 Bitcoin.

What is an ordinal?

According to the official documentation definition, an ordinal is a way of assigning individual identities to each satoshi. This means that each satoshi can be tracked, transferred, and given meaning.

To put it simply, ordinals make it possible to track and distinguish between each satoshi, like a unique NFT.

Who invented them?

Casey Rodarmor, a developer in the Bitcoin community, invented the concept of Bitcoin ordinals.

Here's how it works:

When you create a Bitcoin transaction, there are several pieces of data that make up that transaction. Ordinals assume that a transaction takes funds from multiple inputs (sources of funds), and directs them towards multiple outputs (destinations of funds). Funds go into the transaction on a first-in, first-out basis.

For example, if a transaction has inputs of [2, 3] satoshis and outputs of [1, 2], the first satoshi of the first input would be presumed to go to the first output, and so on.

Diagram of how inputs and outputs flow
Diagram of how inputs and outputs flow

There are different types of transaction outputs, which are spendable using different mechanisms.

  • pay-to-public-key (p2pk, never used these days)

  • pay-to-public-key-hash (p2pkh)

  • pay-to-script-hash (p2sh)

  • pay-to-witness-script-hash

  • pay-to-taproot… (and some others)

It’s worth noting that Bitcoin transactions are just a collection of inputs and outputs. Because of that, in a single transaction, you can have multiple senders and multiple receivers in a Bitcoin transaction.

Okay, lets dumb that down…

When you want to send money using Bitcoin, you create something called a "transaction". A transaction is made up of different pieces of information that tell the Bitcoin network where to take the money from and where to send it to.

Let's say you want to send some Bitcoin to two different people. To do this, you need to give the Bitcoin network some money to work with. This money comes from "inputs", which are like buckets that hold your money. You might have one input bucket with 2 coins in it, and another input bucket with 3 coins in it.

When you create the transaction, you also tell the network where to send the money to, which are called "outputs". For example, you might want to send 1 coin to your friend Alice, and 2 coins to your friend Bob.

Now here's the important part: when the Bitcoin network creates the transaction, it takes the money out of your input buckets one coin at a time, in the order that you received them. So the first coin that went into your input bucket with 2 coins would be the first coin that comes out of it.

In our example, the Bitcoin network would take the first coin from your first input bucket (with 2 coins) and send it to Alice (the first output). Then it would take the second coin from your first input bucket and send it to Bob (the second output). Finally, it would take the third coin from your second input bucket (with 3 coins) and send it to Bob (the second output).

Let’s get a little technical…

Ordinals introduce a new concept of storing arbitrary data in the blockchain. Unlike using OP_Return outputs, people are using data stored in taproot scripts because it's cheaper to pay the fees for it, thanks to the vbyte discount.

Well… what is a vByte?

vBytes, also known as vsize, v meaning “virtual,” are used to decide how much block weight needs to be allocated to confirm a transaction on the Bitcoin network.

So, what is Taproot?

Taproot is an upgrade to Bitcoin that introduced several new features. It integrated the Schnorr digital signature scheme into Bitcoin, upgrading Bitcoin's core cryptography, and built on the Segwit upgrade to improve Bitcoin's privacy and lower transaction fees.

1 Bitcoin Block = 1mb
1 Bitcoin Block After Taproot Upgrade = 4mb

Checks - Taproot Ordinal Edition
Checks - Taproot Ordinal Edition

And, what is Segwit?

Segregated Witness (Segwit) is a change in Bitcoin's transaction format where the witness information was removed from the input field of the block. This was done through a “soft fork” on the Bitcoin network. The main purpose of it was to allow for more transactions to be stored in 1 block.

Back to inscribing sats…

The content model of an inscription is akin to how html renders content on a website. An inscription consists of a content type (like jpg, png, gif) and the content itself, which is a byte string. When you inscribe a satoshi, the inscription content is stored completely on-chain. NFT enthusiasts from the Ethereum ecosystem are enticed by the novel native on-chain nature of Bitcoin as many NFTs on Ethereum are just tokens that point to a URL of an image stored in decentralized storage like IPFS or Arweave.

Example of a Taproot script that inscribes a satoshi
Example of a Taproot script that inscribes a satoshi

Inscription content is entirely on-chain, stored in taproot script-path spend scripts. These scripts have very few restrictions on their content and receive the witness discount, making inscription content storage relatively economical.

Using ordinals, you can inscribe data into satoshis, which some consider to be like creating a Bitcoin NFT.

These inscribed sats can be transferred from one wallet to another using regular Bitcoin transactions. Ordinals are held in Bitcoin UTXOs. Transactions, addresses, and UTXOs are normal Bitcoin transactions, with the exception that in order to send individual sats, transactions must control the order and value of inputs and outputs according to ordinal theory.

Um, what’s a UTXO?

A UTXO is an unspent transaction output, essentially a Bitcoin that was spent by one person and sent to another, meaning that the same UTXO cannot be spent multiple times.

Technically, you could add as many inscriptions to the same satoshi as you’d like because every transaction that "moves" it could be using an inscription. However, due to the dust limit, you're pretty much adding the inscription to at least 5,600 (or something like that) satoshis at a time.

However, the standard at the moment on what is considered to be a Bitcoin NFT, or a “legit ordinal”, is that the ordinal must be the genesis inscription in a satoshi. Some collectors value lower inscription numbers over later inscription numbers.

For instance inscription #8,575 may be deemed more valuable than inscription number #68,467. Owning an ordinal with an inscription number in the <100, <1,000, <10,000, <100,000 clubs may have different values based on “rarity”. The rules around what is valuable, and what is not, is very much subjective.

In conclusion…

Ordinals are just a way of pretending that satoshis are discrete and non-fungible, but if people agree that they are, and have some sort of value, then they do.

At the end of the day, it’s just folks having fun.

I hope this helps!

Follow me on Twitter @NFTSupply

Collect your first ordinal Checks - Bitcoin Ordinal Edition

Subscribe to NFTSupply
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
This entry has been permanently stored onchain and signed by its creator.