{"id":"ERC-1191","name":"Chain-specific Address Checksum","status":"Last Call","chain":"both","category":{"id":"comprehension","name":"Comprehension & Display","description":"Making blockchain data readable to humans"},"journeyStages":[{"id":"status","name":"Status & Confirmation","description":"Waiting for and confirming outcomes"}],"uxImpact":"Use chain-aware checksums only on networks that adopt ERC-1191, and preserve ERC-55 elsewhere. Show the selected network explicitly. A mismatch is a validation warning, not proof of a different destination chain, and the checksum does not guarantee protection from wrong-network transfers.","officialUrl":"https://ercs.ethereum.org/ERCS/erc-1191","lastReviewed":"2026-09-18","lastUpdated":"2026-09-18","hasDetailedContent":true,"content":{"id":"ERC-1191","summary":"ERC-1191 is an opt-in variant of the ERC-55 address checksum that incorporates chain ID on adopting networks. It can catch some address-entry mistakes there. Ethereum and networks that have not adopted the variant continue to use ERC-55. A checksum does not identify the intended destination chain or replace explicit network selection.","applicability":{"whenToUse":["The selected network is confirmed to adopt ERC-1191.","Your product validates or displays addresses using that network’s checksum policy."],"whenToAvoid":["The network uses ERC-55; preserve that checksum rule.","You need to infer a unique destination chain from an address checksum."]},"designerTakeaways":["Choose the checksum rule supported by the selected network.","Treat a mismatch as a validation warning, not proof of another chain.","Keep the network name, recipient address and send review visible."],"problemsSolved":[{"problem":"An adopting network needs a checksum bound to its chain ID","oldWay":"Use an unqualified checksum rule for every network","newWay":"Use ERC-1191 only on verified adopting networks and ERC-55 elsewhere","impact":"high"},{"problem":"Users may mistake a checksum match for network verification","oldWay":"Infer a destination network from letter case","newWay":"Ask users to verify the selected network separately","impact":"high"}],"uxPatterns":[{"name":"Network-aware address review","description":"Use the checksum policy of the selected network.","userFlow":["Select and label the destination network","Look up whether that network adopts ERC-1191","Validate with that rule, or ERC-55 for other networks","Show a mismatch without guessing the intended chain","Confirm the recipient and network before sending"]}],"uiComponents":[{"name":"NetworkAddressInput","description":"Validates using a known network checksum policy.","states":["empty","valid","mismatch","unsupported-policy"],"props":["chainId","checksumPolicy","address","onChange"]}],"antiPatterns":[{"pattern":"Applying ERC-1191 to every EVM chain","why":"Most address integrations use ERC-55 unless the network adopts the variant","instead":"Maintain an explicit network checksum policy and preserve ERC-55 elsewhere","severity":"high"},{"pattern":"Inferring a destination network from a checksum","why":"A mismatch does not uniquely identify another chain","instead":"Show the selected network and ask the user to verify it","severity":"high"},{"pattern":"Silently changing a pasted checksum","why":"Recasing can hide an input mistake from the sender","instead":"Explain the mismatch and ask the user to verify the address and selected network","severity":"medium"}],"relatedStandards":[{"id":"ERC-55","relationship":"ERC-55 is the base checksum standard, ERC-1191 extends it with chain ID"},{"id":"EIP-155","relationship":"EIP-155 introduced chain ID concept that ERC-1191 uses in checksums"},{"id":"EIP-695","relationship":"eth_chainId provides the chain ID used for checksum calculation"}],"lastUpdated":"2026-09-18","technicalNotes":"The ERC-1191 reference implementation includes chain ID in the checksum hash only for opted-in networks and otherwise uses ERC-55. The reference adopting-network list must not be interpreted as every EVM chain. Validate against the selected network policy rather than trying to infer a chain from a checksum.","lastReviewed":"2026-09-18","sources":[{"label":"ERC-1191 official specification","url":"https://ercs.ethereum.org/ERCS/erc-1191","type":"official-spec"}]},"sources":[{"label":"Official specification","url":"https://ercs.ethereum.org/ERCS/erc-1191","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=ERC-1191","type":"discussion"},{"label":"ERC-1191 official specification","url":"https://ercs.ethereum.org/ERCS/erc-1191","type":"official-spec"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/ERC-1191","markdown":"https://www.eipsfordesigners.com/standards/ERC-1191/content.md","agent":"https://www.eipsfordesigners.com/standards/ERC-1191/agent.md","api":"https://www.eipsfordesigners.com/api/standards/ERC-1191","official":"https://ercs.ethereum.org/ERCS/erc-1191","discussion":"https://ethereum-magicians.org/search?q=ERC-1191"},"freshness":{"lastReviewed":"2026-09-18","lastUpdated":"2026-09-18"}}