Scenario: Let’s say I have a cold wallet and a hot wallet. I top off my hot wallet with 2 monero. Now my hot wallet has a utxo with 2 xmr.
I buy a pair of alpaca socks online that costs .05 xmr. My wallet spends the 2 xmr utxo, and receives 1.95 as change; however, I have to wait 20 mins for the alpaca socks transfer to confirm before I can buy anything else. So if I see another pair I like I have to wait 20 mins to purchase them.
It’s like the equivalent of the cashier at the store taking 20 mins to figure out how much change to give you after you give them a $100 dollar bill. Annoying AF!
Solution 1: one way to have solved this would have been to slowly send a bunch of smaller transactions from my cold wallet to my hot wallet (I’d still potentially need to wait 20 mins between each transaction). Once I’m done, instead of having a single 2 xmr utxo on my hot wallet, I have 20 .1 xmr utxos in my hot wallet. When you buy the alpaca socks, your wallet sends a .1 xmr utxo and gets .05 xmr as change. This transaction will still take 20 mins to confirm, but while it is confirming you still have 19 .1 utxos that aren’t locked.
This is the equivalent of having a bunch of five dollar bills instead of the $100 dollar bill.
Solution 2: another way to solve this is to send 2 xmr from my cold wallet to my hot wallet. Later, I can slowly (waiting 20 mins between transactions) send 20 .1 transactions to sub addresses of that wallet.
Question: is there a way to implement wallet logic that accomplishes solution 1 or 2 in a less manual way? My sense is that solution 1 its a bad idea because the repeated sends would be an easy heuristic to use.
Solution 2 seems promising though. A wallet provider would have control over the ability to generate new sub addresses, then send funds to those sub addresses autonomously.
Imagine your hot wallet has an option to “make change”. You hit “go” before you go to bed and wake up with change 8 hours later.
Since I believe this is mostly a problem that should be solved for more transactional use cases, I think solving it at the hot wallet level (cake wallet out monerujo) makes most sense.