ERC-681 (again)

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.