EIP-6963 primary sources — 2026-05-07
Project status in this pass
- No standalone EIP-6963 whitepaper or litepaper surfaced.
- The clearest current source of truth was the final EIP itself, supplemented by the raw spec text and current MetaMask provider documentation.
- The sources consistently frame EIP-6963 as a repair to the old
window.ethereumdiscovery race rather than as a replacement for EIP-1193 provider semantics.
Primary-source snapshots
1) Canonical EIP page
- URL: https://eips.ethereum.org/EIPS/eip-6963
- Key excerpt/signals:
- The abstract says EIP-6963 is an alternative discovery mechanism to
window.ethereumfor EIP-1193 providers. - It says the design supports discovering multiple injected wallet providers in a web page using window events.
- The abstract says EIP-6963 is an alternative discovery mechanism to
- Why it mattered:
- This is the clearest evidence that EIP-6963 belongs in the corpus as wallet-discovery coordination infrastructure.
2) Raw EIP text / motivation and race-condition diagnosis
- URL: https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-6963.md
- Key excerpt/signals:
- The motivation says multiple extensions currently inject into the same
window.ethereumobject. - It says browser extensions load in an unpredictable order and that the last wallet to load usually wins.
- It says some wallets deliberately delay injection to overwrite competitors.
- The motivation says multiple extensions currently inject into the same
- Why it mattered:
- This identifies the exact control problem: wallet choice used to be partly determined by extension load order and overwrite behavior rather than by explicit user or dapp selection.
3) Raw EIP text / event-based handshake
- URL: https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-6963.md
- Key excerpt/signals:
- Wallets announce themselves with
eip6963:announceProvider. - Dapps request providers with
eip6963:requestProvider. - Wallets must re-announce when they observe the request event so discovery works regardless of execution order.
- Wallets announce themselves with
- Why it mattered:
- This is the strongest evidence that EIP-6963 replaces a brittle singleton namespace with a bidirectional discovery loop.
4) Raw EIP text / metadata and trust limits
- URL: https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-6963.md
- Key excerpt/signals:
- The
EIP6963ProviderInfoobject standardizesuuid,name,icon, andrdns. - The RDNS section says dapps should not use
rdnsfor feature detection because it is self-attested and prone to impersonation or bad incentives. - The security section discusses provider-object freezing, wallet imitation, SVG execution risk, and wallet fingerprinting.
- The
- Why it mattered:
- This shows EIP-6963 improves provider choice and interoperability without fully solving provider identity or trust-verification problems.
5) MetaMask provider API docs
- URL: https://docs.metamask.io/metamask-connect/evm/reference/provider-api/
- Key excerpt/signals:
- The docs say MetaMask supports EIP-6963 as an alternative wallet-detection mechanism to
window.ethereum. - They recommend using that mechanism because it enables discovery of multiple injected wallet providers.
- They tell developers to access the selected provider via the chosen EIP-6963 provider object.
- The docs say MetaMask supports EIP-6963 as an alternative wallet-detection mechanism to
- Why it mattered:
- This is useful adoption evidence that a major wallet now treats EIP-6963 as the preferred integration path for browser-provider discovery.
Working conclusion
EIP-6963 is best cataloged as Ethereum’s multi-wallet discovery standard: it reduces window.ethereum load-order capture, makes multiple injected providers legible to dapps, and shifts competition toward wallet-selection interfaces and discovery libraries instead of overwrite races inside the browser page.