1

I have a UTXO with an inscription that is now valuable, but I accidentally received it into a non-Taproot (bech32, native segwit) wallet.

I'm now aware that because of this, I can't use Ordinal theory to control which satoshis are being spent when I send this transaction.

What I'm wondering is, is there any way to dictate which UTXO the fees come from? This was accepted into a clean wallet, so it's currently the only UTXO. If I add another UTXO, would the fees come from that instead? Thus ensuring that the first UTXO is fully received by the receiver.

I'm aware of one person who was in the same situation. He sent two more UTXOs of 100k satoshis into the same wallet, and then paid the minimum possible fee while keeping bytes low, then pushed his transaction through the VIA btc transaction accelerator. The fee was about ~250 sats, so he had a ~250/200000 chance of failure. It went through successfully.

I'm mostly curious if there's anything else I can do to increase my odds here, and if the logic of what I was told above is sound. It seems obvious that the sats I'm sending are the same ones that are being received by the receiver, they're not mixed within blocks, and that the only risk is that my inscription happens to be attached to one of the satoshi's within the fee. I'm also curious if miners could "snipe" the inscription, but I'm assuming that's not possible as well.

1
  • What wallet are you using? A wallet with coin control should let you pick what utxos to spend from and where the fee should be deducted from
    – sr_gi
    Feb 7, 2023 at 8:43

2 Answers 2

3

is there any way to dictate which UTXO the fees come from?

Some wallets have a feature named "coin control".

The fee is simply the difference between input amount and output amount. There is no correspondence between individual inputs and individual outputs when there are multiple of either - the notion of fees coming from specifically one of several inputs simply has no meaning in the Bitcoin network.

The Ordinals project makes an arbitrary assignment according to its own off-chain rules. This is based on the ordering of inputs and outputs in the transaction - but this order has no meaning in the Bitcoin network and can be random. I guess you would have to manually construct a transaction that makes this order correspond to the external Ordinals rules you want to apply.

3

According to the Ordinals FAQ, the ordinals are assigned first-in-first-out. Each satoshi in the inputs is assigned in order to each first available satoshi in the outputs. Any satoshis from the inputs not assigned to outputs are assigned to the fees after that.

For an example, let’s assume a transaction has two inputs of three and four sats, two outputs of four and two sats, and one sat going to fee. Let’s assume the ordinals of the input sats are [e f g] and [a b c d].

 Inputs         Outputs

[e f g]     ↦  [e f g a]
[a b c d]      [b c]
                            last sats of last input go to fee ⇒ [d]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.