Need a crash course on Bitcoin layers?
→ READ OUR FREE GUIDE
Need a crash course on Bitcoin layers?
→ READ OUR FREE GUIDE
Need a crash course on Bitcoin layers?
→ READ OUR FREE GUIDE
Need a crash course on Bitcoin layers?
→ READ OUR FREE GUIDE
Need a crash course on Bitcoin layers?
→ READ OUR FREE GUIDE

What Are Bitcoin Runes?

Ordinals? BRC-20 tokens? Runes? In the past 2 years, we’ve seen an explosion of token metaprotocols on Bitcoin. In this post, we’ll take a closer look at Bitcoin Runes and how it enables creators to launch fungible tokens on Bitcoin.

Type
Deep dive
Topic(s)
Bitcoin
Published
December 11, 2024
Author(s)
Lead Content Manager
A graphic showing a Bitcoin Rune
Contents

What Are Bitcoin Runes?

Bitcoin Runes are a metaprotocol that enables fungible tokens on Bitcoin. Launched alongside the Bitcoin Halving in April 2024, Bitcoin Runes were launched as a more efficient alternative to BRC-20 tokens (another popular fungible token metaprotocol on Bitcoin).

Bitcoin Runes is fully functional today and didn’t require any change to the Bitcoin network itself in order to go live. To date, the majority of Runes adoption has been around memecoins—unsurprisingly. In many ways, that was their intent. In the announcement post for Runes, creator Casey Rodarmor wrote

“Fungible tokens are 99.9% scams and memes. However, they don’t appear to be going away any time soon, similar to the way in which casinos don’t appear to be going away any time soon. Creating a good fungible token protocol for Bitcoin might bring significant transaction fee revenue, developer mindshare, and users to Bitcoin. Additionally, if this protocol had a small on-chain footprint and encouraged responsible UTXO management, it might serve as harm reduction compared to existing protocols.”

In other words, memecoins = good for Bitcoin. Runes = good for Bitcoin.

Bitcoin Runes Traction

The first rune was created at Bitcoin blockheight 840,000—the same time as the Bitcoin halving. Since then, there have been 20M Runes-related transactions on Bitcoin, generating 2,630 BTC in fees, and Bitcoin Runes have steadily attracted new users since launch.

Source

Like many launches in the space, Runes started red hot, and the boil has since reduced to a simmer. As of 11/22, 76% of all Runes to date were etched in the first month of Runes activity. A proverbial gold rush, but that’s not to say adoption couldn’t sky rocket in the future. We’ve seen it happen before.

How Are Runes Different From Ordinals?

Bitcoin Ordinals are a metaprotocol for creating non-fungible tokens on Bitcoin, and this metaprotocol helped kick off the revitalization of Bitcoin culture when ordinals launched in January 2023. 

Bitcoin Ordinals and Bitcoin Runes share several things in common. They are both token metaprotocols on Bitcoin, and both were created by Casey Rodarmor. Both metaprotocols exist entirely on-chain and have no reliance on third parties or another token in order to function. The high level difference between them is that Ordinals is a protocol for NFTs on Bitcoin, and Runes is a protocol for fungible tokens on Bitcoin.

How Are Runes Different From BRC-20 Tokens?

BRC-20 tokens and Runes are both fungible token metaprotocols on Bitcoin, and both exist entirely on-chain with no reliance on any off-chain data or participant. But from there, the two protocols diverge.

BRC-20 tokens are a fungible token metaprotocol on Bitcoin that uses ordinal theory and the implementation of Bitcoin Ordinals. Importantly, BRC-20 tokens are not UTXO-based. This means that BRC-20 takes up more space on-chain and leads to the creation of junk UTXOs clogging up the network. It’s an inefficient design and one that can clog up the Bitcoin network (and has in the past).

Runes were designed specifically to address and solve those inefficiencies. Runes uses a UTXO-based design and has a light on-chain footprint compared to BRC-20 tokens. Runes is also compatible with Lightning, whereas BRC-20 is not.

