Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BitBox multiple accounts path error in UTXO vs Account model #2125

Open
ruigil opened this issue May 23, 2023 · 6 comments
Open

BitBox multiple accounts path error in UTXO vs Account model #2125

ruigil opened this issue May 23, 2023 · 6 comments

Comments

@ruigil
Copy link

ruigil commented May 23, 2023

I bought a new BitBox02 and tried to restore my multiple Ethereum accounts created with my Ledger, but I could only retrieve the first one.

In Ledger the multiple accounts are created with the path
m/44'/60'/0'/0/0
m/44'/60'/1'/0/0
m/44'/60'/2'/0/0

But in BitBox they are created with the following path
m/44'/60'/0'/0/0
m/44'/60'/0'/0/1
m/44'/60'/0'/0/2

As I understand the BIP44 standard, the path format is m / purpose' / coin_type' / account' / change / address_index.
The 'address index' is for UTXO models, so It seems that for Ethereum accounts the BitBox path is not correct ?

How can I retrieve my multiple Ethereum accounts with my new BitBox02 ?

@benma
Copy link
Contributor

benma commented May 23, 2023

Hi. BIP-44 does not directly apply to Ethereum and there is no one standard that everyone follows unfortunately. The BitBox02 follows the default keypath of myetherwallet.com, which is m/44'/60'/0'/0.

The BitBoxApp and the BitBox02 do not support other keypaths for Ethereum. The BitBox02 firmware could be made to accept other keypaths with a firmware update, but then you'd need to use it with MyEtherWallet or another wallet that lets you specify keypaths.

The easiest solution here is to transfer the funds from Ledger to BitBox02.

@ruigil
Copy link
Author

ruigil commented May 24, 2023

Unfortunately this is not an option for me, because several of my Ethereum accounts are tied to specific smart contract for staking and lending., t is not a question of fund transfer, which means that in the current state BitBox02 is unusable for me.

Is there a guide to update the firmware to accept other paths ?

@benma
Copy link
Contributor

benma commented May 24, 2023

Is there a guide to update the firmware to accept other paths ?

We first need to implement the firmware change and release the update. After the update it then should work with MyEtherWallet.

In Ledger the multiple accounts are created with the path
m/44'/60'/0'/0/0
m/44'/60'/1'/0/0
m/44'/60'/2'/0/0

Are you sure it's not m/44'/60'/0', m/44'/60'/1', m/44'/60'/2', etc. (without the /0/0)? Does Ledger Live display the keypaths?

@ruigil
Copy link
Author

ruigil commented May 25, 2023

Yes I'm sure, and the proof is that the first generated public address is the same.
When I click to see advanced info about the account, this is what I get for the first account

{
"index": 0,
"freshAddressPath": "44'/60'/0'/0/0",
"id": "js:2:ethereum:0x33e80[...]",
"blockHeight": [...]
}

And this is what I get for the second. The second account public key doesn't match BitBox02 second account public key.
{
"index": 1,
"freshAddressPath": "44'/60'/1'/0/0",
"id": "js:2:ethereum:0x4A3fa[...]",
"blockHeight": [...]
}

@benma
Copy link
Contributor

benma commented May 26, 2023

The firmware change needed to allow Ledger Live keypaths can be tracked here:

BitBoxSwiss/bitbox02-firmware#1072

I checked MyEtherWallet and Rabby, and neither seems to offer the option to choose the keypath manually. So an change there will also be needed to be able to access these accounts through MEW or Rabby.

@benma
Copy link
Contributor

benma commented May 26, 2023

Opened upstream issue at Rabby and MEW for this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants