chainapsis / keplr-chain-registry

Protocol for Integrating Non-Native Chains to Keplr
https://chains.keplr.app
Other
335 stars 502 forks source link

Corrects Sei (EVM) cointype to 118 #818

Closed cordt-sei closed 1 week ago

cordt-sei commented 2 weeks ago

Update cointype to 118 to align with the cosmos-side cointype. In order for interoperability features to work we require the same key to be used to sign for both environments, therefore we must use the same derivation path for each.

vercel[bot] commented 2 weeks ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
keplr-chain-registry ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 6, 2024 10:56am
delivan commented 1 week ago

This will cause users with addresses created with coin type 60 to no longer be able to use them. Due to the current structure of Keplr, it is more appropriate to add a new chain info with to allow coin type 60 and 118 to be used simultaneously.

cordt-sei commented 1 week ago

it is more appropriate to add a new chain info with to allow coin type 60 and 118 to be used simultaneously.

OK, is it the same structure as the cosmos chains which have alternate cointype? If yes I will redo this.

Also I just want to reiterate - this chain is not the same as evmos or kava - it is absolutely required as a user to have the same underlying pubkey for both addresses. interoperability of both cosmos and evm environments is a key feature of the network, and this falls apart completely if you do not have the same signing key for both addresses.

With consideration to your concern, its clear that both cosmos and evm for Sei will need to allow cointype 60 and 118, since not having the same cointype for both addresses essentially breaks functionality for the entire chain.

In addition, the wallet derivation/hashing method for the evm address is not the same as other cosmos-evm chains. Evmos converts the bech32 address to bytes and then to hex. This is simpler but also not in alignment with evm wallet standard, which is to use the keccak hash of the entire uncompressed pubkey bytes to create the wallet address.

I can send you the full method if needed.