Hi everyone ! I am proposing an improvement extension for ERC-681
Abstract
This EIP introduces a standardized URI format for representing and triggering Ethereum JSON-RPC requests, allowing users to execute blockchain actions directly via URLs or QR codes. It extends the existing ethereum:
URI scheme by supporting full RPC methods, optional chain identifiers, and additional semantic metadata such as intent
, enhancing Web3 UX and interoperability across wallets.
Motivation
ERC-681 introduced a way to encode Ethereum payment requests via URIs, laying the foundation for user-friendly interactions such as QR-code based payments. However, its scope is limited to eth_sendTransaction and lacks flexibility for more complex interactions, such as multi-call sequences, RPC methods beyond simple transfers, and chain-specific contexts.
As the ecosystem matures, users are increasingly performing a variety of Web3 actions—depositing into vaults, interacting with smart contracts, switching chains, or batch-signing transactions—all of which are not easily represented within the current URI standard.
This proposal aims to extend the URI pattern introduced in ERC-681 to support:
Arbitrary RPC calls (e.g., wallet_addEthereumChain, eth_call, eth_signTypedData)
Chained or multi-step requests via base64-encoded payloads
A clear and consistent way to encode the target chain (via chainId)
A more versatile way to encode intent (e.g., “deposit”, “swap”, “vote”, etc.)
Seamless QR-based user interactions without requiring wallet connection or dapp session
By standardizing this flexible URI format, wallets can parse and act on requests directly from a link or QR code, enabling smoother real-world interactions and improving onboarding, security, and UX across Ethereum applications.