In this article
- TL;DR
- The wallet mistake that costs the most
- What the ord protocol supports
- What you need before you start
- Path 1 Gamma no-code recommended starting point
- Path 2 UniSat Inscribe for text and batches
- Path 3 ord CLI advanced users only
- Fee estimation
- After your inscription
- Background reading
- Three paths, one rule
I work in the crypto self-custody space, and I have watched the inscriptions debate split rooms full of Bitcoin developers since early 2023. On 11 October 2026 the ord index at ordinals.com/status counted 128,058,203 inscriptions at block height 970,971. The technique works. What still trips people up is one wallet mistake that loses the inscription before you realize what happened.
TL;DR
Three ways to inscribe a Bitcoin ordinal in October 2026. Gamma does it without code for image files. UniSat Inscribe adds text inscriptions and batches to several addresses. The ord CLI (version 0.29.0, released 5 August 2026) gives you full control but needs your own fully synced Bitcoin Core node. Whatever path you use, send the inscription to an Ordinals-aware wallet such as Xverse, UniSat or Leather. A wallet that does not track inscriptions can spend yours by accident.
The wallet mistake that costs the most
An inscription sits on one specific satoshi, and that satoshi sits inside a UTXO, an unspent transaction output. The ord README warns that Bitcoin Core "is not aware of inscriptions and does not perform sat control", and that using its normal commands with an ord wallet "may lead to loss of inscriptions". Any wallet without sat control behaves the same way. It treats the UTXO as ordinary bitcoin, and the next send can hand the inscribed sat to the recipient or pay it to a miner as fee. Sats paid as fees go to the miner who mined the block, as the ordinals FAQ explains. Either way the inscription is no longer yours.
Bitcoin does not roll back. The mistake is final.
Use an Ordinals-aware wallet to receive, store and transfer inscriptions. Gamma's wallet support page recommends these three:
- Xverse, for iOS, Android and browsers
- UniSat, a browser extension at unisat.io
- Leather, formerly Hiro
The same page advises receiving each inscription on a new, unused Taproot address. Never send an inscription to an exchange address. Never send it to a hardware wallet address unless you have confirmed that the software you pair with it keeps inscribed UTXOs apart.
What the ord protocol supports
The ord handbook says an inscription is a content type, "also known as a MIME type", plus the content itself, and that its data model "is that of a HTTP response". The protocol has no fixed list of allowed types. A few examples:
image/png,image/jpegandimage/webpfor imagesimage/giffor animationsimage/svg+xmlfor vector graphicstext/plainfor texttext/htmlfor interactive pagesapplication/jsonfor metadata and generative art traits
Services can be stricter than the protocol. Gamma accepts only WEBP, JPEG, PNG, SVG and GIF and rejects every other file type.
The binding limit is transaction size. The ord wallet guide says Bitcoin Core does not relay a transaction above 400,000 weight units, that one byte of inscription content costs one weight unit, and that 390,000 bytes "should be safe". Individual data pushes may not be larger than 520 bytes, so ord splits a large file across many pushes inside the inscription envelope, per the handbook. A file of a few hundred kilobytes works. A multi-megabyte file will not relay through nodes running Bitcoin Core's default policy; it would need a miner willing to include it directly.
Inscribing takes two transactions, a commit and a reveal. The commit creates a Taproot output that commits to a script holding the content. The reveal spends that output and puts the content on chain inside the envelope OP_FALSE OP_IF "ord" 1 <content-type> 0 <data> OP_ENDIF, as the handbook shows. Bitcoin Core 30.0, published on 10 October 2025, raised the default -datacarriersize from 83 to 100,000 bytes (PR #32406). That setting limits OP_RETURN outputs. It does not touch Taproot witness data, where inscriptions live. If you have seen claims that CVE-2023-50428 or the datacarriersize change broke Ordinals, they did not. See the full breakdown for the distinction.
What you need before you start
- An Ordinals-aware wallet. In my view Xverse is the easiest start for most people, because it runs on phones and in the browser and its site lists Ordinals and Runes support. UniSat and Leather are solid alternatives.
- Bitcoin for fees. Check mempool.space for live rates before you commit. Its fee API returns
fastestFee,halfHourFee,hourFee,economyFeeandminimumFeein sat/vB. The total is the commit fee, the reveal fee and the postage, the sats that travel with the inscription. ord attaches 10,000 sats of postage by default. - Your file. Keep it as small as you can live with. Every byte costs fee.
Path 1 Gamma no-code recommended starting point
Gamma builds and broadcasts the inscription for you. You need no node and no command line. You pay Gamma from your wallet, and Gamma's servers send the inscription to your address, as its status guide describes.
Step 1. Install Xverse, UniSat or Leather. Back up your seed phrase and fund the wallet. Note the Taproot address it uses for Ordinals.
Step 2. Go to gamma.io and click Connect wallet in the top right corner, per Gamma's wallet guide. Select the account and approve the connection.
Step 3. Open the inscription creator at gamma.io/create/bitcoin/inscription and choose an individual inscription.
Step 4. Upload the file. Gamma inscribes images under 60 KB and GIFs under 200 KB as they are. It resizes larger images and converts them to WEBP unless you switch on high resolution, which raises the limit to 390 KB.
Step 5. Check the total Gamma quotes. If it looks high, compare the current rates on mempool.space and decide whether to wait.
Step 6. Approve the payment in your wallet. Pay the full amount in one transaction, because Gamma does not combine partial payments. After the payment confirms, Gamma broadcasts the inscription.
Step 7. Wait and check. Your payment and the inscription each need a block, so Gamma says to expect about 60 to 90 minutes, and up to 48 hours at a low fee. Track the order in your Gamma profile under Mints. When it shows Completed, look up the inscription ID at ordinals.com.
Path 2 UniSat Inscribe for text and batches
OrdinalsBot, the service many older guides send you to, is winding down. Its founders announced on 19 August 2026 that running the business "is no longer viable" and put the company up for sale. Do not pay an inscription invoice there.
UniSat Inscribe covers what Gamma does not: text inscriptions and batches. The workflow in UniSat's own guide:
- Open unisat.io/inscribe and connect UniSat Wallet or another supported wallet.
- Choose Ordinals and the content type: text, files and more.
- Add your content and click Next.
- Pick To Single Address or To Multiple Addresses, and set the network fee.
- Read the risk warning, tick the box and click Submit & Pay Invoice.
- Check the order and pay. You can cancel until the transaction is broadcast.
Reach for UniSat if you want to inscribe text or send a batch to several addresses.
Path 3 ord CLI advanced users only
The ord CLI is the reference implementation at github.com/ordinals/ord, whose README names raphjaph as lead maintainer. The commands below match ord 0.29.0, the current release on 11 October 2026. Flags change between releases, so check the release notes for the version you install.
Requirements, from the ord wallet guide:
- Bitcoin Core 28 or newer, fully synced, with
txindex=1inbitcoin.conf, per the wallet guide. ord also needs Bitcoin Core's REST interface and its wallet enabled. - Cookie authentication. The guide says to make sure
rpcuser,rpcpasswordandrpcauthare not set, because ord reads the.cookiefile in the Bitcoin data directory. - Disk space. The blockchain alone took 822.77 GB on 11 October 2026, before the transaction index. Allocate headroom.
- The
ordbinary from the official release page, or built from source. - Command-line familiarity.
Core wallet workflow (ord 0.29.0):
# Create the ord wallet
ord wallet create
# Get your receive address
ord wallet receive
# Inscribe a file
ord wallet inscribe --fee-rate <sats/vB> --file <path-to-file>
# Send an inscription to another address
ord wallet send --fee-rate <sats/vB> <address> <inscription-id>
Inscribe flags in ord 0.29.0, read from inscribe.rs and shared_args.rs:
| Flag | Purpose |
|---|---|
--fee-rate <sats/vB> | Network fee rate (required) |
--file <path> | File to inscribe (required unless you use --delegate) |
--destination <address> | Where the inscription lands |
--postage <amount> | Sats attached to the inscription output (default 10,000) |
--commit-fee-rate <sats/vB> | Separate fee rate for the commit transaction |
--compress | Compress the content with brotli |
--dry-run | Build the transactions without signing or broadcasting |
--parent <inscription-id> | Make the inscription a child of a parent |
--delegate <inscription-id> | Delegate content to another inscription |
--cbor-metadata <path> | Attach CBOR metadata |
--json-metadata <path> | Attach JSON metadata, converted to CBOR |
--sat <sat> | Inscribe a specific sat |
--satpoint <satpoint> | Inscribe at a specific satpoint |
Two notes on flags that older tutorials get wrong. The simulation flag is --dry-run. There is no --metadata flag; use --cbor-metadata or --json-metadata depending on your encoding. A guide that lists either wrong form is out of date.
Recursive inscriptions load the content of other inscriptions from /content/<INSCRIPTION_ID>. The endpoint /r/inscription/<INSCRIPTION_ID> returns information about an inscription, not its content, per the ord recursion documentation.
Check mempool.space before you set --fee-rate.
Skip this path if you are starting out. In my view Gamma reaches the same result for an image with far less setup, because you do not run a node.
Fee estimation
You pay three things. The commit fee and the reveal fee go to miners. Postage is not a fee: it is the sat value that stays with the inscription, 10,000 sats by default in ord. A platform such as Gamma or UniSat adds its own service fee on top.
The reveal fee grows with the file. Inscription content sits in the witness, which gets the witness discount, so the ord wallet guide says to divide the content size by four and multiply by the fee rate.
A worked example for a 50 KB image (50,000 bytes): 50,000 divided by 4 is 12,500 vbytes. At the 3 sat/vB fastestFee that mempool.space recommended on 11 October 2026, the content costs 37,500 sats, about CHF 26 at that day's CHF 69,411 per bitcoin. At the 1 sat/vB economyFee it costs 12,500 sats, about CHF 8.70. Add the commit transaction and a few hundred sats of overhead, plus 10,000 sats of postage, about CHF 6.90 at the same price, which you keep.
When to inscribe: check mempool.space before every inscription. If you are not in a hurry, set the economyFee rate and wait.
After your inscription
Verify on chain. Your inscription has an ID made of the reveal transaction ID, the letter i and an index that starts at 0, so your first one ends in i0, as the handbook explains. Look it up at ordinals.com to see the content, the sat it lives on, the block height and the current owner.
Transfer safely. Use the Ordinals send function of your Ordinals-aware wallet, or ord wallet send. Never move an inscription with a plain bitcoin send from a wallet without sat control.
List for sale. Two Ordinals marketplaces I checked on 11 October 2026:
- Gamma, where you must be logged in with the address that holds the inscription
- OKX Wallet Ordinals
Background reading
New to satoshi numbering and how inscriptions work? Start here: How Casey Rodarmor Put Millions of Files on Bitcoin. For rare sats and the rarity tiers: The Rarest Bitcoin Sats and How to Hunt Them. For seed phrase backup when you set up your wallet: Bitcoin Self Custody Setup From Zero to Cold Wallet. For the CVE-2023-50428 episode and the datacarriersize change that followed: Why Bitcoin Core Raised the Data Limit 1200x in 2025. For a broader look at NFTs and tokens on Bitcoin: NFTs and Tokens on Bitcoin.
Three paths, one rule
Gamma. Best for a first image inscription. You set nothing up and wait about 60 to 90 minutes for the result. It is my default recommendation.
UniSat Inscribe. Text inscriptions and batches to several addresses.
ord CLI. You keep full control and trust no third party. Budget more than the 822.77 GB the blockchain took on 11 October 2026, plus the time a full node needs to sync.
Whichever path you choose, receive and transfer with Xverse, UniSat or Leather. Keep inscriptions off exchange addresses and out of wallets that treat every UTXO as interchangeable. Bitcoin does not roll back, so an inscription sent to the wrong wallet stays lost.
New to Bitcoin? Start with Chapter 1.
Want the full picture? Read all 19 chapters free or order the physical book.
