Costo Bravo

How To Ordinals: a short guide for artists and future inscribooors

A practical, non-technical guide to inscribing art on Bitcoin: making sense of provenance, recursion, special sats, fees, and other tips for releasing work on Ordinals.

Someone recently asked me for advice on inscribing art on Bitcoin. The conversation reminded me how quickly these tools begin to feel natural when you use them every day, and how dense they can seem when you have only just discovered Ordinals and the protocol's intricate set of features.

Here is an attempt at (un)covering the essentials, answering some of the questions newcomers keep asking, and sharing some links to save time and money, all while giving enough information about what's important. I hope this can make things clearer for those on the fence, eager to give Ordinals a go.

Please note, this is a practical, non-technical overview. My goal is to briefly go over the features that I think are important, just like I would with a friend, in a conversation or DM.


Are Ordinals and inscriptions the same thing? 🤔

People use the two words interchangeably to talk about digital artifacts on Bitcoin, also sometimes called Bitcoin NFTs. In reality, they are distinct in their definition.

Ordinal Theory is the system assigning serial numbers to Satoshis, the smallest unit of Bitcoin (1/100000000th of Bitcoin or 0.00000001 BTC), based on their mining order.

Inscriptions are the actual content, the files embedded on Bitcoin. They're numbered in the order they're confirmed (current count: 127M).

While both represent different things in theory, it's generally accepted to use either word. Similar to NFTs: originally a technical appellation, which has become a way to talk about blockchain art and trading JPEGs in the mainstream language.


Should I inscribe a parent? 🌳

Short answer: yes.

Provenance is a big deal on Ordinals. Having no smart contracts on Bitcoin, it's achieved through an elegant feature called parent-child inscriptions. Any inscription can become a parent, but you must hold it in your wallet at the time of inscription to have it have children.

There's not one single standard to how it should be structured, but the way artists usually approach it is they inscribe a "grandparent" – aka an artist seal, under which all their work resides.

As an example, I have my "By Costo Bravo" grandparent, under which every child is a collection or project of mine. In turn, these child inscriptions have children of their own, usually the artworks or project items. And so on. ordinals.com/inscription/86cb74385a130da318beaa92dc51e773263c78d49cfb988ed2b4844bc216dca9i0

"By Costo Bravo" – Provenance Tree
"By Costo Bravo" – Provenance Tree

Here's another example (by @billyrestey): ordinals.com/inscription/aed91b730063753709e34e21907993094bd273b293c473f881be27441d3b5b8bi0

You can navigate from parent to child and back and explore the entire provenance tree of an artist on ordinals.com. ord.net is another good platform to navigate p-c lineage.

You'll also notice that many provenance trees include collections that are in fact galleries, rather than a group of children. That's because some collections were inscribed before parent-child existed, so galleries (especially ones that are included in the tree) are a way to reference those older works. More on that further down below.

Inscriptions are in "chronological" order and you can't inscribe a parent after the children (fairly logical but worth stating). The cleanest way to create a collection remains to use parent-child from the get-go.

Bear in mind that the parent will often appear as a collection thumbnail on marketplaces that fetch their data from the chain.

How you organise your tree is entirely up to you. Some artists create "folders" first for different categories (1/1s, editions, collabs, experiments, etc), others inscribe project thumbnails directly under the artist seal. But it can get as creative as you want and you can make a disorganised tree if that's your thing. In generative art, some artists also decide to inscribe their engine as a parent, and the outputs as children. In some rare and creative cases, inscribing children can be a way to influence/activate/steer the parent's output.

Creative use of p-c by @E_Pieraccini_
Creative use of p-c by @E_Pieraccini_

What are galleries then? 🖼️

A gallery is an inscription that lists other inscriptions. You simply inscribe as usual and add the gallery feature to it during the process. You can list any inscriptions you want in your gallery, to showcase art you like, or to index a collection onchain. It is particularly useful for collections that were made before parent-child was enabled, or before titles/traits were added, or for those who wish to provide additional attributes for instance.

Galleries by @Ordinals10K
Galleries by @Ordinals10K

Some marketplaces also use galleries as a way to verify collections. But unlike parent-child collections, galleries can be made by anyone and list any pre-existing inscription, regardless of who holds it. So it doesn't imply provenance as much as p-c does. That being said, it's a great way for artists to have everything properly indexed and in one place.

A gallery for Rays by @PawelDudko
A gallery for Rays by @PawelDudko

Where to inscribe? 🤷

Inscribe.dev, by @lifofifo, is my platform of choice. It might seem a little overwhelming at first sight but it gives you control over every aspect, and has a pretty intuitive UI. It also has the lowest service fees (as low as zero if you opt out), which is pretty cool for low budgets. Don't forget to support your local builders though.

Many other platforms exist, chisel.xyz and unisat.io are pretty feature-rich alternatives as well, gamma.io is very beginner-friendly although it might lack some of the most advanced options. There are also ordinalsbot.com, ordinalswallet.com, ordiscan.com, and a multitude of other services that exist out there, this is by no means a comprehensive list.


What is recursion? 🔁

Inscriptions can reference each other on-chain. That's done with code. You can create an HTML that fetches data from existing inscriptions. It's a really deep rabbit hole, but people have come up with extremely original ways of integrating it in their work.

Besides the explorative side, it can also be used to inscribe bigger files, by fragmenting them into smaller parts and stitching them back together in the final HTML. Will share more on that process another time, but feel free to DM me if you need some guidance to do that.

Four fragments stitched into a single high-resolution artwork.
Four fragments stitched into a single high-resolution artwork.

To use recursion, a number of endpoints exist, that you can include in your code. Various aspects of an inscription's information can be called, from its raw content to its parents and children status, metadata, sat details, and more. There are also Bitcoin block data endpoints.

