Definition
TRUC stands for Topologically Restricted Until Confirmation, an opt-in mempool policy signalled by setting a transaction's nVersion field to 3. Specified in BIP 431, TRUC (often called "v3") restricts how an unconfirmed transaction can be chained with others so that fee-bumping remains predictable and resistant to pinning attacks.
The topology restrictions
A TRUC transaction may have at most one unconfirmed ancestor and one unconfirmed descendant, meaning both the ancestor set and descendant set are capped at two transactions. The child is additionally limited in size (roughly 1,000 virtual bytes) so an attacker cannot bloat it. Because the cluster of related transactions stays tiny and well understood, a node can always evaluate a Replace-by-Fee at the package level rather than being forced to honour an adversary's bloated, low-feerate descendant.
Why it matters for second layers
Contracting protocols such as Lightning rely on broadcasting a presigned commitment transaction and then attaching a fee. Under older rules an attacker could "pin" that transaction by appending a large junk child, making it uneconomical to replace. TRUC sidesteps this: a v3 parent may even sit below the minimum relay feerate as long as a fee-paying child carries the package over the line. TRUC was made standard policy in Bitcoin Core 28.0, and it underpins related features like ephemeral anchors and package relay.
The protection is per-mempool, so its strength scales with adoption across the network. For background on the attack class it neutralises, see transaction pinning and the broader topic of Replace-by-Fee.
In Simple Terms
TRUC stands for Topologically Restricted Until Confirmation, an opt-in mempool policy signalled by setting a transaction’s nVersion field to 3. Specified in BIP 431, TRUC…
