so protocol

Inscriptions on Dogecoin

How bytes are packed into scripts so that a later reader can call them art, or a token, or both.

Updated 2026-09-114 min readinscriptions · protocol

Gold inlay on dark wood suggesting data as craft

An inscription, in the Apezord sense, is not a new transaction type. It is a redeem script that begins with push-data the indexer has agreed to treat as an envelope: the marker ord, a content type, and a payload that may be split across pushes or across later transactions. The spend remains a Dogecoin spend. The meaning is extra.

The envelope

The founding example is almost a haiku. Push the string ord. Push OP_1. Push a MIME type such as text/plain; charset=utf8. Push OP_0. Push the bytes of the joke — Woof!. An indexer concatenates, stores, and binds the result to a Shibe.

Single-part envelope (from apezord/doginals)
"ord"
OP_1
"text/plain; charset=utf8"
OP_0
"Woof!"

When the payload is larger, the first numeric opcode tells the indexer how many remaining parts to expect. OP_2 then a type then OP_1 then chunk then OP_0 then chunk — concatenated in order. Across transactions, each continuation begins with a descending separator so a reader can know the work is unfinished until zero.

Chained continuation (second transaction)
OP_0
"woof woof!"

Untrusted bytes

Anything that can be inscribed can be hostile: HTML, scripts, deceptive images, phishing JSON. Suchdoginals never executes inscription content. Explorers that render raw inscriptions are rendering strangers. Treat them like email attachments from the year 2003.

Questions

How large can a Doginal be?

Apezord’s original note estimated ~1500 bytes per transaction before chaining. Chaining across transactions is the intended path for larger files. Relay policy and fees still bound what miners will carry.

Sources

Primary texts for this chapter. The full index lives on Doginals sources.