I am aware it is possible to use "importaddress" to import bitcoin addresses without their associated private keys.

For an online shop that uses "getnewaddress" in order to present a customer with an address, is it possible for "getnewaddress" to only ever serve up "watch-only" addresses?

Ie - I do not want the Bitcoin core wallet to create new addresses. I want to use "importaddress" to import 10k watch-only addresses.

Is the above possible? And, if so, what is the expected behaviour of "getnewaddress" in the event of all 10k watch-only addresses being used up?

3 Answers 3


I don't thing your approach makes sense. Why would you importaddress as watch only and give them out over getnewaddress? Do you try to missuse bitcoind as a address database (importaddress = store | getnewaddress = retrieve)?

If you need endless amounts of addresses, you probably like to switch to Bip32 (a.k.a HDWallets). There is a experimental patch for bitcoin-core (https://github.com/bitcoin/bitcoin/pull/6265) which would allow you to call hdgetaddress without having the master seed (private key) in the wallet.


There are libraries out there built upon bitcoind. These libraries pull with 'getnewaddress'. However, bitcoind will automatically generate new keys once the keypool is exhausted. I was attempting to avoid having private keys on the server.

Another method could be to regularly sweep incoming funds..

  • Nothing stopping you just generating them on the bitcoind server and sending the list of addresses over. There's probably better solutions with HD wallets but this would be at least safe.
    – Claris
    Commented Jul 24, 2015 at 1:28

I was attempting to use an existing script which requests "getnewaddress" from bitcoind when it wants a new address. Sure, I could pre-generate keys.. but this script has no method to store them. It relies upon bitcoind. However, this means that the private keys are stored on the bitcoind server. I was attempting to avoid this.

Is this not a valid scenario I am describing ?

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.