Address Derivation - cardano-address and Daedalus

Hi Team,

I’m working on generating my stake pool keys, and familiarising myself with cardano-address CLI. All seems to be well and good, but when i derive my payment address at 1852H/1815H/0H/0/0, the payment address produced does not match up with the first address I see in Daedalus when I restore the wallet with the same recovery phrase.

I understand the BIP-44 HD Sequential Wallets… from what I’ve read, that first address I see in Daedalus should match up with the base payment address? I’ve also tried the address at index 1 but that also doesn’t line up.

Any insight is greatly appreciated :slight_smile:

edit - additional information - the commands I am running, following the amazing guide by jbax:

cardano-address recovery-phrase generate --size 24 > seed.txt
cat seed.txt | ./cardano-address key from-recovery-phrase Shelley > private_key.txt
cat private_key.txt | ./cardano-address key public > public_key.txt
cat private_key.txt | ./cardano-address key child 1852H/1815H/0H > account_0_key_path.txt
cat account_0_key_path.txt | ./cardano-address key public > account_0_public_root_key.txt
cat account_0_public_root_key.txt | ./cardano-address key child 0/0 > key_for_account_0_address_0.txt
cat key_for_account_0_address_0.txt | ./cardano-address address payment --network-tag 1 > pay_to_account_0_address_0.txt

cat pay_to_account_0_address_0.txt

Perhaps related to this, I found that the Addresses generated by Ledger from a given 24-Word Mnemonic do not correspond to those generated by Daedalus, ADALite. The algorithm must be different. Ledger claims that it is BIP39/BIP44 compliant and that you can restore your address space with any other compliant wallet. If that holds, it follows that Daedalus, ADALite are no such “compliant wallets”

That the Mnemonics from a standard compliant wallet cannot be used with Daedalus, ADALite and vice versa is problematic, but I don’t see how this could be fixed in a backward compatible way.

I assume that’s because the cardano HD wallet isn’t actually BIP44 but relies on ed25519? Where as BIP44 uses secp256k1?

I am assuming Deadalus and the CLI use the same elliptic curve

1 Like

Problem Solved :slight_smile:

I was comparing the payment address instead of the delegated payment address. To validate, the delegated payment address derived from the stake key will match to TOP address you see in Daedalus.