Skip to content

Latest commit

 

History

History
168 lines (132 loc) · 4.03 KB

RBF_CONFIGURATION.md

File metadata and controls

168 lines (132 loc) · 4.03 KB

RBF (Replace-By-Fee) Configuration Guide

Overview

Supports configurable RBF (Replace-By-Fee) modes to accommodate different use cases. RBF allows transactions to be replaced by new transactions that spend the same inputs but pay higher fees.

RBF Modes

Disabled

No RBF replacements are allowed. All transactions are final once added to the mempool.

Use Cases:

  • Enterprise/compliance requirements
  • Nodes that prioritize transaction finality
  • Exchanges with strict security policies

Configuration:

[rbf]
mode = "disabled"

Conservative

Strict RBF rules with higher fee requirements and additional safety checks.

Features:

  • 2x fee rate multiplier (100% increase required)
  • 5000 sat minimum absolute fee bump
  • 1 confirmation minimum before allowing replacement
  • Maximum 3 replacements per transaction
  • 300 second cooldown period

Use Cases:

  • Exchanges
  • Wallets prioritizing user safety
  • Nodes that want to prevent RBF spam

Configuration:

[rbf]
mode = "conservative"
min_fee_rate_multiplier = 2.0
min_fee_bump_satoshis = 5000
min_confirmations = 1
max_replacements_per_tx = 3
cooldown_seconds = 300

Standard (Default)

BIP125-compliant RBF with standard fee requirements.

Features:

  • 1.1x fee rate multiplier (10% increase, BIP125 minimum)
  • 1000 sat minimum absolute fee bump (BIP125 MIN_RELAY_FEE)
  • No confirmation requirement
  • Maximum 10 replacements per transaction
  • 60 second cooldown period

Use Cases:

  • General purpose nodes
  • Default configuration
  • familiar defaults

Configuration:

[rbf]
mode = "standard"
min_fee_rate_multiplier = 1.1
min_fee_bump_satoshis = 1000

Aggressive

Relaxed RBF rules for miners and high-throughput nodes.

Features:

  • 1.05x fee rate multiplier (5% increase)
  • 500 sat minimum absolute fee bump
  • Package replacement support
  • Maximum 10 replacements per transaction
  • 60 second cooldown period

Use Cases:

  • Mining pools
  • High-throughput nodes
  • Nodes prioritizing fee revenue

Configuration:

[rbf]
mode = "aggressive"
min_fee_rate_multiplier = 1.05
min_fee_bump_satoshis = 500
allow_package_replacements = true
max_replacements_per_tx = 10
cooldown_seconds = 60

Configuration Parameters

mode

RBF mode: disabled, conservative, standard, or aggressive

min_fee_rate_multiplier

Minimum fee rate multiplier for replacement (e.g., 1.1 = 10% increase)

min_fee_bump_satoshis

Minimum absolute fee bump in satoshis

min_confirmations

Minimum confirmations before allowing replacement (conservative mode only)

allow_package_replacements

Allow package replacements (aggressive mode only). Package = parent + child transactions replaced together.

max_replacements_per_tx

Maximum number of replacements per transaction. Prevents replacement spam.

cooldown_seconds

Replacement cooldown period in seconds. Prevents rapid-fire replacements.

Examples

Exchange Node (Conservative)

[rbf]
mode = "conservative"
min_fee_rate_multiplier = 2.0
min_fee_bump_satoshis = 5000
min_confirmations = 1
max_replacements_per_tx = 3
cooldown_seconds = 300

Mining Pool (Aggressive)

[rbf]
mode = "aggressive"
min_fee_rate_multiplier = 1.05
min_fee_bump_satoshis = 500
allow_package_replacements = true
max_replacements_per_tx = 10
cooldown_seconds = 60

Standard Node (Default)

[rbf]
mode = "standard"

Best Practices

  1. Exchanges: Use conservative mode to protect users from unexpected replacements
  2. Miners: Use aggressive mode to maximize fee revenue
  3. General Users: Use standard mode for familiar defaults
  4. Enterprise: Use disabled mode if RBF is not allowed by policy

BIP125 Compliance

All modes enforce BIP125 rules:

  • Existing transaction must signal RBF (sequence < 0xffffffff)
  • New transaction must have higher fee rate
  • New transaction must have higher absolute fee
  • New transaction must conflict with existing transaction
  • No new unconfirmed dependencies

Mode-specific requirements are applied in addition to BIP125 rules.