This is Deckard's implementation-oriented shortlist, curated from the canonical
ethereum/EIPs and
ethereum/ERCs repositories.
Keep rules:
- Keep Final EIPs.
- Keep Final ERCs that appear in
ethereum/EIPsas moved ERC stubs. - Keep a small number of Stagnant Interface EIPs only when they are de facto wallet/dapp APIs already expected by the ecosystem.
- Drop Draft, Withdrawn, Last Call, purely historical, and not-yet-actionable specs from the implementation tables.
Implementation importance is rated for a desktop self-custodial Ethereum wallet whose dapp
communication surface is a browser extension. Critical means the extension bridge or
transaction/signing core should support it directly. High means expected for a competitive
production wallet. Medium means useful or ecosystem-dependent. Low means optional.
| EIP | Title | Status / Category | Canonical spec | Implementation importance | Wallet relevance |
|---|---|---|---|---|---|
| 695 | Create eth_chainId method for JSON-RPC |
Final / Interface | EIP-695 | Critical | Standard chain identity RPC used for signing, display, and chain switching. |
| 1102 | Opt-in account exposure | De facto / Interface (Stagnant) | EIP-1102 | Critical | Defines the eth_requestAccounts consent-before-account-exposure flow used by browser wallets. |
| 1193 | Ethereum Provider JavaScript API | Final / Interface | EIP-1193 | Critical | Core injected provider API: request, provider errors, account/chain events, and connectivity. |
| 1474 | Remote procedure call specification | De facto / Interface (Stagnant) | EIP-1474 | Critical | Baseline Ethereum JSON-RPC method, quantity, and error conventions. |
| 2255 | Wallet Permissions System | Final / Interface | EIP-2255 | High | Defines wallet_getPermissions and wallet_requestPermissions for restricted wallet methods. |
| 2696 | JavaScript request method RPC transport |
Final / Interface | EIP-2696 | Critical | Specifies the JS request({ method, params }) provider transport shape. |
| 2700 | JavaScript Provider Event Emitter | Final / Interface | EIP-2700 | Critical | Specifies provider on and removeListener event behavior. |
| 3085 | wallet_addEthereumChain RPC Method |
De facto / Interface (Stagnant) | EIP-3085 | High | Dapp-requested chain addition with chain metadata and RPC URL validation. |
| 3326 | Wallet Switch Ethereum Chain RPC Method | De facto / Interface (Stagnant) | EIP-3326 | High | Defines wallet_switchEthereumChain for changing the wallet active chain. |
| 5749 | The window.evmproviders object |
Final / Interface | EIP-5749 | Low | Alternate multi-provider injection model; lower priority than EIP-6963. |
| 5792 | Wallet Call API | Final / Interface | EIP-5792 | High | Defines wallet_sendCalls, call status, call display, and wallet capabilities. |
| 6963 | Multi Injected Provider Discovery | Final / Interface | EIP-6963 | Critical | Current browser discovery mechanism for multiple injected EIP-1193 providers. |
| EIP/ERC | Title | Status / Category | Canonical spec | Implementation importance | Wallet relevance |
|---|---|---|---|---|---|
| 2 | Homestead Hard-fork Changes | Final / Core | EIP-2 | Critical | Requires low-s transaction signatures; signing code must enforce this. |
| 155 | Simple replay attack protection | Final / Core | EIP-155 | Critical | Defines chain-ID replay protection and legacy transaction v rules. |
| 191 | Signed Data Standard | Final / ERC | ERC-191 | High | Signed-data envelope used by message signing and validator-intended signatures. |
| 658 | Embedding transaction status code in receipts | Final / Core | EIP-658 | High | Defines transaction receipt success/failure status semantics for UI. |
| 712 | Typed structured data hashing and signing | Final / Interface | EIP-712 | Critical | Defines typed-data hashing, domains, and eth_signTypedData. |
| 1271 | Standard Signature Validation Method for Contracts | Final / ERC | ERC-1271 | High | Standard signature validation path for smart contract wallets. |
| 1559 | Fee market change for ETH 1.0 chain | Final / Core | EIP-1559 | Critical | Defines type 0x02 transactions and max fee / priority fee fields. |
| 2098 | Compact Signature Representation | Final / ERC | ERC-2098 | Medium | Compact ECDSA signature format wallets may parse or emit. |
| 2681 | Limit account nonce to 2^64-1 | Final / Core | EIP-2681 | Medium | Bounds valid account nonces for transaction validation. |
| 2718 | Typed Transaction Envelope | Final / Core | EIP-2718 | Critical | Base envelope for typed transaction formats and receipts. |
| 2930 | Optional access lists | Final / Core | EIP-2930 | High | Defines type 0x01 access-list transactions and signing payloads. |
| 3607 | Reject transactions from senders with deployed code | Final / Core | EIP-3607 | Medium | Wallets should surface or prevent invalid transactions from code-bearing senders. |
| 4844 | Shard Blob Transactions | Final / Core | EIP-4844 | Medium | Defines type 0x03 blob transactions, blob fee fields, and signing payloads. |
| 5267 | Retrieval of EIP-712 domain | Final / ERC | ERC-5267 | Medium | Domain discovery for safer typed-data verification and display. |
| 6492 | Signature Validation for Predeploy Contracts | Final / ERC | ERC-6492 | Medium | Signature validation for counterfactual or not-yet-deployed smart accounts. |
| 7702 | Set Code for EOAs | Final / Core | EIP-7702 | High | Current EOA code-delegation transaction type for batching, sponsorship, and de-escalation. |
| 7825 | Transaction Gas Limit Cap | Final / Core | EIP-7825 | Medium | Per-transaction gas cap live with Fusaka; wallets should enforce or surface it. |
| 7951 | Precompile for secp256r1 Curve Support | Final / Core | EIP-7951 | Medium | Enables device-native P-256/WebAuthn verification patterns for wallets and AA. |
| EIP/ERC | Title | Status / Category | Canonical spec | Implementation importance | Wallet relevance |
|---|---|---|---|---|---|
| 2771 | Secure Protocol for Native Meta Transactions | Final / ERC | ERC-2771 | Medium | Trusted-forwarder meta-transaction pattern for relayed wallet flows. |
| 4337 | Account Abstraction Using Alt Mempool | Final / ERC | ERC-4337 | High | Core app-layer AA model for UserOperations, EntryPoint, bundlers, and paymasters. |
| 7702 | Set Code for EOAs | Final / Core | EIP-7702 | High | EOA code-delegation primitive for smart-wallet features without account migration. |
| EIP/ERC | Title | Status / Category | Canonical spec | Implementation importance | Wallet relevance |
|---|---|---|---|---|---|
| 20 | Token Standard | Final / ERC | ERC-20 | Critical | Fungible token baseline for balances, transfers, symbols, decimals, and asset lists. |
| 165 | Standard Interface Detection | Final / ERC | ERC-165 | High | Interface detection for token and NFT capability checks. |
| 721 | Non-Fungible Token Standard | Final / ERC | ERC-721 | High | NFT ownership, transfers, and metadata display baseline. |
| 747 | wallet_watchAsset RPC Method |
Final / Interface | EIP-747 | High | Lets dapps request that a wallet track a token asset. |
| 777 | Token Standard | Final / ERC | ERC-777 | Low | Alternate fungible token model wallets may need to recognize. |
| 1046 | Token Metadata | Final / ERC | ERC-1046 | Medium | Token metadata URI support referenced by wallet asset display flows. |
| 1155 | Multi Token Standard | Final / ERC | ERC-1155 | High | Multi-token standard for fungible, semi-fungible, and NFT holdings. |
| 2612 | permit Extension for EIP-20 Signed Approvals |
Final / ERC | ERC-2612 | High | Typed-data token approvals that wallets must display and sign safely. |
| 4906 | EIP-721 Metadata Update Extension | Final / ERC | ERC-4906 | Low | NFT metadata update events for refreshing wallet displays. |
| EIP/ERC | Title | Status / Category | Canonical spec | Implementation importance | Wallet relevance |
|---|---|---|---|---|---|
| 55 | Mixed-case checksum address encoding | Final / ERC | ERC-55 | Critical | Standard Ethereum address checksum display and validation. |
| 137 | Ethereum Domain Name Service | Final / ERC | ERC-137 | High | ENS name resolution baseline. |
| 181 | ENS support for reverse resolution | Final / ERC | ERC-181 | High | Reverse resolution for showing names from addresses. |
| 681 | URL Format for Transaction Requests | Final / ERC | ERC-681 | Medium | Payment and transaction request URLs for wallet deeplinks. |
| 1328 | WalletConnect Standard URI Format | Final / ERC | ERC-1328 | Low | WalletConnect-style URI handling and pairing surface. |
| 3668 | CCIP Read: Secure offchain data retrieval | Final / ERC | ERC-3668 | High | Offchain lookup path used by modern ENS and resolver flows. |
| 4361 | Sign-In with Ethereum | Final / ERC | ERC-4361 | High | Wallet login and identity message flow. |
These entries are not EIPs/ERCs. Keep them as implementation references for Deckard's privacy and browser-extension architecture, not as standards targets.
| Category | Title | Source | Wallet relevance | Implementation importance | Additional notes |
|---|---|---|---|---|---|
| Architecture | Privacy-first Ethereum tooling | kohaku/README.md | Positions Kohaku as reusable wallet infrastructure for privacy-preserving Ethereum UX. | High | Production integration still needs security review for each reused package. |
| Provider/backend abstraction | Kohaku EIP-1193-style provider seam | kohaku/crates/eip-1193-provider/README.md, kohaku/packages/provider/README.md | Useful for routing wallet-internal reads into native, WASM, Ethers, Viem, Helios, or Colibri backends. | Critical | This is not a drop-in browser wallet provider; Deckard still owns the injected dapp boundary, origin permissions, events, policy, accounts, and signing. |
| Privacy infrastructure | Private RPC and light-client posture | kohaku/docs/pages/practices.mdx, kohaku/docs/pages/privacy.mdx | Reduces wallet activity leakage from default RPCs and centralized indexing. | High | Kohaku docs call out user-defined RPCs, Helios-style verification, and optional network privacy routing as wallet best practices. |
| Account UX | Many accounts, many identities | kohaku/docs/pages/practices.mdx, kohaku/docs/pages/privacy.mdx | Encourages per-context accounts and easy account creation during dapp connection. | High | This should influence the extension connect flow: choosing or creating an account should be part of the permission grant, not only a global wallet setting. |
| Plugin system | Standardized private-transaction plugin interface | kohaku/packages/plugins/README.md | Lets the wallet expose shield, transfer, unshield, balance, and broadcast flows across multiple privacy protocols through one host interface. | High | Host responsibilities include storage, network fetch, keystore derivation, and Ethereum provider access; this maps cleanly to a desktop wallet core. |
| Key management | Portable plugin key derivation | kohaku/packages/plugins/README.md | Allows privacy protocol keys to derive from the wallet mnemonic where supported. | High | Imported plugin key material is not automatically portable, so backup and sync UX must explicitly include plugin state or imported secrets. |
| Shielded assets | Railgun shielded-pool support | kohaku/docs/pages/railgun/intro.mdx, kohaku/crates/railgun/README.md | Adds shielding, internal transfer, and unshielding for ERC-20 assets and ETH via WETH-style wrapping. | Medium | Useful as a wallet feature area, but protocol risk, circuit artifacts, indexing, and compliance posture need separate review before default exposure. |
| Account abstraction | ERC-4337 UserOperation kit | kohaku/crates/userop-kit/README.md | Provides UserOperation building and bundler client support for EntryPoint 0.7 and 0.8. | High | Important if the desktop wallet plans smart accounts, paymasters, sponsored transactions, or batched dapp actions. |
| Asset privacy | Local token discovery caution | kohaku/docs/pages/privacy.mdx | Pushes the wallet away from centralized all-transfer-event indexing that links addresses to lookup behavior. | High | Prefer local indexing, user-configured indexers, light-client verification, or explicit opt-in discovery modes. |
These were present in the source inventory but are not implementation targets for Deckard right now.
| Reason | EIPs/ERCs |
|---|---|
| Historical, Withdrawn, or pure reference material | 86, 107, 2711, 2786, 2938, 3074, 5003, 7701, 7980 |
| Stagnant and not a current wallet/dapp API target | 2015, 2256, 2803, 2831, 5345, 5593, 5806, 7039, 7377, 7713, 7867, 7896 |
| Draft or otherwise not yet stable enough for Deckard's implementation shortlist | 3009, 3770, 6900, 7708, 7749, 7851, 7932, 7966, 7997, 8072, 8123, 8130, 8141, 8151, 8164, 8175, 8197, 8202, 8250, 8266, 8272 |
ERCs not Final in ethereum/ERCs |
67, 634, 831, 1191, 1577, 2304, 2544 |
| Non-EIP Kohaku references deferred until audited or production-ready | Privacy Pools, Tornado-style notes, post-quantum account implementation |