How to Inscribe an Ordinal

To create an Inscription and the associated Ordinal, there are 2 methods. You could host your own bitcoin node and inscribe ordinals onto the blockchain yourself, or you can use an online inscription service and have the ordinal sent to your wallet. Because most people don't want to download 500gb of bitcoin blockchain data and manage a bitcoin node with commands, we will cover easy Inscription Services first.

## Using an Inscription Service to make Ordinals

Inscription Services are internet based services or apps that allow you to upload an image, text, audio or other formats to inscribe them onto the bitcoin blockchain for a small fee. This is necessary if you want to create an Inscription and Ordinal, but dont want to deal with things like console commands, bitcoin nodes, and installing Ord protocol.

First, you will need a wallet that can receive bitcoin ordinals, follow the guide for How to setup a Sparrow Wallet for Bitcoin Ordinals so you have an address to receive your Ordinals once they have been inscribed.

### List of popular Inscription Services to use

* https://ordinalsbot.com/
* https://gamma.io/ordinals
* https://inscribe.ordswap.io/

There are several options and you should try to price compare between them. Different services will charge different fees and you will receive some part of the fees back as "padding" which are about 5000 satoshis that sit behind your ordinal and prevents your ordinals from being lost to transaction fees.

### Setting the correct fees

If you've never sent bitcoin before, understand that every transfer pays a fee to be processed and that higher fees go "first" while users with lower fee transactions have to wait in line. Check mempool.space to see what the current fees are like, and try to pay the lowest amount that you can without giving yourself a long waiting time. If you only pay a fee of 1sat/vB, you may have to wait weeks or months to have your ordinal processed, OR if you had set a fee of 2sats/vB you may have to wait days to a week to have your transaction added to the blockchain. 5 is decent, 10 is a sure thing, but understand that if you set a fee of 10sats/vB you will be paying twice what a 5sat/vB would pay and 5 times what a 2sat/vB

Anything above 5sats/vB should resolve rather quickly, although there are times, especially when bitcoin's price is rocketing, that a bidding war for transactions can occur. When that happens, even 5sats/vB could take weeks to process, so make sure you check mempool.space before setting your fees so you get a price that you can live with and your ords dont get stranded waiting in line with a fee too low.

### Tracking your Inscription in Mempool

Once you know the tx of your Inscription, you can track it in the mempool here: https://mempool.space/

Just add your tx to the end of this link https://mempool.space/tx/YourTXGoesHere

## Using a Bitcoin Node and Ord to make Ordinals

Copy Pasted with love, from the Ordinals Handbook 7.2

### Ordinal Inscription Guide

Individual sats can be inscribed with arbitrary content, creating Bitcoin-native digital artifacts that can be held in a Bitcoin wallet and transferred using Bitcoin transactions. Inscriptions are as durable, immutable, secure, and decentralized as Bitcoin itself.

Working with inscriptions requires a Bitcoin full node, to give you a view of the current state of the Bitcoin blockchain, and a wallet that can create inscriptions and perform sat control when constructing transactions to send inscriptions to another wallet.

Bitcoin Core provides both a Bitcoin full node and wallet. However, the Bitcoin Core wallet cannot create inscriptions and does not perform sat control.

This requires `ord`, the ordinal utility. `ord` doesn't implement its own wallet, so `ord wallet` subcommands interact with Bitcoin Core wallets.

This guide covers:

1. Installing Bitcoin Core
2. Syncing the Bitcoin blockchain
3. Creating a Bitcoin Core wallet
4. Using `ord wallet receive` to receive sats
5. Creating inscriptions with `ord wallet inscribe`
6. Sending inscriptions with `ord wallet send`
7. Receiving inscriptions with `ord wallet receive`

### Getting Help

If you get stuck, try asking for help on the Ordinals Discord Server, or checking GitHub for relevant issues and discussions.

### Installing Bitcoin Core

Bitcoin Core is available from bitcoincore.org on the download page.

Making inscriptions requires Bitcoin Core 24 or newer.

This guide does not cover installing Bitcoin Core in detail. Once Bitcoin Core is installed, you should be able to run `bitcoind -version` successfully from the command line.

### Configuring Bitcoin Core

`ord` requires Bitcoin Core's transaction index.

To configure your Bitcoin Core node to maintain a transaction index, add the following to your `bitcoin.conf`:

```
txindex=1

```

