Yoroi with Ledger / Public keys


I have a quick understanding question regarding Yoroi with the ledger. When setting up the ledger, is given two public keys.

If the set up ledger is deleted from the Yoroi browser and then added again, do the public keys remain or do you get new public keys? Or do the public keys depend to the private keys?

Just worried that past transactions can no longer be tracked or matched.

I hope I could express myself well?

Thanks in advance very much!

You can delete and reconnect the Ledger hardware wallet to any wallet you like, you will have access to the same addresses and transactions (as long as you don’t initialize it with a different recovery seed).


To add the answer for the specific question: The public keys belong to the private keys that are derived from your seed phrase on the Ledger (and only on the Ledger, the seed phrase never goes anywhere else except pen and paper and the Ledger device). When you pair with Yoroi again later, on another device, or with another wallet app – Eternl, Typhon, Flint, … they will ask for the same public keys and the Ledger will give them the same.

1 Like

Ok, thank you very much. That means, as long as the ledger always uses the same recovery phrase, the same public key will be used again and again. Even if you delete the ledger from the browser and add the same ledger again, did I understand that correctly?

Since I can’t test it myself in the next few days, can I see the two public keys on Yoroi if the ledger is connected to Yoroi? Thank you very much!

Yes, exactly that.

I have no clue why they request two public keys from the Ledger.

A wallet – more specifically an account in a wallet, all good wallet apps allow multiple accounts, only Daedalus and Yoroi haven’t implemented it – has one main extended public key. From that one, a lot of public keys – for the stake address and for lots of payment addresses – can be derived. Other wallet apps only request one per account from the Ledger, as far as I have seen.

You can see that public key in Settings – Wallet – Export wallet. Yoroi shows it as QR code and hex string. Other wallet apps use the Bech32 encoding – the one also used for addr… and stake… addresses – starting with acct_xvk. Those can be converted into each other.

Other possibilities to compare if two wallets are the same are the picture and the four letter–four number code displayed next to the wallet name. They are checksums of the public key. Lastly, the stake address is also pretty unique – it is possible to use different stakes in the same account in the same wallet, but there is no wallet app implementing that. They all always only derive the first stake address.

If you really want to see the public keys, you can use cardano-hw-cli. Maybe you can also display them in Yoroi, but I cannot tell. You can take a look here to see how to do it: Stake key - Stake Pool Scripts by APEX Stake Pool
The commented command is for the first payment key’s public key (verification key). You can extract any payment public key using its correct derivation path.