168 lines
4.9 KiB
Markdown
168 lines
4.9 KiB
Markdown
|
|
# MetaMask Portfolio Compatibility for ChainID 138
|
||
|
|
|
||
|
|
Guide for MetaMask Portfolio compatibility with ChainID 138.
|
||
|
|
|
||
|
|
## Current Status
|
||
|
|
|
||
|
|
ChainID 138 is **not** currently supported in MetaMask Portfolio's native features (Swaps, Bridge, Buy/Sell). However, read-only features (balances, token display) may work if token metadata is properly configured.
|
||
|
|
|
||
|
|
## Portfolio Read-Only Features
|
||
|
|
|
||
|
|
### Token Auto-Detection
|
||
|
|
|
||
|
|
MetaMask Portfolio can auto-detect tokens when they appear on **2+ reputable token lists**. To enable auto-detection:
|
||
|
|
|
||
|
|
1. **Official Token List**: Maintain an official token list for ChainID 138
|
||
|
|
2. **Token List Inclusion**: Submit token list to reputable aggregators:
|
||
|
|
- CoinGecko Token Lists
|
||
|
|
- Uniswap Token Lists
|
||
|
|
- Other major DEX token lists
|
||
|
|
3. **Explorer Metadata**: Ensure Blockscout returns standard ERC-20 metadata endpoints
|
||
|
|
|
||
|
|
### Balance Visibility
|
||
|
|
|
||
|
|
Portfolio can display token balances if:
|
||
|
|
|
||
|
|
- Token metadata is available on token lists
|
||
|
|
- Explorer returns standard ERC-20 metadata
|
||
|
|
- Token contract implements standard ERC-20 interface
|
||
|
|
- Token balances are queryable via RPC
|
||
|
|
|
||
|
|
### Token Symbols and Logos
|
||
|
|
|
||
|
|
Portfolio displays token symbols and logos from:
|
||
|
|
|
||
|
|
- Token lists (primary source)
|
||
|
|
- Explorer metadata (fallback)
|
||
|
|
- Contract metadata (if available)
|
||
|
|
|
||
|
|
## CAIP-2 Identifier
|
||
|
|
|
||
|
|
ChainID 138 uses the CAIP-2 identifier: `eip155:138`
|
||
|
|
|
||
|
|
This identifier is used by:
|
||
|
|
- Portfolio for chain identification
|
||
|
|
- Token lists for chain-specific tokens
|
||
|
|
- Indexers for chain-specific data
|
||
|
|
|
||
|
|
## Blockscout Integration
|
||
|
|
|
||
|
|
### Required API Endpoints
|
||
|
|
|
||
|
|
Blockscout must provide these endpoints for Portfolio compatibility:
|
||
|
|
|
||
|
|
1. **Token Metadata**: `/api/v2/tokens/{address}`
|
||
|
|
- Returns: name, symbol, decimals, total_supply
|
||
|
|
|
||
|
|
2. **Token Holders**: `/api/v2/tokens/{address}/holders`
|
||
|
|
- Returns: list of token holders
|
||
|
|
|
||
|
|
3. **Token Transfers**: `/api/v2/tokens/{address}/transfers`
|
||
|
|
- Returns: token transfer history
|
||
|
|
|
||
|
|
### CORS Configuration
|
||
|
|
|
||
|
|
Blockscout must allow CORS requests from Portfolio:
|
||
|
|
|
||
|
|
```
|
||
|
|
Access-Control-Allow-Origin: https://portfolio.metamask.io
|
||
|
|
Access-Control-Allow-Methods: GET, OPTIONS
|
||
|
|
Access-Control-Allow-Headers: Content-Type
|
||
|
|
```
|
||
|
|
|
||
|
|
### Token Logo Serving
|
||
|
|
|
||
|
|
Token logos should be served from Blockscout or CDN:
|
||
|
|
|
||
|
|
- URL format: `https://explorer.d-bis.org/images/tokens/{address}.png`
|
||
|
|
- Fallback: Token logo from token list
|
||
|
|
- Standard: 512x512 PNG format
|
||
|
|
|
||
|
|
## Token List Requirements
|
||
|
|
|
||
|
|
### Official Token List
|
||
|
|
|
||
|
|
The official token list for ChainID 138 must:
|
||
|
|
|
||
|
|
1. **Follow Token Lists Schema**: Use Uniswap Token Lists JSON schema
|
||
|
|
2. **Include All Tokens**: Include all ecosystem tokens
|
||
|
|
3. **Provide Logos**: Include logo URLs for all tokens
|
||
|
|
4. **Maintain Accuracy**: Keep token metadata up to date
|
||
|
|
5. **Host Publicly**: Host on public URL (HTTPS)
|
||
|
|
|
||
|
|
### Token List Submission
|
||
|
|
|
||
|
|
Submit token list to:
|
||
|
|
|
||
|
|
1. **CoinGecko**: For token discovery
|
||
|
|
2. **Uniswap**: For DEX integration
|
||
|
|
3. **Other Aggregators**: For wider reach
|
||
|
|
|
||
|
|
## Limitations
|
||
|
|
|
||
|
|
### Not Supported (Requires MetaMask Partnership)
|
||
|
|
|
||
|
|
- **Swaps**: In-wallet swap aggregator
|
||
|
|
- **Bridge**: Portfolio Bridge integration
|
||
|
|
- **Buy/Sell**: Fiat on/off-ramps
|
||
|
|
- **Advanced Charts**: Market data and charts
|
||
|
|
- **Full Portfolio Features**: Complete portfolio functionality
|
||
|
|
|
||
|
|
### Supported (Read-Only)
|
||
|
|
|
||
|
|
- **Token Balances**: Display token balances
|
||
|
|
- **Token Symbols**: Display token symbols
|
||
|
|
- **Token Logos**: Display token logos
|
||
|
|
- **Transaction History**: View transaction history (via explorer)
|
||
|
|
- **Account Overview**: Basic account information
|
||
|
|
|
||
|
|
## Testing Portfolio Compatibility
|
||
|
|
|
||
|
|
### Checklist
|
||
|
|
|
||
|
|
- [ ] Token list is publicly accessible
|
||
|
|
- [ ] Token list follows Token Lists schema
|
||
|
|
- [ ] Token logos are accessible
|
||
|
|
- [ ] Blockscout API endpoints work
|
||
|
|
- [ ] CORS headers are configured
|
||
|
|
- [ ] Token metadata is accurate
|
||
|
|
- [ ] Token balances are queryable
|
||
|
|
- [ ] CAIP-2 identifier is used correctly
|
||
|
|
|
||
|
|
### Test Steps
|
||
|
|
|
||
|
|
1. **Add Network**: Add ChainID 138 to MetaMask
|
||
|
|
2. **Add Tokens**: Add tokens to MetaMask
|
||
|
|
3. **Check Portfolio**: Open MetaMask Portfolio
|
||
|
|
4. **Verify Balances**: Check if token balances display
|
||
|
|
5. **Verify Symbols**: Check if token symbols display
|
||
|
|
6. **Verify Logos**: Check if token logos display
|
||
|
|
7. **Test Explorer**: Verify explorer links work
|
||
|
|
|
||
|
|
## Future Integration
|
||
|
|
|
||
|
|
### Path to Full Support
|
||
|
|
|
||
|
|
To enable full Portfolio features:
|
||
|
|
|
||
|
|
1. **Business Development**: Engage with Consensys for partnership
|
||
|
|
2. **Liquidity Requirements**: Ensure sufficient liquidity for swaps
|
||
|
|
3. **Bridge Integration**: Integrate with bridge providers
|
||
|
|
4. **On-Ramp Partners**: Partner with fiat on/ramp providers
|
||
|
|
5. **Regulatory Compliance**: Ensure regulatory compliance
|
||
|
|
|
||
|
|
### Tracking
|
||
|
|
|
||
|
|
- Monitor MetaMask Portfolio updates
|
||
|
|
- Track network support announcements
|
||
|
|
- Engage with Consensys for integration
|
||
|
|
- Submit feature requests
|
||
|
|
|
||
|
|
## References
|
||
|
|
|
||
|
|
- [MetaMask Portfolio](https://portfolio.metamask.io)
|
||
|
|
- [Token Lists](https://tokenlists.org)
|
||
|
|
- [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
|
||
|
|
- [Blockscout API](https://docs.blockscout.com/for-developers/api)
|
||
|
|
|