MetaMask / MetaMask/snaps

Research methods to resolve CAIP-2 ChainIds to human-readable names

Open
#793 0 comments 0 reactions 0 assignees View on GitHub
type-research
Dominant language
TypeScript
Stars
853
Forks
662
Avg merge
2d 8h
Merged PRs (30d)
8

Description

As it currently stands we are allowing for keyring snaps to populate a `name` field that corresponds to a supported chain inside its `initialPermissions` in `snap.manifest.json`. This can potentially open up a user to phishing attacks where a malicious name can propose the wrong name for a specific `ChainId` (CAIP-2). We need to research a method to resolve CAIP-2 `ChainId`s to proposed names. Work should also be scoped once implementation is decided.

Some avenues to explore:

1. Create and maintain a community driven list/API for CAIP-2 `ChainId` resolution.
2. Create a method for warning the user about possible mismatches between a proposed name and `ChainId` through UI and allow a user to manually verify
3. Allow for a resolution to proposed names from the first point and fallback to proposed names from a snap.
4. Hooking into a petname system at the point of installation and eventually allowing people to name their accounts.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Compare the four proposed CAIP-2 name-resolution avenues in the issue, focusing on phishing protection and user verification. Done means selecting a resolution method and defining the implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.