<p>Transaction pinning happens when:</p>

<ol>
<li>I broadcast a transaction that signals opt-in RBF</li>
<li>the transaction does not get confirmed because the feerate is too low</li>
<li>someone else broadcasts a new (child) transaction spending one of the outputs of my transaction</li>
<li>I now can't bump the fee on the transaction unless I include a fee greater than that of the combined original transaction + the child transaction (<a href="https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki" rel="noreferrer">BIP 125</a>, rule 3).</li>
</ol>

<p>If the child transaction in (3) is large (eg a commercial service sweeping up lots of transaction outputs), then the total fee that I'd need to pay for a valid RBF would be very large.</p>

<p>In this scenario, my original transaction has been 'pinned' by the child transaction.</p>

<p>Russell O'Connor has proposed <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015717.html" rel="noreferrer">changing the RBF policy rules</a> to alleviate this problem.</p>

CC BY-SA 4.0
2019-01-20T20:18:55.613Z
Wouldn't the child transaction trigger Child Pays For Parent in most cases?
Sam Jones
CC BY-SA 4.0
2019-01-28T18:45:40.400Z
@SamJones - that depends. Child Pays For Parent is where a child transaction has a higher _fee-rate_ than the parent, thus increasing the average fee-rate across the parent-child package and making it more attractive for a miner to include both in a block. In the example above, the child transaction might have a lower fee-rate, so it doesn't increase the average fee-rate of the package. Instead it is a large transaction with a high _absolute fee_. Any replacement transaction for the parent needs to exceed the absolute fee of the replaced transactions.
jnewbery
CC BY-SA 4.0
2018-11-07T23:13:36.427Z
2018-11-07T23:13:36.427Z
jnewbery
<p>What is meant by the term 'transaction pinning'?</p>

<unconfirmed-transactions><terminology><replace-by-fee><pinning-attack>
What is meant by transaction 'pinning'?
jnewbery
# What is meant by transaction 'pinning'?

(Asked by: username_0 on 2018-11-07)

What is meant by the term 'transaction pinning'?

**Tags:** unconfirmed-transactions, terminology, replace-by-fee, pinning-attack


---

## 1 answers

### Answer by username_0 on 2018-11-07. Score: 16

Transaction pinning happens when:

1. I broadcast a transaction that signals opt-in RBF
2. the transaction does not get confirmed because the feerate is too low
3. someone else broadcasts a new (child) transaction spending one of the outputs of my transaction
4. I now can't bump the fee on the transaction unless I include a fee greater than that of the combined original transaction + the child transaction ([BIP 125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki), rule 3).

If the child transaction in (3) is large (eg a commercial service sweeping up lots of transaction outputs), then the total fee that I'd need to pay for a valid RBF would be very large.

In this scenario, my original transaction has been 'pinned' by the child transaction.

Russell O'Connor has proposed [changing the RBF policy rules](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015717.html) to alleviate this problem.

> **Comments:**
> **username_1**: Wouldn't the child transaction trigger Child Pays For Parent in most cases?  
> **username_0**: @SamJones - that depends. Child Pays For Parent is where a child transaction has a higher _fee-rate_ than the parent, thus increasing the average fee-rate across the parent-child package and making it more attractive for a miner to include both in a block. In the example above, the child transaction might have a lower fee-rate, so it doesn't increase the average fee-rate of the package. Instead it is a large transaction with a high _absolute fee_. Any replacement transaction for the parent needs to exceed the absolute fee of the replaced transactions.  

---

