Some users buying Monero from our site have previously experienced delays with delivery of their Monero. This issue happened when we had multiple Monero buyers buy during the same 10-20 minute period of time. The problem was caused by the default settings for the Monero wallet: by default, the Monero wallet nowadays sends your entire balance whenever you send funds from it (part of your balance goes to the person you’re paying and the rest is sent back to yourself as “change”). This behavior causes all your funds to temporarily become “locked” until the transaction has completely confirmed (which takes about 10-20 minutes, apparently) and the remaining Monero balance returns to your wallet. So if someone else tried to make a buy of Monero during the time while our Monero balance was locked, our system wasn’t able to immediately send the Monero until the change balance returned to our wallet.
We saw this behavior shortly after we enabled sales of Monero, but at first the purchase frequency was relatively infrequent and it wasn’t much of an issue. Over time, however, we’ve experienced an increase in transaction failures due to this issue as more of users began purchasing Monero, so we devoted some effort to finding a way around this problem.
With a little help from our friends... (at Monero)
We recently engaged Monero developers on an IRC chat channel and they were very helpful in providing details on some undocumented features that enable you to effectively split the Monero quantities held in your account into sub balances in a way that prevents your entire balance from being locked whenever you make a transfer (only the amounts in the specific sub balances used get locked).
To me it seems like this should be the default behavior, but I’m admittedly no expert on the internal functioning of the wallet, and maybe one transaction per 10-20 minutes is sufficient for the average wallet user (it’s also possible I’m told to combine payments to multiple people in one transaction, but this doesn’t seem like a great workaround for many use cases).
Anyways, we implemented their suggestions and I’m happy to say that after a few false starts (the first time we tried to set them, we set them in the “wrong place” and the behavior didn’t change) our balance is now kept split up somewhat evenly between multiple sub-balances and we haven’t had any more Monero purchase failures due to the funds being temporarily locked.
Lower Monero transaction fees on the way
We’ve also upgraded to the latest version of the Monero wallet, which will enable us to reduce the fee that we must pay when we do a Monero transfer, once the next hardfork for Monero takes place (scheduled for October 18th). The upgrade will reduce the size of transactions and is expected to reduce transfer fee costs by 80%.