But while Runes design is more efficient than BRC-20’s, they still face competition from BRC-20 due to BRC-20’s first mover advantage. Since Runes’ launch, the protocol has clearly eaten most of BRC-20’s market share, but BRC-20 has shown a rebound in November and December 2024:

Source

Disclaimer: Hiro is a member of the Layer 1 Foundation and contributes to BRC-20 development and maintenance.

How Do You Etch a Rune?

All Runes data is stored inside of <code-rich-text>OP_RETURN<code-rich-text>, an “opcode” for Bitcoin that enables devs to include arbitrary data inside a transaction. In the context of Runes, this arbitrary data that forms a Runes protocol message is called a “runestone” and that runestone can etch a new rune, mint an existing rune, or transfer runes.

To initiate a Runes transaction, a user initiates a Bitcoin transaction that includes an <code-rich-text>OP_RETURN<code-rich-text>, followed by <code-rich-text>OP_13<code-rich-text>, and then a set of data pushes that form the runestone. Each Bitcoin transaction can only have up to 1 runestone.

At a high level, a runestone looks like this:


struct Runestone {
  edicts: Vec,
  etching: Option,
  mint: Option,
  pointer: Option,
}

Each line above corresponds to the protocol action a user wants to take. Creating Runes begins with the process of “etching” a rune, which you do through the following code:


struct Etching {
  divisibility: Option,
  premine: Option,
  rune: Option,
  spacers: Option,
  symbol: Option,
  terms: Option,
}

Once Runes are etched, the terms of their etching cannot be altered even by the creator. Those terms include:

  • How many units are available, as determined by <code-rich-text>divisibility<code-rich-text>
  • Whether there is a <code-rich-text>premine<code-rich-text> allocation set aside for the creator
  • The name of the <code-rich-text>rune<code-rich-text>
  • And whether there are any <code-rich-text>terms<code-rich-text> associated with the mint (such as a minting cap or specified minting window)

After the Runes are etched, you can identify runes by the ID, which consists of the block in which the rune was etched followed by the index of the etching transaction (represented as <code-rich-text>block:tx<code-rich-text>). At this point, Runes also become available for minting to the general public. The mint code structure looks like this:


struct Terms {
  amount: Option,
  cap: Option,
  height: (Option, Option),
  offset: (Option, Option),
}

And once minted, Runes can be transferred using this struct:


struct Edict {
  id: RuneId,
  amount: u128,
  output: u32,
}

Since Runes launch, there is now a lot of tooling out there, such that you may never even interact with these structs in the first place:

What Runes Tooling Is Available Today?

For developers looking to build with Bitcoin Runes, there’s several tools on the market to help you get started.

  • Runes wallets: First and foremost, you need Runes support in wallets, so you can safely store and view Runes held by a particular address. Leather, Xverse, and Ordinals Wallet are 3 popular options.
  • Creator tools: For creators, there are now a number of tools available for etching and minting ordinals without needing to compose runestone data structures yourself. Those tools include Luminex, Unisat, Chisel, and Metarunes.
  • Marketplaces: If you’re looking for liquidity and marketplaces around Bitcoin Runes, try Magic Eden, OKX Marketplace, Unisat, and Dotswap.
  • Data tooling: For developers looking to build with Bitcoin Runes and need reliable Runes data, try using Hiro’s Runes API or building more customized event streams with Runehook.
  • Libraries: RuneLib is a helpful TypeScript library for enciphering and deciphering Runes protocol messages.

Start Building With Bitcoin Runes

The more developers build on the network and the more entrepreneurs push the boundaries of what’s possible on-chain, the more resilient Bitcoin becomes. Whether developers want to create memecoins or are researching zk-proofs on Bitcoin, we welcome all kinds of experimentation!

Feeling inspired by Bitcoin Runes? Learn more about Hiro’s runes tooling in our documentation as well as Runes documentation.

Product updates & dev resources straight to your inbox
Your Email is in an invalid format
Checkbox is required.
Thanks for
subscribing.
Oops! Something went wrong while submitting the form.
Copy link
Mailbox
Hiro news & product updates straight to your inbox
Only relevant communications. We promise we won’t spam.

Related stories