{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-chain-id",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-chain-id/",
  "collection": "ethereum",
  "title": "Chain IDs: why the same address can exist on different networks",
  "description": "Understand how chain IDs help separate Ethereum-compatible transaction domains and why the same address can exist on several networks.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:12:41.505Z",
    "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 chain ID is a number used to distinguish transaction-signing domains on Ethereum-compatible networks. EIP-155 incorporated it into legacy transaction signing to limit cross-chain replay. It does not identify an asset by itself, prove a network is trustworthy or automatically protect every off-chain signature.",
    "claimId": "ethereum-chain-id-quick-answer",
    "sourceIds": [
      "eip155",
      "eip712"
    ]
  },
  "keyFacts": [
    {
      "label": "Replay scope",
      "value": "EIP-155 changes the signed legacy transaction payload to include a chain ID.",
      "sourceIds": [
        "eip155"
      ],
      "id": "replay-scope",
      "claimId": "ethereum-chain-id-fact-replay-scope"
    },
    {
      "label": "Address",
      "value": "Address bytes alone do not specify a network.",
      "sourceIds": [
        "eth-accounts",
        "eip155"
      ],
      "id": "address",
      "claimId": "ethereum-chain-id-fact-address"
    },
    {
      "label": "Typed data",
      "value": "An EIP-712 domain can include chainId, but applications must implement replay protections.",
      "sourceIds": [
        "eip712"
      ],
      "id": "typed-data",
      "claimId": "ethereum-chain-id-fact-typed-data"
    }
  ],
  "prerequisites": [
    "ethereum-accounts"
  ],
  "sections": [
    {
      "id": "same-address",
      "heading": "One address string can refer to several chain states",
      "sourceIds": [
        "eth-accounts",
        "eip155"
      ],
      "paragraphs": [
        "The same key can correspond to the same address bytes on several compatible networks while balances, contracts and transaction histories differ. Choosing a network changes which ledger you query or submit to.",
        "A token contract address must therefore be paired with the chain. A familiar symbol and address display are insufficient if the wallet is on a different network."
      ]
    },
    {
      "id": "signing",
      "heading": "Bind authorization to the intended domain",
      "sourceIds": [
        "eip155"
      ],
      "paragraphs": [
        "Without appropriate domain separation, a signed transaction valid in one setting might be accepted elsewhere. EIP-155 addresses this for the transaction format it specifies.",
        "The protection depends on the actual transaction signing rules and chain configuration. It is not a certification system that makes any network using a particular number safe."
      ]
    },
    {
      "id": "messages",
      "heading": "Off-chain signatures need their own checks",
      "sourceIds": [
        "eip712",
        "eip2612"
      ],
      "paragraphs": [
        "Typed-data applications can bind a signature to a chain and verifying contract, alongside an application name or version. Nonces and deadlines address additional reuse questions.",
        "Review these fields when signing. A chain-aware transaction format does not automatically secure a separate permit or order-signature implementation."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does switching networks in my wallet move the funds?",
      "answer": "No. It changes the network context the wallet displays or interacts with. Moving assets between networks requires a separate transfer or bridge mechanism.",
      "sourceIds": [
        "eth-accounts",
        "eth-jsonrpc"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-chain-id-quick-answer",
      "articleSlug": "ethereum-chain-id",
      "statement": "A chain ID is a number used to distinguish transaction-signing domains on Ethereum-compatible networks. EIP-155 incorporated it into legacy transaction signing to limit cross-chain replay. It does not identify an asset by itself, prove a network is trustworthy or automatically protect every off-chain signature.",
      "sourceIds": [
        "source-1975773eb9dbad9f",
        "source-c78d0f0c60a42b2d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-1975773eb9dbad9f",
          "locator": "Specification"
        },
        {
          "sourceId": "source-c78d0f0c60a42b2d",
          "locator": "Specification; Security Considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked EIP-155 nine-element legacy signing payload, chain-ID recovery rules and backward-compatible unprotected signing; no blanket replay guarantee is asserted.",
          "Cross-checked chain-independent address derivation against EIP-712 domain fields and ERC-2612 contract/chain domain plus nonce/deadline checks."
        ]
      }
    },
    {
      "id": "ethereum-chain-id-fact-replay-scope",
      "articleSlug": "ethereum-chain-id",
      "statement": "Replay scope: EIP-155 changes the signed legacy transaction payload to include a chain ID.",
      "sourceIds": [
        "source-1975773eb9dbad9f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-1975773eb9dbad9f",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked EIP-155 nine-element legacy signing payload, chain-ID recovery rules and backward-compatible unprotected signing; no blanket replay guarantee is asserted.",
          "Cross-checked chain-independent address derivation against EIP-712 domain fields and ERC-2612 contract/chain domain plus nonce/deadline checks."
        ]
      }
    },
    {
      "id": "ethereum-chain-id-fact-address",
      "articleSlug": "ethereum-chain-id",
      "statement": "Address: Address bytes alone do not specify a network.",
      "sourceIds": [
        "source-2fb64d6fc5cedb00",
        "source-1975773eb9dbad9f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-2fb64d6fc5cedb00",
          "locator": "Account types; An account examined; Account creation"
        },
        {
          "sourceId": "source-1975773eb9dbad9f",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked EIP-155 nine-element legacy signing payload, chain-ID recovery rules and backward-compatible unprotected signing; no blanket replay guarantee is asserted.",
          "Cross-checked chain-independent address derivation against EIP-712 domain fields and ERC-2612 contract/chain domain plus nonce/deadline checks."
        ]
      }
    },
    {
      "id": "ethereum-chain-id-fact-typed-data",
      "articleSlug": "ethereum-chain-id",
      "statement": "Typed data: An EIP-712 domain can include chainId, but applications must implement replay protections.",
      "sourceIds": [
        "source-c78d0f0c60a42b2d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-c78d0f0c60a42b2d",
          "locator": "Specification; Security Considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked EIP-155 nine-element legacy signing payload, chain-ID recovery rules and backward-compatible unprotected signing; no blanket replay guarantee is asserted.",
          "Cross-checked chain-independent address derivation against EIP-712 domain fields and ERC-2612 contract/chain domain plus nonce/deadline checks."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "eip155",
      "label": "Simple replay attack protection",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-155",
      "locator": "Specification",
      "note": "Transaction chain ID domain separation; not blanket protection for all signatures.",
      "version": "EIP/ERC-155; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.312Z",
      "contentSha256": "d2ee74d5b9d5230e5871645148c0978b10463b039a25d2ba753d3a8d6350c8c0",
      "recordId": "source-1975773eb9dbad9f"
    },
    {
      "id": "eip712",
      "label": "Typed structured data hashing and signing",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-712",
      "locator": "Specification; Security Considerations",
      "note": "Typed-data encoding and domain fields; replay protection is application-specific.",
      "version": "EIP/ERC-712; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.239Z",
      "contentSha256": "0951c36c432c48e281bd131331bdd5f4426706417e0d38fa3e667c0b7f84a530",
      "recordId": "source-c78d0f0c60a42b2d"
    },
    {
      "id": "eth-accounts",
      "label": "Ethereum accounts",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/accounts/",
      "locator": "Account types; An account examined; Account creation",
      "note": "Key-controlled and code-controlled accounts, balances, nonces and storage.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.958Z",
      "contentSha256": "262a5694899ae6f774aacae66b13d6929b658ecc9e23c276af9e23ee9455f034",
      "recordId": "source-2fb64d6fc5cedb00"
    },
    {
      "id": "eip2612",
      "label": "Permit Extension for EIP-20 Signed Approvals",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-2612",
      "locator": "Specification; Security Considerations",
      "note": "Signed token allowances, deadlines, nonces and domain checks.",
      "version": "EIP/ERC-2612; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.295Z",
      "contentSha256": "aa208d281cac5dbb182656bc7a3feab982df5c5df9e2f6dfa9b9efb5fc578ed1",
      "recordId": "source-1f53bb744ddddb6b"
    },
    {
      "id": "eth-jsonrpc",
      "label": "Ethereum JSON-RPC",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/apis/json-rpc/",
      "locator": "eth_getTransactionByHash; eth_getTransactionReceipt; eth_call; eth_getLogs; eth_getCode; eth_estimateGas; eth_getBalance; eth_getStorageAt; eth_getTransactionCount; default block parameter",
      "note": "RPC response fields, transaction receipts, call simulation and log filtering.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:42.060Z",
      "contentSha256": "ed13997ec4f415dff80883add0730d4e64bcc8c17b95dd4f6c27aed0241a4073",
      "recordId": "source-a5154b4118a3d15f"
    }
  ],
  "related": {
    "articles": [
      "signature-replay-attacks",
      "eip-712-typed-data",
      "stablecoin-wrong-network",
      "ethereum-mainnet-and-testnets"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Chain IDs: why the same address can exist on different networks.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-chain-id/"
}
