{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-tokens-not-showing",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-tokens-not-showing/",
  "collection": "ethereum",
  "title": "Why does an Ethereum token balance not appear in my wallet?",
  "description": "Diagnose an absent token balance by separating the wallet address, network, token contract and wallet display list.",
  "aliases": [
    "token balance not showing",
    "import custom token wallet"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:27:58.939Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A token missing from a wallet interface may still be held onchain. Check the selected network, full account address and exact token contract, then verify the balance or transfer on that network. Adding a custom token changes what the interface displays; it does not recover tokens from another address or move them between chains.",
    "claimId": "ethereum-tokens-not-showing-quick-answer",
    "sourceIds": [
      "x425-eth-mm-tokens",
      "x425-eth-eth-jsonrpc"
    ]
  },
  "keyFacts": [
    {
      "label": "Identity",
      "value": "A ticker alone does not uniquely identify a token.",
      "sourceIds": [
        "x425-eth-mm-tokens"
      ],
      "id": "identity",
      "claimId": "ethereum-tokens-not-showing-fact-identity"
    },
    {
      "label": "Display",
      "value": "Wallet detection lists are not a complete list of every token contract.",
      "sourceIds": [
        "x425-eth-mm-tokens"
      ],
      "id": "display",
      "claimId": "ethereum-tokens-not-showing-fact-display"
    },
    {
      "label": "Scope",
      "value": "RPC balance and transaction queries are made against a particular network.",
      "sourceIds": [
        "x425-eth-eth-jsonrpc"
      ],
      "id": "scope",
      "claimId": "ethereum-tokens-not-showing-fact-scope"
    }
  ],
  "prerequisites": [
    "erc-20-tokens"
  ],
  "sections": [
    {
      "id": "check",
      "heading": "Check chain and address before importing",
      "sourceIds": [
        "x425-eth-mm-tokens",
        "x425-eth-eth-jsonrpc"
      ],
      "paragraphs": [
        "Start with the transaction receipt on the network used by the sender. Confirm that the intended account received the relevant token, rather than relying on a successful transaction label alone. Token-contract interaction and ETH transfer are different things.",
        "A mainnet wallet tab cannot show a balance that exists only on a rollup merely because both accounts use the same address text. Select the chain that actually contains the token."
      ]
    },
    {
      "id": "example",
      "heading": "A missing display can be fixed without a transfer",
      "sourceIds": [
        "x425-eth-mm-tokens"
      ],
      "paragraphs": [
        "Suppose a known token’s correct contract shows 12 units at your address but the wallet list omits it. Importing that verified contract can make those 12 units visible. No transfer to yourself is needed to change the list.",
        "Use the issuer’s independently verified contract information. A matching symbol or logo can belong to another contract, and automatic inclusion in a community token list is not an endorsement."
      ]
    },
    {
      "id": "limits",
      "heading": "Know what an interface change cannot repair",
      "sourceIds": [
        "x425-eth-mm-tokens",
        "x425-eth-eth-jsonrpc"
      ],
      "paragraphs": [
        "If the receipt identifies a different recipient, adding the token cannot change ownership. If the balance is on another chain, importing the same-looking contract address on the current chain cannot bridge it.",
        "Hiding a token likewise changes the interface rather than deleting its onchain balance. Keep transaction and contract details when contacting legitimate support; private keys and recovery phrases are unnecessary for these checks."
      ]
    }
  ],
  "faq": [
    {
      "question": "Will importing a custom token charge a blockchain fee?",
      "answer": "The display-import action adds token information to the wallet interface. It is not an onchain token transfer; a site demanding a transaction to “unlock display” needs separate scrutiny.",
      "sourceIds": [
        "x425-eth-mm-tokens",
        "x425-eth-eth-security"
      ]
    },
    {
      "question": "Why do two tokens have the same symbol?",
      "answer": "Symbols are presentation information, so use the network and contract address to identify the intended token instead of treating its ticker as a unique identifier.",
      "sourceIds": [
        "x425-eth-mm-tokens"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-tokens-not-showing-quick-answer",
      "articleSlug": "ethereum-tokens-not-showing",
      "statement": "A token missing from a wallet interface may still be held onchain. Check the selected network, full account address and exact token contract, then verify the balance or transfer on that network. Adding a custom token changes what the interface displays; it does not recover tokens from another address or move them between chains.",
      "sourceIds": [
        "source-85b8c7c22a802fdd",
        "source-a5154b4118a3d15f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-85b8c7c22a802fdd",
          "locator": "Enhanced detection; custom tokens; hiding tokens"
        },
        {
          "sourceId": "source-a5154b4118a3d15f",
          "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh MetaMask token guide supports custom-contract import, community-list non-endorsement and hide controls. RPC receipt status alone is not treated as a token receipt. The12-unit example concerns display only; chain and contract identity remain explicit."
        ]
      }
    },
    {
      "id": "ethereum-tokens-not-showing-fact-identity",
      "articleSlug": "ethereum-tokens-not-showing",
      "statement": "Identity: A ticker alone does not uniquely identify a token.",
      "sourceIds": [
        "source-85b8c7c22a802fdd"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-85b8c7c22a802fdd",
          "locator": "Enhanced detection; custom tokens; hiding tokens"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh MetaMask token guide supports custom-contract import, community-list non-endorsement and hide controls. RPC receipt status alone is not treated as a token receipt. The12-unit example concerns display only; chain and contract identity remain explicit."
        ]
      }
    },
    {
      "id": "ethereum-tokens-not-showing-fact-display",
      "articleSlug": "ethereum-tokens-not-showing",
      "statement": "Display: Wallet detection lists are not a complete list of every token contract.",
      "sourceIds": [
        "source-85b8c7c22a802fdd"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-85b8c7c22a802fdd",
          "locator": "Enhanced detection; custom tokens; hiding tokens"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh MetaMask token guide supports custom-contract import, community-list non-endorsement and hide controls. RPC receipt status alone is not treated as a token receipt. The12-unit example concerns display only; chain and contract identity remain explicit."
        ]
      }
    },
    {
      "id": "ethereum-tokens-not-showing-fact-scope",
      "articleSlug": "ethereum-tokens-not-showing",
      "statement": "Scope: RPC balance and transaction queries are made against a particular network.",
      "sourceIds": [
        "source-a5154b4118a3d15f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a5154b4118a3d15f",
          "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh MetaMask token guide supports custom-contract import, community-list non-endorsement and hide controls. RPC receipt status alone is not treated as a token receipt. The12-unit example concerns display only; chain and contract identity remain explicit."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-eth-mm-tokens",
      "label": "Displaying tokens in MetaMask",
      "publisher": "MetaMask",
      "url": "https://support.metamask.io/manage-crypto/tokens/how-to-display-tokens-in-metamask",
      "locator": "Enhanced detection; custom tokens; hiding tokens",
      "note": "Wallet display and token contract identity are separate from onchain holdings.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:24.137Z",
      "contentSha256": "175816d8d6f117fbbe963b8005cd04b9a2757ed1c45ad4142a88f32bfce31d67",
      "recordId": "source-85b8c7c22a802fdd"
    },
    {
      "id": "x425-eth-eth-jsonrpc",
      "label": "Ethereum JSON-RPC API",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/apis/json-rpc/",
      "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs",
      "note": "RPC requests explicitly identify addresses and block scope; receipts and removed log fields support verification examples.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:24.990Z",
      "contentSha256": "ed13997ec4f415dff80883add0730d4e64bcc8c17b95dd4f6c27aed0241a4073",
      "recordId": "source-a5154b4118a3d15f"
    },
    {
      "id": "x425-eth-eth-security",
      "label": "Ethereum security and scam prevention",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/security/",
      "locator": "Wallet security; common scams; hardware wallets",
      "note": "Primary community guidance on wallet secrets, phishing, malicious sites and transaction checking.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:24.140Z",
      "contentSha256": "1372ff086ae3f53ded99c8dfe308346a457574d41c04dc587de119a64080b448",
      "recordId": "source-83ec2d5a18d94ce1"
    }
  ],
  "related": {
    "articles": [
      "erc-20-tokens",
      "ethereum-transaction-receipts",
      "metamask-missing-restored-accounts",
      "unsolicited-tokens-and-nfts"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Why does an Ethereum token balance not appear in my wallet?.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-tokens-not-showing/"
}
