Skip to content
buybitcoinsmart

Glossary / Transactions & fees

Package relay

Definition
Package relay lets a node accept a group of related unconfirmed transactions together, so a child paying a high fee can carry a parent the network would otherwise refuse.

Specified in BIP-331.

Package relay is the fix for a mismatch that stood for years: miners priced groups, while the network that carried transactions to them priced one at a time. Bitcoin Core 28.0, released in October 2024, shipped opportunistic relay for the one-parent-one-child case, and BIP 331 specifies the general version. If you have ever bumped a stuck incoming payment and watched the bump disappear, this is why.

How it works

A node decides whether to keep a transaction the second it arrives, and for most of bitcoin's history it made that call knowing nothing about whatever the transaction was attached to.

Picture the failure. A parent arrives paying below what the node currently demands and is thrown away rather than stored. A child arrives moments later spending an output of that parent, and with no record of the parent the node cannot validate the child either, so it lands in a small orphan pool, about a hundred transactions deep by default, and is forgotten. The fee the child carried is never counted. Ancestor-aware mining, in Bitcoin Core since 2016, could not help, because nothing ever reached a miner.

Opportunistic one-parent-one-child relay closes the common version of that hole. When an orphan turns up whose missing parent was recently rejected for paying too little, the node reconsiders the two as a unit, judging them on combined fee over combined size, and accepts both if the pair clears the bar. The scope is deliberately narrow: one parent, one child. A batch with several under-priced parents is still out of reach.

BIP 331 defines the general mechanism: peers announce support with a sendpackages message during the handshake, then use ancpkginfo, getpkgtxns and pkgtxns to request a transaction's full ancestor set before judging any of it. You can already hand a group to your own node with the submitpackage RPC, capped at 25 transactions and 101 kilovbytes.

The protocols that need this most sign their transactions long before broadcasting them. A Lightning commitment is agreed months ahead of the day it might be used, when nobody knows what fees will be, so the modern design signs it at or near zero fee and lets whichever side needs it attach the fee through an anchor output. That works only if the commitment and its fee-paying child travel as one. The same release added TRUC transactions, specified in BIP 431, which restrict topology so an attacker cannot bury the pair under junk.

Where you see it

Package relay is invisible when it works, and what you notice is its absence: the question that decides your options is whether the stuck parent exists anywhere.

If the parent is sitting in mempools and confirming slowly, ordinary fee bumping is enough and no package is involved. Package relay is for the harder case, where an exchange built its withdrawal batch below the going floor, no node kept a copy, and nothing you pay from your end rescues a transaction the network never accepted.

Look up the transaction id on two or three independent explorers, since each reports its own node's mempool. Nothing anywhere means nothing to bump, and the fix belongs to the sender. Lightning users meet the same machinery on force closes, where a zero-fee commitment plus an anchor spend is now the standard way out of a channel.

One honest caveat: relay improvements only bind between peers running them, so propagation depends on adoption across the network rather than on your own node's version.

Package relay vs child pays for parent

Child pays for parent is the strategy, and package relay is the plumbing that delivers it. The first describes attaching a well-paid child so a miner takes both; the second is the network's ability to move and judge that pair as one object. You can use the strategy without package relay whenever the parent already sits in mempools, which covers most stuck payments. Package relay is what makes the technique work when the parent is priced below what the network will carry.

Not to be confused with

Frequently asked questions

Do I have to enable package relay to use it?

No. Package relay is node behavior, not a wallet setting. Your side of the job is unchanged: spend the unconfirmed coin at a high enough rate. Whether the pair travels together is decided by the software your peers happen to run.

Why can no explorer find my incoming transaction at all?

Because no node kept it. A transaction below the relay floor is refused at the door rather than stored, so there is no copy to look up and nothing for you to bump. The sender has to rebroadcast at a higher rate or replace the transaction.

Related terms

More in Transactions & fees