Skip to content
Executive summary

Reference tables for fee strategies, transaction finality, and ledger-specific configurations.

  • Fee strategy options: Priority, Specified rate, EIP-1559, Beneficiary pays.
  • Maximum fee acts as a cost safeguard. Transactions wait if fees exceed threshold.
  • Finality varies by blockchain. Some confirm in seconds, others require multiple blocks.
  • Ledger-specific details for Bitcoin-type, EVM-compatible, and other supported chains.
Why this matters

This reference is essential for configuring transactions correctly per blockchain. Fee strategies directly impact transaction speed and cost. Finality settings affect when you can consider a transaction "complete" for operational and accounting purposes. Incorrect settings can result in stuck transactions, unexpected costs, or premature confirmations.

For architects and operators: Bookmark this page for operations. Set appropriate maximum fees per use case to prevent cost surprises during network congestion. Understand finality requirements for each chain—some require waiting for multiple confirmations before considering funds received.

Prerequisites

Before using this reference, you should understand:

Fee strategy and maximum fee

The following values together define your approach to transaction fees:

SettingDescription
Fee strategyIndicates how you want fees to be applied. For example, whether you want Ripple Custody to apply a specific fee or calculate a fee based on priority.
Maximum feeSets the threshold for fees above which the transaction cannot be broadcast. Acts as a safeguard to ensure you know the maximum cost in advance.

Fee strategy types

TypeDescription
No strategyRipple Custody calculates the fee using the ledger default.
PriorityRipple Custody calculates and adjusts the fee based on the priority you define (Low, Medium, High). Helps mitigate volatile fee rates. Required for transfer orders.
Specified rateYou specify the exact fee rate, adjusted for ledger minimums. EIP 1559 variant available for Ethereum-compatible networks.
Specified additional feeRipple Custody adds your specified amount on top of the ledger base fee.
Beneficiary paysThe recipient pays the transaction fees.

Maximum fee behavior

If the current network fee exceeds your maximum fee, Ripple Custody keeps the transaction in Preparing status until network conditions allow broadcasting within your threshold.

Ledger fees change regularly. The fee Ripple Custody calculates is an indication and may not reflect the final fee incurred on the blockchain.

Fee strategies by ledger

The following table provides an overview of the fee strategy types available for each ledger, and the adjustments Ripple Custody makes to the fee calculation.

The only fee strategy available when sending assets using a transfer order is the Priority strategy.

Bitcoin-type ledgers

NetworkFee StrategiesDetails
BitcoinPriority, Specified rate, Beneficiary paysFees calculated in Satoshi per vByte. For dust transactions, the dust amount is added to the transaction fee.
Bitcoin CashPriority, Specified rate, Beneficiary paysSame as Bitcoin
LitecoinPriority, Specified rate, Beneficiary paysSame as Bitcoin
DogecoinPriority, Specified rate, Beneficiary paysSame as Bitcoin
DashPriority, Specified rate, Beneficiary paysSame as Bitcoin

EVM-compatible ledgers

NetworkFee StrategiesDetails
EthereumPriority, Specified rate, Specified rate EIP 1559EIP 1559 rates preferred. Includes base fee + priority fee (tip).
PolygonPriority, Specified rate, Specified rate EIP 1559Same as Ethereum
Binance Smart ChainPriority, Specified rateLegacy gas price model (no EIP 1559)
Avalanche C-ChainPriority, Specified rate, Specified rate EIP 1559Same as Ethereum

Other ledgers

NetworkFee StrategiesDetails
XRP LedgerPriority, Specified additional feeBase fee from network with priority multiplier. Minimum balance: 10 XRP + 2 XRP per object.
HederaNo strategyFee is retrieved directly from the chain and depends on operation type and USD/HBAR exchange rate. Customers cannot prioritize Hedera transactions. Minimum balance: 2 HBAR per account for renewal.
StellarPriorityMinimal fee: 0.00001 XLM (100 Stroops).
AlgorandNo strategyMax of minimal fee (1000 microAlgos) or fee per byte × transaction size. Minimum balance: 100,000 microAlgos.
CardanoNo strategy, Beneficiary paysFees set by ledger protocol.
PolkadotNo strategyFees set by ledger protocol.
TezosPriorityFees set by ledger with priority adjustments.
SolanaNo strategyFee is retrieved directly from the chain. Customers cannot prioritize Solana transactions.

