Using an external wallet and CPFP

How can I use an external wallet to increase the fee on transactions that show some funds returning? Or transactions that are being received by Leather?

Introduction

See how the following transaction is using an input of 0.00032839 BTC, which pays the fee for an Ordinal transfer in this case. And the rest is returned to the same address 0.00031678 BTC (output). The output can be used for a new transaction, by using an extra high fee for the new (child) transaction we make it interesting for the miner to pick up the transaction as well as its parent transaction. This process is called Child Pay For Parent (CPFP).

The process to increase the effective fee rate for the old transaction entails opening the address from your Leather account in an external wallet that supports CPFP, such as Sparrow wallet. Find the 0.00031678 BTC output and then apply CPFP. I will end this guide with some guidelines on setting the right fee.

Part 1: Accessing your native segwit address with Sparrow Wallet

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

  1. Select “New wallet” from the “File” menu.

  1. Name your wallet.

  1. Set the "script type" to "native SegWit" at the top of the settings page.

  1. Select "New or Imported Software Wallet" from under "Keystores".

  1. Select “Use 24 words” and enter your Secret Key from Leather. ❗️IMPORTANT: You must use the exact same seed phrase / Secret Key as the one you use in Leather, or these instructions won’t work.

  1. Select “Create Keystore” then “Import Keystore”.

Note: m/84'/0'/0' assumes you want to access the BTC balance 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'

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

  1. Select “No Password” or set password.

Part 2: Finding the unspend Bitcoin (UTXO) to increase the fee, using CPFP

  1. One-by-one, check the UTXO's to find the one with the correct value, in this case we are looking for the 0.00031678 BTC output. Example.

134.

  1. Right click unconfirmed in the "date" column and click the "Increase effective fee (CPFP)" option.

  1. Then see the pending UTXO amount again (Amount 29678+2000=31678 sats).

  2. And set the correct fee. Roughly if you set twice the average seen in the last couple blocks that will increase the effective fee enough. You want to make sure there is enough to cover the fee of the new transaction and enough to spare to increase the effective fee on the previous transaction. To make a more accurate estimate see the next section.

  3. Click create transaction

  4. Then finalize transaction for signing and sign it.

Part 3: Setting the fee

  1. To select the right fee here, first check mempool.space to get an idea of current average fees.

  1. If we send a new transaction of similar size (~200 vB) a fee of 15 sats/vB would put the effective fee at 5*200+15*200 = 1000+3000 = 4000 Sats fee total which means an effective fee rate of 4000 / 400 vB = 10 sats per vB)

  2. With the current mempool an effective fee rate of 10 Sat/vB could still be to low to get picked up quickly. If you do not want to risk that, set the fee higher. Also set the fee higher if the transaction size of the pending transaction is much larger than "normal". A normal Ordinal transfer or BTC transaction with 1-2 inputs and outputs will have a virtual size of around 100-200 vB. You can check the size on mempool.space in the lower left section of the transaction details:

Last updated