In other words, recursion makes Ordinals a mini-internet of its own. People have inscribed programming libraries, fonts, apps, games, websites, books, archives, in addition to all the forms of art. The more inscriptions are made, and the more data any given inscription can point to, or fetch from.


Titles/traits/metadata... ✍️

Inscriptions used to only include a metadata field that you could customise as you pleased, but titles and traits have been added since, and I think it's important to use them (at least titles).

Titles appear at the top of your inscription page on ordinals.com, as well as under every item on ord.net. They're easy for explorers and marketplaces to scrape from the chain, and let you identify your files, adding to the provenance claim and/or to the general presentation or searchability.

Traits can be set as any custom key/value pair, like Artist/Costo, Rarity/Uncommon, Type/Zombie, etc.. They're used as much for pfp-style attributes as they are for contextual data, or anything else that might be relevant.

Art traits by @MelzieQ
Art traits by @MelzieQ

The old metadata format still exists and is shown on ordinals.com, but is omitted on most platforms. It's more of a hidden, dig-deep kind of information, as metadata usually is in any other context anyway.


How do I optimise for fees vs quality? 💸

While some multi-megabyte inscriptions exist (up to 4MB), those are hard and expensive to make happen (need to pay miners for it). Most inscriptions stay under the ~400kB transaction limit. You can get pretty large and detailed images under 400kB with a little practice (aim for 390kB max to be on the safe side). I recommend this article on compressionism by @ol1y_art on @trygamma: https://blog.gamma.io/compressionism

Tl;dr is that WebP is often much lighter than PNG or JPG and preserves perceived quality pretty well. You can compress to WebP at q (quality) 80-90 with barely any visible difference and in some instances get up to a ~90% reduction in size. Some images are better suited for compression than others of course. Best tool for the job in my opinion is squoosh.app, or you can ask your AI agent to find the highest quality of compression under 400kB for your work.

Other file formats can also be compressed, there's an avenue to explore for every format really. H.264 codec for video, animated WebP for gifs, Draco for 3D, MP3s, are only a few examples of how to reduce file size while preserving visual quality.

As mentioned earlier people also use recursion to save on how much data they have to inscribe (example: inscribe each attribute of a pfp collection once, then call those attributes recursively onchain with lightweight HTMLs).

It's important to understand that the more data you inscribe, the more transaction fees you'll pay.

Fees are pretty low nowadays and if you watch mempool.space closely and aren't in a rush, you should be able to inscribe under 1 sat/vB. To give you a comparison, peak euphoria fees in 2023-2024 were in the tens, sometimes hundreds of sats/vB.

I've created an inscription cost calculator which can help with planning. You can import your file, pick a fee, and it'll show you how much you'll pay, as well as optimisation suggestions to save on costs (compression and more).

With BTC at $63K and 0.4 sat/vB fees, a 100kB image costs $6.61 to inscribe.
With BTC at $63K and 0.4 sat/vB fees, a 100kB image costs $6.61 to inscribe.

What is so special about special sats? 💎

You can choose specific Satoshis to inscribe on, and this can get really interesting. There's the "official" rarity as defined in the Ordinal Theory docs (also called the @rodarmor Rarity Index), as well as circumstantial rarities, based on community preferences, Bitcoin history and culture.

Collectors value these sats more, and artists often decide to inscribe on special/rare/exotic sats as a means of adding value or an extra layer of meaning, or simply signalling attention to detail.

Pretty fun to explore and discover what's behind every sat category. The main marketplace for sats is magisat.io/categories, and it has all the info there too.

An example among many: a pizza-themed collection might want to inscribe on "pizza sats", which are Satoshis used in the famous pizza transaction from 2010, when two pizzas were bought for 10,000 BTC.


How do I release my art to the public? 🚀

There's a bunch of launchpads and platforms but what you need to decide first is whether you pre-inscribe then launch, or let collectors inscribe at mint. The former requires you to pay for inscription fees upfront but gives you total control over every aspect, while the latter is less constraining, but it's much harder to have parent-child for obvious reasons, and you rely on a given platform at least until mint-out.

A point that might feel counter-intuitive to anyone coming from another chain is that when you inscribe, anyone can view it on ord explorers. There are ways to delay the reveal, but it's not something that artists do much on Bitcoin. "Watching the mempool", checking latest inscriptions, figuring out their quirks, reading their metadata, all this is part of the culture, and is even often used as a way to hype up a launch.

"KEEP YOUR EYES ON THE CHAIN" – @artifishalart
"KEEP YOUR EYES ON THE CHAIN" – @artifishalart

There's once again complete freedom in how to eventually release your art to the public. Some will simply direct-list on their preferred marketplaces, inviting collectors to pick their favourites. Others will use launchpads to randomise distribution and get a visibility boost.

1/1 auctions – both dutch and english – are also possible on Ordinals (check @trygamma and @OrdDropz).

Editions are yet another topic, but to keep it short, it's done via delegates, or sometimes recursion. Platforms to have made it easy for artists are @trygamma and @trio_xyz, although other options might exist, and you can also set it up all by yourself. The beauty of Ordinals is that you never really rely on any given platform!


Those are the basics. Obviously, you can simply inscribe an image without any of that and it will already feel special. Or take it to the next level and explore teleburning, delegates, burns, charms, cursed inscriptions, metaprotocols, and more. It's really up to every inscribooor to decide how much fine-tuning and deep-diving they want to do. Just keep in mind that once inscribed, the data will remain there for as long as Bitcoin itself.

🟧


A few must-know:

Many more apps and platforms by talented builders, can't possibly list them all. Please add anything I might have missed in the comments 🙏