For a full list of supported ledgers, see Supported ledgers.

Transaction finality

Transaction finality is the unchangeable confirmation of a transaction on a blockchain. Ripple Custody implements probabilistic finality, treating transactions as confirmed after a sufficient number of blocks.

To update the default finality values for your deployment, contact your Ripple liaison.

Bitcoin network events, August-September 2026

During the BIP-110 signaling period and the anticipated eCash fork, we recommend that you temporarily increase the required confirmation counts for all incoming Bitcoin transactions. See Bitcoin network events: BIP-110 and eCash fork.

Bitcoin-type networks

NetworkConfirmation BlocksBlocks for ExpiryTime to Expiry
bitcoin-mainnet34323 days
bitcoin-testnet34323 days
bitcoin-cash-mainnet124323 days
bitcoin-cash-testnet34323 days
litecoin-mainnet124323 days
litecoin-testnet34323 days
dogecoin-mainnet604,0323 days
dogecoin-testnet604323 days
dash-mainnet21,7283 days
dash-testnet24323 days

EVM-compatible networks

NetworkConfirmation BlocksBlocks for ExpiryTime to Expiry
ethereum-mainnet9617,2803 days
ethereum-testnet-holesky9617,2803 days
ethereum-testnet-sepolia9617,2803 days
polygon-mainnet200112,6803 days
polygon-testnet-amoy200112,6803 days
bsc-mainnet9686,4003 days
bsc-testnet9686,4003 days
avalanche-c-chain-mainnet186,4003 days
avalanche-c-chain-testnet-fuji186,4003 days

Other networks

NetworkConfirmation BlocksBlocks for ExpiryTime to Expiry
xrpl-mainnet121,6001 day
xrpl-testnet121,6001 day
tezos-mainnet308,6403 days
tezos-testnet308,6403 days
substrate-polkadot143,2003 days
substrate-westend143,2003 days
cardano-mainnet3012,9603 days
cardano-testnet3012,9603 days
solana-mainnet31648,0003 days
solana-devnet31648,0003 days
stellar-mainnet151,8403 days
stellar-testnet151,8403 days
algorand-mainnet157,6003 days
algorand-testnet157,6003 days
hedera-mainnet1129,6003 days
hedera-testnet1129,6003 days
Key Takeaway

Networks with different consensus mechanisms require different confirmation thresholds:

  • Fast finality (1 block): XRP Ledger, Stellar, Algorand, Hedera, Avalanche, Polkadot
  • Medium finality (2-31 blocks): Bitcoin, Dash, Cardano, Tezos, Solana
  • High confirmation (96+ blocks): Ethereum, BSC, Polygon

Transaction status reference

For a complete description of transaction statuses, see Transaction processing.

Status summary

StatusStageDescription
PendingRipple CustodyApproved by policy evaluation, awaiting preparation
PreparingRipple CustodyFetching ledger data (nonce, UTXO, fees)
ReservedRipple CustodyResources allocated, affects Reserved balance
PreparedRipple CustodyNotary attestation obtained, ready for vault verification
BroadcastingRipple CustodyTransaction submitted to blockchain
CompletedRipple CustodySuccessfully broadcast, awaiting confirmation
FailedRipple CustodyTransaction failed (see failure reasons)
DetectedLedgerVisible in mempool or first block
ConfirmedLedgerRequired confirmation blocks reached
ReplacedLedgerTransaction replaced on-chain
ExpiredLedgerConfirmation not reached in time

Troubleshooting

This section covers common transaction issues and their resolutions.

Transaction stuck in Preparing status

Symptoms: Transaction remains in Preparing for an extended period.

Possible causes:

  • Network fees exceed your maximum fee setting
  • Blockchain node connectivity issues
  • Missing UTXO (Bitcoin-type ledgers)

