Files
proxmox/docs/04-configuration/metamask/METAMASK_INTEGRATION_VERIFICATION_REPORT.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- 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>
2026-02-12 15:46:57 -08:00

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() returns 0 (known issue)
  • Token lists override with correct 18 decimals
  • 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):

  1. CoinGecko API - Primary source (requires token listing)
  2. Token Lists - Limited price metadata support
  3. 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

  1. 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
  2. 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

  1. For Volume Display in MetaMask:

    • Submit tokens to CoinGecko (includes volume data)
    • Ensure tokens have trading activity for volume metrics
  2. For dApp Volume Display:

    • Token aggregation service can provide volume data
    • dApps can query the service API directly

📋 Complete Verification Results

Working Correctly

  1. Decimals:

    • Token lists have correct decimals
    • WETH9 issue resolved via token list override
    • cUSDT/cUSDC decimals correct (6)
    • WETH10 decimals correct (18)
  2. Balances:

    • All ERC-20 functions work
    • balanceOf() works for all tokens
    • Display will be correct when using token lists
  3. Token Lists:

    • Hosted and accessible
    • Correct decimals configured
    • All tokens included

⚠️ Needs Attention

  1. Oracle Price Data:

    • Oracle returns zero (needs update)
    • Oracle Publisher service needs configuration
    • Script available to update manually
  2. MetaMask USD Pricing:

    • ⚠️ MetaMask doesn't use oracles
    • ⚠️ Requires CoinGecko listing
    • Submission documents prepared
  3. Volume Data:

    • ⚠️ MetaMask doesn't get volumes from oracles
    • ⚠️ Requires CoinGecko listing
    • Aggregation service exists for dApps

🔧 Action Items

Immediate (Can Do Now)

  1. Update Oracle Price:

    cd /home/intlc/projects/proxmox/smom-dbis-138
    ./scripts/update-oracle-price.sh
    
  2. Check Oracle Publisher Service:

    ./scripts/check-oracle-publisher-status.sh
    

Short-term (1-2 weeks)

  1. Submit to CoinGecko:

    • Review: docs/04-configuration/coingecko/COINGECKO_SUBMISSION_GUIDE.md
    • Submit cUSDT and cUSDC
    • This will enable USD pricing in MetaMask
  2. Configure Oracle Publisher:

    • Set up VMID 3500 service
    • Configure automatic price updates
    • Monitor service status

Long-term

  1. Monitor CoinGecko Submissions:

    • Follow up on listing requests
    • Verify USD prices appear in MetaMask after listing
  2. 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

  1. Decimals are correct - Token lists override incorrect on-chain decimals
  2. Balances display correctly - ERC-20 functions work, token lists provide correct decimals
  3. Token lists are hosted - Accessible and properly configured

⚠️ Important Limitations

  1. MetaMask doesn't use oracles - Uses CoinGecko API instead
  2. Oracle needs price update - Currently returns zero
  3. USD pricing requires CoinGecko - No workaround for native MetaMask display
  4. Volumes don't come from oracles - Oracles don't provide volume data

Solutions Available

  1. Oracle updates - Script available to update prices
  2. CoinGecko submissions - Documents prepared and ready
  3. dApp integration - Can query oracle directly for USD values

  • 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