3

My biggest eyesore of Monero which would definitely prevent mass adoption (and adoption by big stores) is that I can only send a single transaction every 20 minutes. Once a transaction is sent, the sending and receiving wallet need to wait for 10 blocks (roughly 20 minutes) before they can spend the funds. This is due to security reasons. It is especially bothersome for the sending party, as it locks her complete account for that time and prevents her from spending anything.

What if I payed for groceries with Monero but forgot to buy apples? Do I need to wait for ~20 minutes?

Do subaddresses somehow fix this issue? What is the recommended strategy except having multiple wallets to spend from? Will this issue ever be fixed / even is a known issue which is being worked on?

Update: Proposal is on reddit https://www.reddit.com/r/Monero/comments/7qepqi/proposal_add_way_to_automatically_split_utxos/

2 Answers 2

3

The amount which remains unlocked after a transaction depends on the number of unspent outputs (UTXO) you have in the wallet.

Consider those scenarios:

A: One UTXO

  1. You have filled the wallet with one transaction of 10 XMR. That means your wallet has only one UTXO containing entire balance.
  2. You spend 1 XMR.
  3. The transaction you create has one input of 10 XMR and two outputs of:
    • 1 XMR you pay, which goes to recipient's address
    • 9 XMR (minus fee) change output that goes back to your address
  4. Again, you have 1 UTXO in the wallet. However, before the transaction has received 10 confirmations, its' outputs remain locked.
  5. Therefore, the unlocked balance of your wallet remains 0 for next ~20 minutes.

B: Multiple UTXO

  1. You have received 100 transactions of 0.1 XMR each. Your wallet has now 100 UTXOs.
  2. You spend 1 XMR.
  3. The transaction has 11 inputs and two outputs:
    • 10 × 0.1 XMR → 1 XMR you pay, which goes to the recipient
    • 1 × 0.1 XMR → fee + change output
  4. As a result, your wallet remains with 89 old and 1 new UTXOs.
  5. The unlocked balance is now 8.9 XMR, while locked balance = 9 XMR - fee

Fees: The transaction from variant B incurs much higher fee because of 11× bigger input set, which makes the resulting transaction significantly bigger.

TL;DR: Funding the wallet with more smaller payments makes it harder to lock-out all funds but results in higher fees.

2
  • Hmm, interesting. I have transferred my XMR in multiple batches (don't remember the exact number, but at least 5) from exchanges to a single wallet, however, regardless of which amount I transfer from it, it always locks my full balance. Is this a bug or did my wallet somehow combine them back to a big large UTXO? How could I check (in GUI and CLI)? Jan 14, 2018 at 20:18
  • unspent_outputs command will help you.
    – emesik
    Jan 15, 2018 at 21:50
0

When receiving, The locked balance is the amount of monero in your wallet that has yet to receive enough confirmations (as determined by the wallet not the protocol) before it can be spent. You do not have to wait before performing a transaction if you still have funds in your unlocked balance.

For example: If I have 1000 monero in my unlocked balance and I just received 10, which awaits confirmation in my locked balance, I do NOT have to wait to spend more from my unlocked balance

When spending, the locked balance depends on the amount being spent and the amount of inputs that made up your balance in the first place.

For example if I received 10 different transactions of 500 monero (5000 total) and I spent 500, 4500 would still be unlocked. However if I received one transaction of 5000 and spent 500, my entire balance of 5000 would be locked

7
  • This applies only if you have received a transaction. What I was talking about is that after sending a transaction, you must / should wait. Jan 14, 2018 at 19:04
  • This is only if all your balance was in one output (came from one input). If you had multiple inputs that made up your balance in the first place then they wouldn’t all be locked. I’ll update the answer to explain Jan 14, 2018 at 19:17
  • 1
    Thanks for the update. Why would using subaddresses not fix the issue and allow me to spend again without the wait and without compromising anonymity? Is it recommended that when planning to transfer 100 XMR bought on an exchange to my wallet, to preferably transfer them in really small chunks to avoid the waiting problem? Maybe it would be worth adding a new feature to the GUI / CLI to somehow split large chunks to smaller ones? Does that even work? Jan 14, 2018 at 19:28
  • It’s a nice feature idea. A split feature which divides your balance into smaller transactions and sends them to yourself. You can use the same address as they would all be different outputs/inputs Jan 14, 2018 at 19:37
  • Change could automatically be split into multiple small units. The only downside to this would be higher transaction fees due to larger transactions, right? Jan 14, 2018 at 20:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.