Manually unravelling inscriptions from a single UTXO with Sparrow wallet (experimental)

How can I separate inscribed sats that share a single UTXO using Sparrow Wallet?

This tutorial only works: When the sat offsets are far enough apart so the padding between them can cover transaction fees. If they are all ~546 sats apart you may be able to split them from uninscribed BTC it is mixed with but you'll need another solution to separate them, explained here.

When fee rates on the bitcoin network are low enough for the padding to cover the fee and leave a modest 546 sats with the inscription (to stay above the dust limit).

Diagram of a normal UTXO with a single inscription:

Step 1 confirm the issue.

A transaction like this combined many inscriptions into a single bitcoin output (UTXO) these inscriptions now share one UTXO and the sat offsets are non-standard. A normal offset is 0, which means the first sat in the UTXO is inscribed. Example transaction: https://mempool.space/tx/8162eb8dc7c7fe3677b47d1802c92db1a4d9c7e7e53f306fa03e830a65c018e9

Checking the output on an API like this will show the inscriptions in the output as long as you have not send them elsewhere, change the transaction hash and output (:0 at the end) to view the situation for your transaction/output: https://ordapi.xyz/output/8162eb8dc7c7fe3677b47d1802c92db1a4d9c7e7e53f306fa03e830a65c018e9:0

An output with inscriptions will look like this, the long inscription numbers are displayed:

Step 2: Note the inscription hashes in a spreadsheet

8ed73bedb37b6d2605d5c2706f43d56f0f34c8e66381ea4b5c2612f25f6fb4bci0 8997bcb90cf6e5eb2bebadc12d5fb8bde5f155c62cff15a896aa58d67a6cd2c8i0 13317bdd1f8d5d51b5449a309aee0af23539d5c5996ad717b78c6650b3e4b942i0 69622c541fef9858ce7a8999d53fe9b917db9c839f0584b80413c502cf2d5d2di0 7580e0c00a47d402824ebbde4a5cbfe8d7010347e2772ae48b654f3f88d03efei0

Step 3: Check sat offsets per inscription to find where they are in the "pile"

Check all these inscriptions on an ordinal explorer that displays the sat offset. For example ordinals.hiro.so. Search for the inscription numbers found in step 2 on the ordinal explorer to find:

Add a column in your spreadsheet and note these offsets next to the ordinal number. You can also add the short ordinal number for easier identification. Once you have all of them use the spreadsheet to order them from low to high offset.

Ideally, we separate the inscriptions and get them on a 0 sat offset. But we can settle for separating them and having a non-zero offset in case we make a mistake but let us be careful to double-check the number of uninscribed sats between inscriptions after every separation. This will increase the success rate.

Step 4. Determine the first amount to send to separate the first inscription (from the top of the pile):

Total output: 42030 sats - sat offset: 40000 sats = difference 2030 sats

It is important to set a fee that leaves enough sats with the inscription so it stays over the dust limit. For safety you should leave 546 sats with the inscription 2030-546= 1484 sats for the fee would be available.

Step 5. Import the Leather seed into Sparrow wallet

a. Install and open Sparrow wallet from https://sparrowwallet.com

b. Select "new wallet" from the "File menu.

c. Name your wallet

d. Set the "script type" to "Taproot" at the top of the settings page.

e. Select New or imported Software wallet" from under "Keystores"

f. Select "Use 24 words" and enter your Secret Key from Leather. Note you must use the exact same seed phrase/Secret Key as the one you use in Leather, or these instructions won't work. Do not use a passphrase.

g. Select "Create Keystore" then "Import Keystore". Note: m/86'/0'/0' assumes you want to access the Ordinal Inscription address on Account 1 in the Leather extension. If, for example, you want to access Account 269 in Leather, change the derivation path to m/84'/0'/268'

h. Select "Apply" in the bottom right corner.

i. Select "No password" or set a password.

Step 6. Find the right UTXO in Sparrow from the sidebar

Step 7. Right click the UTXO (42030 sats in this first case) to send selected.

It is important not to add any other UTXO's or it will change everything and mix more BTC with the existing UTXO which is not wanted.

Step 8. Set a taproot address to receive the inscription

Step 9. Set the amount and fee very precisely

Set the Amount to send and fee very precisely so the fee and amount together equal the top of your pile exactly up to the first inscribed sat (in this first case total 2030 sats).

Step 10. Wait for confirmation on the Bitcoin blockchain

The fee rate can be to low to get processed right away. In this case 9.64 sats per vB is lower than the current average. Wait patiently!

Step 11. Check both the outputs on the new transaction

1. Check that the first output indeed transfers the first inscription from the pile. 2. The second output is everything left from the UTXO, in this first case 38516 sats

https://ordapi.xyz/output/<transaction hash>:0 to check output one. https://ordapi.xyz/output/<transaction hash>:1 to check output two for inscriptions. (replace <transaction hash> with the transaction id, for example as found on mempool.space)

Step 12. Repeat from step 2 (skip step 5)

Repeat the steps, ideally from step 2 and 3 to make sure our offsets are still accurate and that the sat was successfully separated.

Make sure the table you created in step 2 and 3 is still accurate by checking the inscriptions they contain and checking the offsets. Note that the second output above (40000 sats) is the next one selected in Sparrow Wallet, to separate the next inscription. Expected with 10000 sats to be send/spend as fee.

Last updated