- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
8.3 KiB
MetaMask Integration Verification Report
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: 2026-01-27
ChainID: 138 (DBIS Chain)
Status: ✅ Verification Complete
📊 Executive Summary
Results:
- ✅ Passed: 20 checks
- ❌ Failed: 1 check (Oracle price data)
- ⚠️ Warnings: 5 (Expected limitations)
Overall Status: ✅ Decimals and Balances Correct | ⚠️ Pricing/Volumes Need CoinGecko
✅ 1. Decimals Verification
Status: ✅ CORRECT
| Token | On-Chain | Token List | MetaMask List | Status |
|---|---|---|---|---|
| WETH9 | 0 ❌ | 18 ✅ | 18 ✅ | ✅ Fixed via token list |
| WETH10 | 18 ✅ | N/A | 18 ✅ | ✅ Correct |
| cUSDT | 6 ✅ | 6 ✅ | 6 ✅ | ✅ Correct |
| cUSDC | 6 ✅ | 6 ✅ | 6 ✅ | ✅ Correct |
Key Finding
WETH9 Issue Resolved:
- Contract's
decimals()returns0(known issue) - Token lists override with correct
18decimals ✅ - MetaMask will use token list decimals when available
Recommendation: ✅ No action needed - token lists correctly configured
✅ 2. Balance Display Verification
Status: ✅ WORKING
All tokens:
- ✅
balanceOf()function works correctly - ✅ Balance queries succeed
- ✅ Display depends on correct decimals (handled by token lists)
Test Results:
- ✅ cUSDC: balanceOf() works
- ✅ cUSDT: balanceOf() works
- ✅ WETH10: balanceOf() works
- ✅ WETH9: balanceOf() works
Recommendation: ✅ No action needed - balances display correctly
⚠️ 3. Pricing Verification
Status: ⚠️ ORACLE EXISTS BUT NOT USED BY METAMASK
Oracle Contract Status
- Address:
0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6 - Type: ETH/USD Price Feed
- Current Status: ❌ Returns zero (needs price update)
- Update Service: Oracle Publisher (VMID 3500) - needs configuration
MetaMask Price Source Reality
⚠️ CRITICAL FINDING: MetaMask does NOT automatically query oracle contracts.
MetaMask Price Sources (in order):
- CoinGecko API - Primary source (requires token listing)
- Token Lists - Limited price metadata support
- Oracle Contracts - ❌ NOT automatically queried
Current Token Status
| Token | CoinGecko Listed | USD Display in MetaMask |
|---|---|---|
| ETH | ✅ Yes | ✅ Shows USD |
| WETH9 | ❌ No | ❌ No USD (unless CoinGecko lists) |
| WETH10 | ❌ No | ❌ No USD (unless CoinGecko lists) |
| cUSDT | ❌ No | ❌ No USD (needs CoinGecko listing) |
| cUSDC | ❌ No | ❌ No USD (needs CoinGecko listing) |
Recommendations
-
For Oracle (dApp Use):
- ✅ Update oracle with current prices (script available)
- ✅ Oracle Publisher service needs to be running
- ✅ dApps can query oracle directly for USD values
-
For MetaMask USD Display:
- ⏳ Submit cUSDT and cUSDC to CoinGecko
- ⏳ Submit WETH9 and WETH10 to CoinGecko (if needed)
- ✅ Documentation prepared:
docs/04-configuration/coingecko/COINGECKO_SUBMISSION_GUIDE.md
⚠️ 4. Volume Data Verification
Status: ⚠️ ORACLES DON'T PROVIDE VOLUME DATA
Key Finding
MetaMask does NOT display volume data from oracles.
Volume Data Sources:
- CoinGecko API - If token is listed
- Token Lists - Limited support
- Oracle Contracts - ❌ Do not provide volume data
- Token Aggregation Service - Exists but MetaMask doesn't query it
Current Status
- ✅ Token aggregation service exists (
smom-dbis-138/services/token-aggregation) - ✅ Service can aggregate volume from multiple sources (CoinGecko, DexScreener, CMC)
- ⚠️ MetaMask doesn't query this service directly
- ⚠️ Volume data only available if tokens are on CoinGecko
Recommendations
-
For Volume Display in MetaMask:
- ⏳ Submit tokens to CoinGecko (includes volume data)
- ⏳ Ensure tokens have trading activity for volume metrics
-
For dApp Volume Display:
- ✅ Token aggregation service can provide volume data
- ✅ dApps can query the service API directly
📋 Complete Verification Results
✅ Working Correctly
-
Decimals:
- ✅ Token lists have correct decimals
- ✅ WETH9 issue resolved via token list override
- ✅ cUSDT/cUSDC decimals correct (6)
- ✅ WETH10 decimals correct (18)
-
Balances:
- ✅ All ERC-20 functions work
- ✅ balanceOf() works for all tokens
- ✅ Display will be correct when using token lists
-
Token Lists:
- ✅ Hosted and accessible
- ✅ Correct decimals configured
- ✅ All tokens included
⚠️ Needs Attention
-
Oracle Price Data:
- ❌ Oracle returns zero (needs update)
- ⏳ Oracle Publisher service needs configuration
- ✅ Script available to update manually
-
MetaMask USD Pricing:
- ⚠️ MetaMask doesn't use oracles
- ⚠️ Requires CoinGecko listing
- ✅ Submission documents prepared
-
Volume Data:
- ⚠️ MetaMask doesn't get volumes from oracles
- ⚠️ Requires CoinGecko listing
- ✅ Aggregation service exists for dApps
🔧 Action Items
Immediate (Can Do Now)
-
Update Oracle Price:
cd /home/intlc/projects/proxmox/smom-dbis-138 ./scripts/update-oracle-price.sh -
Check Oracle Publisher Service:
./scripts/check-oracle-publisher-status.sh
Short-term (1-2 weeks)
-
Submit to CoinGecko:
- Review:
docs/04-configuration/coingecko/COINGECKO_SUBMISSION_GUIDE.md - Submit cUSDT and cUSDC
- This will enable USD pricing in MetaMask
- Review:
-
Configure Oracle Publisher:
- Set up VMID 3500 service
- Configure automatic price updates
- Monitor service status
Long-term
-
Monitor CoinGecko Submissions:
- Follow up on listing requests
- Verify USD prices appear in MetaMask after listing
-
Maintain Oracle Updates:
- Ensure Oracle Publisher stays running
- Monitor price freshness
📊 Summary Table
| Aspect | Status | MetaMask Source | Oracle Source | Action Needed |
|---|---|---|---|---|
| Decimals | ✅ Correct | Token Lists | N/A | ✅ None |
| Balances | ✅ Working | On-chain | On-chain | ✅ None |
| Pricing | ⚠️ Limited | CoinGecko | Oracle (not used) | ⏳ CoinGecko listing |
| Volumes | ⚠️ Limited | CoinGecko | N/A (oracles don't provide) | ⏳ CoinGecko listing |
🎯 Key Takeaways
✅ What's Working
- Decimals are correct - Token lists override incorrect on-chain decimals
- Balances display correctly - ERC-20 functions work, token lists provide correct decimals
- Token lists are hosted - Accessible and properly configured
⚠️ Important Limitations
- MetaMask doesn't use oracles - Uses CoinGecko API instead
- Oracle needs price update - Currently returns zero
- USD pricing requires CoinGecko - No workaround for native MetaMask display
- Volumes don't come from oracles - Oracles don't provide volume data
✅ Solutions Available
- Oracle updates - Script available to update prices
- CoinGecko submissions - Documents prepared and ready
- dApp integration - Can query oracle directly for USD values
📚 Related Documentation
- Oracle Setup:
docs/04-configuration/metamask/ORACLE_PRICE_FEED_SETUP.md - CoinGecko Guide:
docs/04-configuration/coingecko/COINGECKO_SUBMISSION_GUIDE.md - Decimals Fix:
docs/04-configuration/metamask/FIX_WETH9_WETH10_DECIMALS_AND_ORACLE.md - Token Lists:
token-lists/lists/dbis-138.tokenlist.json
✅ Conclusion
Decimals and Balances: ✅ FULLY WORKING
- Token lists correctly override on-chain decimals
- All balance functions work correctly
- MetaMask will display balances correctly when using token lists
Pricing and Volumes: ⚠️ REQUIRES COINGECKO LISTING
- MetaMask doesn't use oracles for pricing
- CoinGecko listing required for USD display
- Oracle can be used by dApps directly
- Volume data comes from CoinGecko, not oracles
Status: ✅ READY FOR USE (with CoinGecko listing for full MetaMask integration)
Last Updated: 2026-01-27
Verification Script: smom-dbis-138/scripts/check-metamask-integration.sh