EIP logoEIPs for Designers
Skip to content
EIP logoEIPs for Designers
Navigate
HomeBy ProblemBy JourneyAll StandardsUse with AI
Links
Official EIP SpecsMonadMonad FoundationAboutContactPrivacy
System
137 StandardsUpdated 8 Sept 2026

Built by the Monad Foundation.

By ProblemBy Journey
Home/By Journey/Stage 1
1

Discovery & Connection

Finding and connecting wallet to dApp

7 standards at this stage·Covers 2 categories
Final

Adopted standard, safe to implement

Last Call

Final review period before adoption

Review

Widely deployed but not yet Final

Draft

Early stage proposal, may change

Active

Live on Monad mainnet

Proposed

Under consideration for Monad

Link item

URL Format for Transaction Requests

Ethereum
EIP-681FinalAccepted and stable

Payment requests encoded as ethereum: URLs work like bitcoin: links — scannable QR codes or clickable links trigger wallet payment flows. Design implications: generate QR codes for payment requests with pre-filled recipient, amount, and token type; support ENS names alongside hex addresses; use scientific notation (2.014e18) for human-readable amounts; design chain_id switching prompts when payment targets different network. Design decisions: decide whether to make gas parameters user-editable or hidden, handle token transfers (ERC-20 function calls) vs native ETH differently in UI, design validation for malformed URLs, consider showing fiat equivalents alongside crypto amounts.

Category: Onboarding & Access

Verify request

eth_chainId Method

Ethereum
EIP-695FinalAccepted and stable

Wallets reliably detect which chain they're connected to — prevents transaction replay attacks across chains. Design implications: display current chain prominently in UI, show chain ID in network selector, validate chain consistency before transactions, alert users to chain mismatches. Design decisions: how to handle unknown chain IDs, whether to auto-switch chains or require manual confirmation, prominence of chain indicator (always visible vs on-demand).

Category: Comprehension & Display

Connect wallet

Ethereum Provider JavaScript API

Ethereum
EIP-1193FinalAccepted and stable

Users interact with dApps through a standardized wallet JavaScript API — all wallets expose the same request/response pattern. Design implications: build one connection flow that works with any EIP-1193 wallet, handle standard error codes (4001 for user rejection, 4100 for unauthorized, 4900 for disconnected) with consistent error messaging, listen for accountsChanged and chainChanged events to update UI state automatically. Design decisions: decide whether to show explicit 'connecting' vs 'connected' states, handle network switching prompts gracefully, consider how to surface RPC errors in human-readable form without exposing technical details.

Category: Onboarding & Access

Connect wallet

WalletConnect URI Format

Ethereum
EIP-1328FinalAccepted and stable

QR codes and deep links connect mobile wallets to desktop dApps via standardized URI format. Design implications: generate scannable QR codes from wc: URIs, design mobile-friendly deep link buttons that open wallet apps directly, show connection status with pairing expiration timers, handle both WalletConnect v1 (bridge-based) and v2 (relay-based) protocols. Design decisions: choose QR code size and error correction level for reliable scanning, decide whether to show raw URI for manual copy, design timeout and retry flows when relay connection fails, consider showing which relay/bridge is being used for transparency.

Category: Onboarding & Access

Review request

Wallet Permissions System

Ethereum
EIP-2255FinalAccepted and stable

Users grant permissions once upfront instead of approving every action individually — OAuth-style consent for Web3. Design implications: design permission request screens showing all requested capabilities (eth_accounts, signing methods) in human-readable form, allow users to selectively reject individual permissions, show current granted permissions in settings, design permission expiration and revocation flows. Design decisions: balance between requesting minimal permissions (more prompts) vs bundled permissions (fewer prompts, more trust required), decide when to request additional permissions mid-session, consider showing permission-specific UI caveats like 'requires signTypedData_v3 support'.

Category: Onboarding & Access

Connect wallet

window.evmproviders Object

Ethereum
EIP-5749FinalAccepted and stable

Alternative to EIP-6963 using window.evmproviders object — wallets register themselves by name for easy enumeration. Design implications: iterate Object.values(window.evmproviders) to build wallet selection UI, display wallet name, description, and base64 SVG icon for each provider, use snake_case keys as stable identifiers. Design decisions: choose between EIP-5749 vs EIP-6963 (6963 has more adoption), design fallback for wallets only supporting window.ethereum, handle scenario where both standards coexist during transition period.

Category: Onboarding & Access

Connect wallet

Multi Injected Provider Discovery

Ethereum
EIP-6963FinalAccepted and stable

Users with multiple wallet extensions see all installed wallets in a selection modal — no more random 'last wallet wins' behavior. Design implications: replace single 'Connect Wallet' button with wallet picker showing icons, names, and rdns identifiers; render wallet icons as 96x96px minimum using <img> tags (SVGs must not execute scripts); design empty states for when no wallets are detected. Design decisions: choose between showing all wallets immediately vs progressive disclosure, decide wallet list ordering (alphabetical, most-used, last-connected), consider whether to remember user's preferred wallet across sessions, handle edge cases where wallets may impersonate others via rdns. 🟢 Live on 37+ wallets (Critical priority for wallet connection UX). Important limitation: solves desktop wallet conflicts but does NOT apply to mobile — mobile connection remains a known pain point (Connection Failures, Medium severity).

Category: Onboarding & Access

Next
Authentication & Identity