Resolution:

  1. Check current network fee levels against your maximum fee
  2. If fees are high, wait for network conditions to improve or increase maximum fee
  3. Verify blockchain node connectivity in the system status

Transaction failed

Symptoms: Transaction status shows Failed.

Common causes and resolutions:

CauseResolution
Insufficient balanceEnsure account has enough funds including fees
Invalid recipient addressVerify the destination address format
Expired transactionResubmit the transaction
Smart contract revertCheck contract requirements (gas limit, parameters)
notary rejectionContact support; may indicate version mismatch

Transaction confirmed but action not executed

Symptoms: Transaction shows Confirmed but expected action didn't occur on-chain.

Explanation: A Confirmed status means the transaction was included in a block, not that the operation succeeded. The on-chain operation may have failed due to:

  • Malformed smart contract data
  • Insufficient gas for execution
  • Contract-level authorization failure
  • Token not associated with recipient (Hedera)

Resolution: Check the blockchain explorer for the transaction receipt and error details.

Transaction replaced

Symptoms: Transaction shows Replaced status.

Explanation: A replacement transaction was broadcast with the same nonce (EVM) or spending the same UTXO (Bitcoin-type). This typically happens when:

  • You manually requested a replacement
  • A stuck transaction was replaced with a higher fee

The original transaction will not confirm; only the replacement will.

For additional support, contact your Ripple liaison or check the Ripple Custody status page.

Dry-run and indexer errors

When a transaction is prepared in the Ripple Custody UI, the system automatically executes a dry-run of the operation. If an anomaly impacts the indexers or (blockchain) nodes, you may encounter the following errors:

ErrorPossible root causeConsequence
Payload has validation issues preventing the execution of the dry-runThe indexer or ledger accounting service isn't available.You can't broadcast a transaction because the system can neither prepare nor detect transactions. The accounts' balance may differ from the on-chain balance.
Tracker identification failedThe indexer is unable to establish a connection to the node.You can't broadcast a transaction because of the missing connection between the indexer and the node; no accounting operation will be performed.
Tracker not in syncThe indexer or node was unavailable for a period of time.You can still broadcast a transaction, but expect a delay in detecting both inbound and outbound transactions, which impacts the accounts' balance.

If you encounter an error where the indexer and node are out of sync, avoid broadcasting transactions. If you must make an urgent transaction, manually verify the transaction details first.


Glossary

TermDefinition
dropsThe smallest unit of XRP. 1 XRP = 1,000,000 drops.
EIP 1559Ethereum Improvement Proposal 1559, which introduced a base fee + priority fee (tip) model for transaction fees, replacing the legacy gas price auction.
GasA unit measuring computational effort on EVM-compatible blockchains. Transaction fees = gas used × gas price.
lovelaceThe smallest unit of ADA (Cardano). 1 ADA = 1,000,000 lovelace.
microAlgosThe smallest unit of ALGO (Algorand). 1 ALGO = 1,000,000 microAlgos.
micro tezThe smallest unit of XTZ (Tezos). 1 XTZ = 1,000,000 micro tez. Also called mutez.
NonceA transaction counter, starting at 0, that represents the number of operations sent to an EVM blockchain from an account.
PlancksThe smallest unit of DOT (Polkadot). 1 DOT = 10,000,000,000 Plancks.
SatoshiThe smallest unit of BTC (Bitcoin). 1 BTC = 100,000,000 Satoshis.
StroopsThe smallest unit of XLM (Stellar). 1 XLM = 10,000,000 Stroops.
tinybarThe smallest unit of HBAR (Hedera). 1 HBAR = 100,000,000 tinybars.
UTXOUnspent transaction output. A digital currency resource used on Bitcoin-type ledgers representing cryptocurrency available to be spent.
vByteVirtual byte, a unit of measurement for Bitcoin transaction size that accounts for SegWit discount. Used to calculate fees.
WeiThe smallest unit of ETH (Ethereum). 1 ETH = 1,000,000,000,000,000,000 Wei (10¹⁸).