Or, run `bitcoind` with `-txindex`:

```
bitcoind -txindex

```

### Syncing the Bitcoin Blockchain

To sync the chain, run:

```
bitcoind -txindex

```

…and leave it running until `getblockcount`:

```
bitcoin-cli getblockcount

```

agrees with the block count on a block explorer like the mempool.space block explorer. `ord` interacts with `bitcoind`, so you should leave `bitcoind` running in the background when you're using `ord`.

### Installing `ord`

The `ord` utility is written in Rust and can be built from source. Pre-built binaries are available on the releases page.

You can install the latest pre-built binary from the command line with:

```
curl --proto '=https' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s

```

Once `ord` is installed, you should be able to run:

```
ord --version

```

Which prints out `ord`'s version number.

### Creating a Bitcoin Core Wallet

`ord` uses Bitcoin Core to manage private keys, sign transactions, and broadcast transactions to the Bitcoin network.

To create a Bitcoin Core wallet named `ord` for use with `ord`, run:

```
ord wallet create

```

### Receiving Sats

Inscriptions are made on individual sats, using normal Bitcoin transactions that pay fees in sats, so your wallet will need some sats.

Get a new address from your `ord` wallet by running:

```
ord wallet receive

```

And send it some funds.

You can see pending transactions with:

```
ord wallet transactions

```

Once the transaction confirms, you should be able to see the transactions outputs with `ord wallet outputs`.

### Creating Inscription Content

Sats can be inscribed with any kind of content, but the `ord` wallet only supports content types that can be displayed by the `ord` block explorer.

Additionally, inscriptions are included in transactions, so the larger the content, the higher the fee that the inscription transaction must pay.

Inscription content is included in transaction witnesses, which receive the witness discount. To calculate the approximate fee that an inscribe transaction will pay, divide the content size by four and muliply by the fee rate.

Inscription transactions must be less than 400,000 weight units, or they will not be relayed by Bitcoin Core. One byte of inscription content costs one weight unit. Since an inscription transaction includes not just the inscription content, limit inscription content to less than 400,000 weight units. 390,000 weight units should be safe.

### Creating Inscriptions

To create an inscription with the contents of `FILE`, run:

```
ord wallet inscribe --fee-rate FEE_RATE FILE

```

Ord will output two transactions IDs, one for the commit transaction, and one for the reveal transaction, and the inscription ID. Inscription IDs are of the form `TXIDiN`, where `TXID` is the transaction ID of the reveal transaction, and `N` is the index of the inscription in the reveal transaction.

The commit transaction commits to a tapscript containing the contents of the inscription, and the reveal transaction spends from that tapscript, revealing the contents on chain and inscribing them on the first sat of the first output of the reveal transaction.

Wait for the reveal transaction to be mined. You can check the status of the commit and reveal transactions using the mempool.space block explorer.

Once the reveal transaction has been mined, the inscription ID should be printed when you run:

```
ord wallet inscriptions

```

And when you visit the ordinals explorer at `ordinals.com/inscription/INSCRIPTION_ID`.

### Sending Inscriptions

Ask the recipient to generate a new address by running:

```
ord wallet receive

```

Send the inscription by running:

```
ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>

```

See the pending transaction with:

```
ord wallet transactions

```

Once the send transaction confirms, the recipient can confirm receipt by running:

```
ord wallet inscriptions

```

### Receiving Inscriptions

Generate a new receive address using:

```
ord wallet receive

```

The sender can transfer the inscription to your address using:

```
ord wallet send ADDRESS INSCRIPTION_ID

```

See the pending transaction with:

```
ord wallet transactions

```

Once the send transaction confirms, you can can confirm receipt by running:

```
ord wallet inscriptions

```

## Additional Resources

### Ordinals Handbook

Bitcoin Ordinal Handbook, Scroll to the bottom for videos from Casey Rodarmor: https://docs.ordinals.com/introduction.html

### How to check if an image has been inscribed before

How to check if an image has been inscribed before using Ordeets.com "uniqueness" search: https://ordeets.com/uniqueness

### Articles and Sources

Trust Machine Article "How to Inscribe a Bitcoin Ordinal": https://trustmachines.co/blog/how-to-inscribe-a-bitcoin-ordinal/

### Bitcoin Ordinals Subreddit

Let us know on the Bitcoin Ordinals subreddit r/BitcoinOrdinals if you get stuck somewhere or need any help.