With closer alignment with Ethereum and transition to L2, the rationale for a special celo derivation path seems lower than ever.
What is the history of the celo derivation path?
When Celo first launched 4 years ago as an L1, the first wallets designed for celo used a unique derivation path "m/44'/52752'/0'"
. It is common for crypto chains to have a unique derivation path but from the beginning this caused issues for users as a mnemonic created with one wallet would result in different addresses when imported to a different wallet. Example: metamask if given a mnemonics created with celocli could not interact with the same addresses/accounts. Since Celo started as EVM compatible and has come closer and closer to Ethereum over the years, this difference seems to serve no purpose other than to create awkward UX.
What are we proposing?
Default to typical ETH derivation path
Our suggestion is for wallets using the CELO_DERIVATION_PATH to begin defaulting to the ETH_DERIVATION_PATH m/44’/60’/0’/0” ( same as used by metamask ) for new wallets / when generated new mneumonics.
Label
Offer an easy way to use the old celo derivation path either via an alias/label or a ui option.
We will be using celo-legacy for celo’s classic derivation path. Celocli already has eth as an alias for the ETH_DERIVATION PATH
E.g. for celocli --derivationPath celo-legacy would be equivalent to --derivationPath m/44’/52752’/0’
Clever Paths Search
Try to search through both celo-legacy and eth derivation paths. Given a root key to find accounts. You should first try the eth derivation path, and see if any of the first 5 accounts have funds (or nonce !=0) and if not, do the same with celo-legacy.
Wallets’ Status
At cLabs we control @celo/celocli and will be switching likely in an upcoming major version to this new default. Including when connected to ledger.
Wallets that switched
Valora (one of the first celo wallets) already switched to ETH_PATH. Trust Wallet did as well.
Already Defaulting to ETH path
Other wallets that support Celo have always defaulted to the ETH derivation path include;
-
Uniswap Wallet,
-
MetaMask,
-
CoinbaseWallet,
-
Brave,
-
ImToken.
Wallets that default to celo-legacy derivation path
-
Ledger Live
-
Othello (formerly known as Celo Web Wallet)
Links for more about Derivation paths
https://help.myetherwallet.com/en/articles/5867305-hd-wallets-and-derivation-paths