I am creating a wallet (just for the ethereum ecosystem) that allows the user to create multiple accounts from a single 24 word mnemonic.

I was thinking BIP44 is a good fit until I realize some token does not have a BIP44 coin type, for example, ChainLink,

so, what's the strategy for generating a wallet address for an ERC20 token that does not have a BIP44 coin type?

Can I just use the default ETH derived path with an different index, for example,

m/44'/60'/0'/0/0 is for ETH m/44'/60'/0'/0/1 is for LINK

I am thinking it's not a good idea, since if they migrate to another wallet, how could they know the derived path?

What's the best way to handle this? Thanks :)

I am using ethers.js.

1 Answer 1


Usually you just use an Ethereum derivation path for ERC-20 tokens, since you need Ether anyway to send the tokens away from the account. You can use different addresses like /0 and /1 if you'd like, but that would mean having to send Ether from one address to the other once you want to do something with the tokens. Simplest option is to just use the same address for Ether and ERC-20 tokens.

  • Thanks, just checked exodus is doing the same thing, any downside of using one address for all erc20 tokens?
    – Albert Gao
    Commented Oct 15, 2021 at 23:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.