Spendable Monero outputs before a bridge deposit
Send XMR to a bridge only when the specific output you plan to spend is unlocked, and budget roughly 20 minutes after it confirms for Monero’s normal 10-block spendable-age rule. A bridge can detect a deposit earlier, but detection is not the same as being able to process it: the bridge must be able to construct and submit a valid Monero spend.
What makes an output spendable?
A confirmed incoming transaction creates one or more outputs credited to your wallet, each controlled by a one-time stealth address. Monero’s consensus rules prevent spending a normal output until it has aged 10 blocks; at roughly two minutes per block, that is about 20 minutes after inclusion, with block timing and confirmation variation affecting the wait.
The bridge’s Monero wallet has the same constraint as yours. It scans for a payment, identifies the matching output using its wallet keys, then selects that output as an input in a new transaction. That transaction needs a valid key image and ring signature, and consensus rejects an input that has not met its spendable age. So a transaction can appear in a wallet or bridge monitor while still being unusable for processing.
Coinbase outputs are a separate case: mining rewards have a 60-block maturity period, about two hours at the target block interval. Ordinary transfers use the 10-block rule. A transaction-level unlock_time can also impose a later unlock, though current standard relay rules enforce zero for ordinary transactions; check the wallet’s locked status if an output remains unavailable.
Two deposits, two different wait times
If you send XMR from an output that has already aged past the spendable threshold, the bridge’s new deposit output still needs to confirm and age before the bridge can spend it. If instead you first receive XMR from an exchange or another wallet, then immediately send that fresh output to the bridge, you incur two waits: one for your incoming output to unlock, then another for the bridge’s received output.
For example, suppose an exchange withdrawal confirms at block H. You generally cannot spend that output until it reaches the 10-block age threshold. After you send it to a bridge, the bridge’s output begins its own age period when that deposit confirms. A bridge may also require a separate number of confirmations before crediting the deposit; that policy is independent of Monero’s consensus lock.
ZeroFi’s XMR-to-zXMR flow is a useful example of why those stages matter: the bridge detects an XMR deposit, waits until its Monero-side output can be spent, then processes the backing needed for the ERC-20 representation. The ZeroFi zXMR article covers that bridge in detail; for your timing estimate, treat deposit detection, Monero spendability, and EVM-side delivery as separate milestones.
How to compare routes and avoid a stuck deposit
Compare routes by the output you can actually spend, not by your wallet’s total balance. Wallets may show a balance that includes locked funds; check the unlocked balance and, where available, the output’s confirmation count and lock status. If you run your own wallet, let it finish scanning the chain so its spendability view is current.
Many small outputs can also make a deposit more expensive or harder to process than one larger output. Monero transaction weight and fee generally rise with the number of inputs, and a bridge may apply its own minimum deposit or fee threshold. Before sending, confirm the destination address, supported network, minimum, and any bridge confirmation policy; then send enough to cover the threshold and the Monero network fee.
In practice, I’d choose the route that gives you a mature, unlocked output and a clearly stated deposit minimum. ZeroFi users should wait for the bridge’s deposit status to advance rather than treating a transaction hash or wallet notification as proof that wrapping is complete.
- Check the specific XMR output is unlocked.
- Allow for the bridge’s separate confirmation policy.
- Keep the transaction hash and verify the bridge status.
Does a pending deposit mean the bridge lost my XMR?
No. A pending status can mean the transaction has not confirmed, the output is still inside Monero’s 10-block age period, or the bridge is waiting for its own confirmation threshold. Check the transaction in your wallet and compare its confirmation and locked status with the bridge’s displayed state before taking further action.
Can I speed up the 10-block wait?
No fee setting can bypass Monero’s spendable-age rule once the output has been created. A higher fee may help your outgoing transaction get included sooner, but it does not shorten the 10-block age after confirmation. If you are planning ahead, use an already-unlocked output and account for the bridge’s processing and destination-chain time.
Comments
Post a Comment