I run a service that involves ~500 separate Monero wallets, since they all need unique private keys. To make wallet access faster, I keep the wallets in sync constantly with a simple Python script that opens the wallets one at a time, waits for them to sync, then closes the wallet again.

I'm worried that this isn't as efficient as it could be; my server is constantly at max CPU due to this, and as my service grows, it becomes more difficult. So I'm wondering - is there a better way of doing this?


  • 1
    I am also looking for a solution to this problem. I currently do something similar and its is not scalable at all once you hit 1000s of wallets. Sub-addresses do not solve this issue as my user also needs to be associated with a monero private key. Someone did mention that we would need to recode monero core to be able to scan X number of private keys in batches. But modifying core is not something I'm familiar with. Jun 17, 2021 at 17:05

1 Answer 1


Seeing as you have custody of the wallets, it would seem to make a whole lot more sense to track the funds via subaddresses in a single RPC wallet. Should you still want to dish out individual wallets, you can provide a means to move funds between the master RPC wallet and any other wallet at that time of need.

However, I would question any service creating full wallets for end-users as it's essentially promoting a false sense of security - you (the provider) still have the custody even if you dish out private keys.

Lastly, as you are finding, holding (and maintaining) hundreds of independent full wallets is never going to scale well because each wallet independently needs to scan blocks for transactions. Using subaddresses solves this problem.

In summary, I suggest rethinking the design.

  • I'm more worried about people being able to withdraw after the service goes down, so none of these really apply.
    – Dr-Bracket
    May 9, 2020 at 18:46

Your Answer

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

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