Skip to content

Inscribe a file

Who this is for. Anyone with a file they want written onto Bitcoin.

Goal. A file inscribed at an address you control, verifiable on any explorer.

RequirementDetail
Chain and networkBitcoin mainnet
WorkspaceInscribe, at /inscribe, the Files sub-tab
WalletUniverse, UniSat, Xverse, OKX or Wizz
FundsSpendable bitcoin at your payment address. A large file can cost significantly more than a small one
Reversible?No

If this is your first time, do your first inscription instead. It covers the same ground with more explanation.

Inscribe accepts these types, and rejects a file whose extension does not match its actual content:

CategoryTypes
ImagesJPG, JPEG, PNG, WEBP, GIF, SVG
Text and dataTXT, HTML, JSON
Audio and videoMP3, MP4

The overall limit is 4 MB. A larger file is refused with File too large (max 4 MB).

The same guard runs whether you drag a file in or pick one, so there is no path around it.

The Files tab can send your file to more than one protocol, and each has its own payload ceiling. These are protocol limits, not Inscribe preferences.

DestinationPayload limitNotes
OrdinalsNo protocol cap, subject to the 4 MB upload limitThe default, and the one to use unless you have a reason not to
Stamps65,529 bytesOne image only: PNG, JPG, WEBP or GIF. Data goes into the UTXO set, so it cannot be pruned
OP_RETURN34,000 bytesWell above the 79-byte standard relay reference. A file path is capped at 25,000 bytes
Drops256 bytesSmall artifacts with stable IDs. Released, but a deployment must switch it on
Atomicals2,000,000 bytes, and lower where the backend reports a smaller ceiling for your caseReleased, but a deployment must switch it on

Choosing a destination changes the cost as well as the limit. Stamps encode data directly into outputs, which is why they are more expensive per byte and why they cannot be pruned.

  • The preview is the contract. What the preview shows is what is written. There is no edit afterwards.
  • Fund from an address holding only bitcoin where possible. See asset safety.
  • Active content is sandboxed on display, not on chain. HTML, scripts and SVG with scripts render inside an isolated sandbox when Inscribe shows them. That protects the viewer; it does not change what you wrote.
  • Cost scales with size. The network fee is your fee rate times the transaction size. Doubling the file roughly doubles that line.
  1. Open /inscribe and select the Files sub-tab.

    Connect your wallet if you have not. Nothing is spent by connecting.

  2. Add your file.

    Drag it in or use the picker. If it is refused, the message says why: an unsupported type, a mismatch between the extension and the real content, or over 4 MB.

  3. Choose the destination.

    Ordinals is the default. Pick another only if you specifically want its properties, and check your file fits the limit in the table above.

  4. Check the preview.

    Confirm this is the file you meant, at the quality you meant. Read it properly; this is the last cheap moment.

  5. Set the fee rate and output size.

    Normal is selected and marked Recommended. Leave the inscription output at 546 sats unless you have a reason to use 330.

    Watch the network fee move as you change the rate. On a large file the difference between tiers is real money.

  6. Review the confirmation screen.

    It shows the operation type, the fee rate, Network Gas Fee, Service Fee of 1,500 sats, Mint UTXO Value and Total Cost, and it names the receiving address.

    If the paying address holds assets, a warning lists them here. It does not block you.

  7. Confirm and pay.

    Expected wallet screen: a single send to the commit address, for exactly the Total Cost shown. Compare the two numbers. Reject if they differ.

    This is your only signature for this order.

  8. Wait, then verify.

    The status page moves from Awaiting payment to Creation in progress to Wallet visible. You can close the tab.

    Verify by finding the inscription in Portfolio, and independently by looking up the reveal transaction id on any Bitcoin explorer.

Your file on a 546-satoshi output at your Ordinals address, with a reveal transaction id. The exact original bytes are what is stored; any thumbnail Inscribe shows you later is a derived preview and does not alter the original.

  1. Portfolio lists it under your connected wallet.
  2. Explore with your Ordinals address pasted in shows the same thing without a wallet.
  3. Any Bitcoin explorer, using the reveal transaction id, shows the output exists at your address. This check does not depend on Inscribe.
What you seeWhat it meansWhat to do
File too large (max 4 MB).Over the upload limitCompress or resize the file
The file is rejected on typeThe extension does not match the actual content, or the type is not acceptedRe-export in a supported format
The payload exceeds the destination capYour file is fine for Ordinals but too big for the destination you pickedUse Ordinals, or reduce the file
Still Awaiting payment after payingThe payment has not reached the commit address yetWait. Do not pay again. See recovery
The payment will not confirmFee rate too low for current conditionsFix My Payment or Bump Stuck TX
The workspace says a source is unavailableAn index it reads is down or catching upReads and drafts still work; writes stay paused. Nothing signed is at risk

Recovery routes covers unpaid orders, underpayment, stuck payments, closed tabs and failed reveals. Nothing here is lost by closing a tab, and paying twice is never the fix.