How does Omni approach multi chain wallets?
Active Network
OMNI has no concept of an "active" network.
When you're using a more traditional wallet like MetaMask, you are locked into using one network at a time. Metamask uses a network picker dropdown for you to choose the active network. When your active network is Ethereum, users can only see their assets on Ethereum.
Omni is taking a new spin on this UX - It’s better for users to see all their assets at all times. Users are smart enough to discern between USDC on Ethereum and USDC on Polygon as long as we show them the icon of the network that the asset is on.
Key Derivation + Addresses
As a quick refresher,
Mnemonic = seed phrase = secret phrase
Derivation path + mnemonic = private key
Private keys have a corresponding public key
Some hash function + public key = address
Where do derivation paths come from?
However there is nothing forcing wallets to use these derivation paths, for example the most common Ethereum derivation path is m/44'/60'/0'/0/x
but Ledger uses m/44'/60'/x'/0
.
Given the above information you would think that every network has their own way of deriving private keys, however simplicity and lazy wallet development has won over standards, and many domains (ie. not necessarily a network but collection/family of networks) have coalesced around using the same derivation path for multiple networks.
For OMNI, the following derivation paths are used for the respective networks
m/44'/118'/0'/0/x
EVM chains, e.g. Ethereum, Fantom, Avalanche, Harmony, etc
m/44'/501'/0'/0'
Solana
m/44'/397'/0'
NEAR
m/44'/118'/0'/0/0
Cosmos chains e.g. Cosmos Hub, Akash, Osmosis etc.