Stuck Swap Deposit: Why RBF and CPFP Rarely Help
We measured three blocks and the live mempool: 75-92% of transactions signal RBF, yet a swap deposit still cannot be bumped by the site — and CPFP has no output to spend. Here is what actually works.
A swap deposit is not a payment, and the difference only becomes visible when it gets stuck. When you pay a person you keep a lever: you can replace the transaction, you can call them, you can argue. When you pay a swap order's deposit address you hand coins to an address nobody in the conversation controls, and your order page shows a status, not a steering wheel. So the first reflex — “I'll just bump the fee” — deserves a hard look at what each rescue tool actually requires. This article goes through them one by one: RBF, CPFP, and same-nonce replacement, with the numbers we measured this morning. (how Monero fees work)
Start with the queue you are joining. At 06:30 UTC on 25 October 2026 the Bitcoin mempool held 38,007 transactions and 23.49 MvB. The clearing rate was 0.136 sat/vB — the median fee rate of block 973,026, whose cheapest included transaction paid 0.101 sat/vB and whose ninetieth percentile paid 2.25. Paying 1 sat/vB placed a transaction inside 0.43 MvB of higher-priority data, meaning the next block. Paying 0.1 sat/vB placed it behind 19.8 MvB, roughly twenty full blocks, which at ten minutes each is three hours and twenty minutes. That number matters because a swap order's deposit window is thirty minutes from creation. The wall is longer than the window. (how Monero fees work)
RBF is real, and it is not yours to use. Replace-by-fee exists because a transaction can signal replaceability: under BIP125 an input with nSequence below 0xfffffffe is opting in. We pulled three consecutive blocks and counted. In blocks 973,024, 973,025 and 973,026, the shares of non-coinbase transactions carrying that signal were 92.3%, 77.6% and 75.2%. Replacement is not exotic any more — since Bitcoin Core 28.0 in late 2024, full-RBF is the default, so even an unmarked transaction can be replaced in mempool policy terms. But signaling belongs to whoever built the transaction, and the ability to replace belongs to whoever holds the input keys. If your deposit left an exchange, both are the exchange's — and that withdrawal is usually a batched transaction with dozens of outputs, where a bump means re-signing everyone's payout. (how Monero fees work)
The narrow case where bumping works. If you sent from a wallet you control, it exposes a fee-bump action, and the transaction is still unconfirmed, you can replace it at a higher fee — provided the replacement keeps the same deposit output and amount. Two things break in practice. The txid changes, so the hash you screenshotted is dead and any support thread tracking it needs the new one. And plenty of mobile and hardware flows never expose a bump at all. CPFP has no such escape hatch: child-pays-for-parent needs a spendable output of the stuck parent, and a swap deposit's only meaningful output belongs to the provider's deposit address — you cannot sign a spend of it. If the wallet also created change back to you, a child spending that change can pull the parent into a block; send a whole-balance amount and there is no change, hence no child. (how Monero fees work)
Other chains do not even offer the argument. Monero has no replace-by-fee and no child-pays-for-parent: once mined a transaction is final, and one that cannot be mined was never accepted. Relay enforces a fee floor — the node we queried quoted 20,000, 80,000, 320,000 and 4,000,000 piconero per kilobyte across four tiers — so an underpaid Monero transfer is rejected at broadcast rather than parked in a queue. Its pool held 16 transactions at the time of writing against a 600 kB block weight cap, which is why “stuck” is barely a Monero word. TRON and Ethereum sit in between: a pending transaction can be replaced by broadcasting another with the same nonce and a higher fee, the closest thing to a rescue lever outside Bitcoin, but once it is in a block nothing replaces it. And USDT-TRC20 prices that bump in energy — 100 sun per unit at writing — which you pay in TRX you may not be holding. (XMR to USDT exit)
What a stuck deposit actually becomes on our side. Usually nothing catastrophic. An order that receives nothing inside its 30-minute window expires, and our sweep keeps asking the provider about late deposits for six hours so an arrival is matched rather than silently recorded as cancelled. Whatever lands afterwards is refunded to the refund address on the deposit network, in the original asset, minus that return transfer's network fee. That is the honest trade: you get your coins back, not the rate you locked. The one action that reliably makes things worse is the instinct to send again — a second payment to the same deposit address is a second deposit, not a retry, and it does not accelerate the first one. (recovering misdirected funds)
Six things to do before you press send. (1) Read the mempool, not the wallet preset: the floor is the median of the next projected block, 0.136 sat/vB this morning. (2) Override the fee — a 141 vB native SegWit spend at 1 sat/vB costs 141 satoshis, $0.11 with BTC at $80,504; the same transaction at the 0.136 floor costs 19 satoshis, $0.015. The insurance is a dime. (3) Refuse any “economy” preset that lands under the floor, because 0.1 sat/vB is exactly where today's 19.8 MvB wall sits. (4) Send from a wallet you control if you want bump rights at all. (5) Save the txid and the amount as text, not as a screenshot. (6) Do the arithmetic on the window: three hours of queue against thirty minutes of order. (how Monero fees work)
If it is already out, the decision tree is short. Paste the txid into an explorer before touching anything else. Unconfirmed, keys yours, wallet can bump: bump once, keep the deposit output and amount intact, record the new txid. Unconfirmed, keys are an exchange's: open a ticket with the txid, the address, the amount and the time — that is the entire extent of the available leverage. Confirmed but the order says expired: it is a refund case now, and the refund address you typed at order creation is the only route back. Never “cancel” by paying yourself with a second transaction unless you deliberately intend the first one to be replaced — and remember that even that needs the replacement rights described above, plus a miner willing to take the replacement. (recovering misdirected funds)
Time is not on your side either. Across the previous ten blocks the interval ran from 42 seconds to 1,159 seconds, median 414 — “the next block” is an average, not a promise, and a deposit that needs two confirmations is waiting on two draws from that distribution. The uncomfortable conclusion is that almost every rescue fails for the same structural reason: by the time a swap deposit looks stuck, the decisions that mattered were made at signing time — which chain, whose keys, which fee. Set the fee for the queue you can actually see, keep the txid as text, and treat the 30-minute window as the real deadline rather than the moment you hit send. Everything else is a story you tell support afterwards. (how Monero fees work)