# Agent instructions

You are advising on UX and product design for **EIP-1191: Chain-specific Address Checksum**.
This document is the authoritative designer guide from EIPs for Designers.

- Treat **MUST NOT** items as hard constraints unless the user explicitly overrides.
- Use the **Vocabulary** section for UI copy; do not use avoided terms.
- Cite the canonical source URL when giving recommendations.
- Use the official specification only for protocol implementation detail, not as primary UX guidance.

---

# EIP-1191: Chain-specific Address Checksum

Source: https://www.eipsfordesigners.com/standards/EIP-1191
Agent brief: https://www.eipsfordesigners.com/standards/EIP-1191/agent.md
Machine-readable JSON: https://www.eipsfordesigners.com/api/standards/EIP-1191
Last reviewed: 2026-04-05
Last updated: 2026-04-05

| Field | Value |
| --- | --- |
| Status | Last Call |
| Chain | both |
| Category | Comprehension & Display |
| Journey stages | Status & Confirmation |
| Detailed guide | Yes |
| Official specification | https://eips.ethereum.org/EIPS/eip-1191 |
| Discussion search | https://ethereum-magicians.org/search?q=EIP-1191 |

## UX Impact

Addresses have different checksums per chain — prevents sending mainnet funds to a testnet address that happens to be valid. Design implications: validate addresses against current network's chain ID, show chain badge alongside addresses, warn when address checksum doesn't match current network. Design decisions: which chains to support (RSK uses this, Ethereum mainnet doesn't), whether to treat cross-chain checksum mismatch as error or warning, how to handle chains that don't adopt this standard.

## Summary

EIP-1191 extends address checksums to include the chain ID. The same address looks slightly different on each chain (different letter capitalizations). This prevents users from accidentally sending funds to the right address but on the wrong network - a common and costly mistake in multi-chain world.

## For Designers

- You can design UI that delivers checksum differs by chain.
- You can design UI that delivers chain-specific checksum catches the mistake.
- You can design UI that delivers different capitalizations hint at different chains.

## Applicability

### When to Use

- Your product addresses: same checksum valid on all chains.
- Your product addresses: cross-chain address confusion.
- The flow should deliver: checksum differs by chain, wrong-chain addresses fail validation.
- You are designing a chain-specific address display experience with visible states and recovery paths.

### When to Avoid

- Always validate checksum and warn on mismatch.
- Show what was corrected and why.
- Offer chain-specific copy buttons when relevant.
- Users never see addresses, amounts, or signing payloads in your UI.

## Problems It Solves

### Same checksum valid on all chains

Impact: high

Old way: Address looks identical on Ethereum and Polygon, easy to send to wrong chain

New way: Checksum differs by chain, wrong-chain addresses fail validation

### Cross-chain address confusion

Impact: high

Old way: Copy address from one chain, paste to another, funds go to wrong place

New way: Chain-specific checksum catches the mistake

### No visual indicator of intended chain

Impact: medium

Old way: All addresses look the same regardless of chain

New way: Different capitalizations hint at different chains

## MUST NOT (Anti-Patterns)

- **Ignoring checksum validation** (high)
  - Why: Misses opportunity to catch wrong-chain mistakes
  - Instead: Always validate checksum and warn on mismatch

- **Silently correcting checksum** (medium)
  - Why: User doesn't learn about the safety feature
  - Instead: Show what was corrected and why

- **Only showing one address format** (medium)
  - Why: User might copy and paste to wrong chain
  - Instead: Offer chain-specific copy buttons when relevant

- **Blocking wrong-chain addresses entirely** (medium)
  - Why: Sometimes user knows what they're doing (same address, different chain)
  - Instead: Warn but allow proceeding with confirmation

## UX Patterns

### Chain-Specific Address Display

Show address with checksum matching current chain

User flow:

- User views their address
- Address shown with chain-specific checksum
- Copy button labeled with chain name
- Explanation of why they differ

Mockup registry key: `concept/typed-data` (React UI on the live standard page).

### Wrong Chain Address Warning

Detect and warn about chain mismatch

User flow:

- User pastes address
- Checksum validated against current chain
- Mismatch detected
- Warning shown with detected chain
- User can proceed with caution or cancel

Mockup registry key: `concept/typed-data` (React UI on the live standard page).

### Address Input with Chain Validation

Validate address format matches current chain

User flow:

- User enters recipient address
- Checksum validated in real-time
- Green check if matches current chain
- Warning if different chain checksum
- Proceed only with valid checksum

Mockup registry key: `concept/typed-data` (React UI on the live standard page).

## UI Components

### ChainAwareAddressInput

Address input that validates checksum for current chain
States: empty, valid, invalid, wrong-chain
Props: chainId, value, onChange, onValidation

### ChecksumMismatchWarning

Warning modal for chain-mismatched addresses
States: detected, confirmed, cancelled
Props: detectedChain, currentChain, address, onProceed, onCancel

### MultiChainAddressDisplay

Shows same address with different chain checksums
States: single, multiple
Props: address, chains[], onCopy

## On Monad

### Monad-Specific Checksum

Ethereum: Checksum includes chain ID 1

Monad: Monad checksum uses Monad's chain ID

Design implication: Show Monad-formatted addresses when on Monad network

### Cross-Chain Transfers

Ethereum: Users often bridge between L1 and L2s

Monad: Users may bridge between Ethereum and Monad

Design implication: Extra clarity needed when copying addresses for bridge operations

## Related Standards

- ERC-55: ERC-55 is the base checksum standard, EIP-1191 extends it with chain ID — https://www.eipsfordesigners.com/standards/ERC-55/agent.md

- EIP-155: EIP-155 introduced chain ID concept that EIP-1191 uses in checksums — https://www.eipsfordesigners.com/standards/EIP-155/agent.md

- EIP-695: eth_chainId provides the chain ID used for checksum calculation — https://www.eipsfordesigners.com/standards/EIP-695/agent.md

## Official specification (reference only)

https://eips.ethereum.org/EIPS/eip-1191
