EIP-1193 primary sources — 2026-05-07
Project status in this pass
- No standalone EIP-1193 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-1193 as the baseline injected-wallet provider interface that many later wallet and account-abstraction standards assume rather than replace.
Primary-source snapshots
1) Canonical EIP page
- URL: https://eips.ethereum.org/EIPS/eip-1193
- Key excerpt/signals:
- The summary calls it “A JavaScript Ethereum Provider API for consistency across clients and applications.”
- The abstract says wallets historically exposed conflicting provider interfaces and behaviors.
- It says the API is minimal, event-driven, and agnostic of transport and RPC protocol.
- Why it mattered:
- This is the clearest evidence that EIP-1193 belongs in the corpus as baseline wallet-interface infrastructure rather than as a specific product integration.
2) Raw EIP text / core API shape
- URL: https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-1193.md
- Key excerpt/signals:
- The provider MUST implement
request(args)as the common RPC wrapper. - The provider MUST implement
onandremoveListenerwith Node.js EventEmitter semantics. - The spec requires standardized lifecycle and state events including
connect,disconnect,chainChanged,accountsChanged, andmessage.
- The provider MUST implement
- Why it mattered:
- This is the strongest evidence that EIP-1193 compresses many earlier wallet-specific APIs into one common interface surface.
3) Raw EIP text / error and permission boundary
- URL: https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-1193.md
- Key excerpt/signals:
- The provider error table standardizes
4001(user rejected),4100(unauthorized),4200(unsupported method),4900(disconnected), and4901(chain disconnected). - The text recommends
4100for authorization failures. - The security section recommends not exposing accounts by default and instead using explicit account-access methods such as
eth_requestAccountsandwallet_requestPermissions.
- The provider error table standardizes
- Why it mattered:
- This is the clearest signal that EIP-1193 standardizes the wallet boundary but does not remove wallet discretion over permissions, method support, or user-approval flows.
4) Raw EIP text / window.ethereum is not the standard
- URL: https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-1193.md
- Key excerpt/signals:
- The abstract says providers have historically been made available as
window.ethereum, but that convention is not part of the specification.
- The abstract says providers have historically been made available as
- Why it mattered:
- This matters for mechanism analysis because it separates the provider interface from the legacy single-global injection pattern that later standards like EIP-6963 try to repair.
5) MetaMask provider API docs
- URL: https://docs.metamask.io/metamask-connect/evm/reference/provider-api/
- Key excerpt/signals:
- The docs say the MetaMask Ethereum provider API follows the EIP-1193 standard.
- They document the same request method and the same major events.
- They note MetaMask supports EIP-6963 and recommend selecting the provider through the EIP-6963 discovery flow where possible.
- Why it mattered:
- This is useful adoption evidence that a major wallet treats EIP-1193 as the common provider substrate while layering newer discovery behavior on top.
Working conclusion
EIP-1193 is best cataloged as Ethereum’s baseline injected-wallet interface standard: it makes provider behavior legible enough for dapps and libraries to target a common API, while leaving practical authority over permissions, connectivity, and feature exposure in the wallet layer above it.