Feature Request: Address generation without blockchain download

Today I wanted to create a wallet for cold storage. I’m a bit tin-foil-hatty, so I intended to do this on my “secure machine” which is a diskless laptop and a tails-usb-drive. I was disappointed to find that Daedalus will not let me generate an address until I download the blockchain. Also, my usb drive is fairly small so I don’t think the blockchain would fit anyhow.

Is there anything about address generation that requires the blockchain? If not, can that functionality be made available before/during block sync?

1 Like

You don’t need the blockchain to generate an address.
There’s a python-cardano project that seems to work:

If you had something like this loaded onto a flash drive you could generate addresses offline.
Something official from IOHK would be better though.
I wouldn’t recommend using this unless you’re 100% sure what you’re doing.

Edit: I forgot about cardano-cli.
That lets you create a wallet without downloading a copy of the blockchain.



address generation has nothing to do with the blockchain

it already is, in cardano-cli, but this is a “dev wallet” - if you use it, be really careful, particularly with account/index (use 0,0) - test everything a couple of times with a very small amount, both sending to and from.

I agree with you that it should be added to Daedalus.

Hi Steve, Your address seems to me a root address which, in principle, should not be used for transactions. Technically, it’s possible but highly not recommended. Crucial point in wallet design: root public keys are not used to actually store money.


Oh, interesting.
It’s the same as the first address that Daedalus generates.
Does that mean you’re not supposed to actually use the first generated address in Daedalus?

Nope, in that case yours is not a root address, but a derivated one (first account’s first address). I have not checked your python code yet. So, I just guessed, probably wrongly guessed.:slight_smile:

Ah okay.
Not my code by the way, just something I found and was playing around with.
Looking at the functions, it’s deriving the public key for that address by looping over the indexes in the derivation path. So it seems like it isn’t the root address.
I’m not an expert on this though :stuck_out_tongue: