Create additional receive addresses using cardano-cli?

I’ve been successful at creating a wallet and stake and payment address all using the CLI.

Now, I want to create additional payment addresses. Daedalus shows me a list of 20 different payments addresses for the same wallet. When I use an address, I get a new receive address.

How can I create these new receive addresses “on the fly” using cardano cli?

Or, do I absolutely have to use cardano-wallet? if so, I’m not sure how to do it there either. What are the commands, it seems to keep generating the same original address. I would prefer to do it via cardano-cli if possible.

Wallets generate a lot of key pairs from a single seed phrase (which encodes a large random number called entropy, which is then used to derive a whole tree of key pairs).

cardano-cli cannot do this. With cardano-cli, you always generate new random key pairs that are not related to a common seed phrase. You have to save all of them to retain access to the assets on their addresses.

A new payment address would be created by just generating a new key pair (securely saving the files) and using the same stake key, when generating the address. This address would then be related to your first address in much the same way as the addresses in a wallet are related. The payment keys are different, but the stake key is the same.

So, to have the same thing as in a wallet app – one seed phrase and lots of addresses generated from it without having to manage lots of files – you indeed need cardano-wallet.

As far as I can see, you want cardano-wallet address create:

It’s possible that it always creates the same, as long as that one has not been used. With the --address-index option you might get more. (What Daedalus does is incrementing the index, so that you have 20 unused addresses in the list or maybe 20 after the last used address.)

1 Like