So I ran (address new) 5 times creating 5 subaddresses and sent some money to subaddress 3. In this session I could run (address new) again and it would return a subaddress in index 6. Running (address all) returns all addresses up to index 6. close wallet

On reopening wallet running (address all) only returns the primary address and subaddresses up to the last used subaddress (in this example 3) and on running (address new) it returns the same subaddress at index 4 instead of a new subaddress at index 7.

Is this how it is supposed to work? Is this on purpose?

Is it because wallets wont save subaddresses that arent used, but since each one is created from the previous that once one is used, all previous are saved?

1 Answer 1


Subaddresses are deterministic, so the "new" command is revealing each next subaddress in the sequence to you.

The wallet is supposed to remember how many subaddresses you've asked to see. If you terminate the wallet process instead of shutting it down gracefully, it may not write this count to disk.

Therefore when you reopened the wallet, it observed the incoming funds at subaddress 3 and then had to assume that you had not issued any further subaddresses since it had not managed to properly store that information previously.

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.