I really beg all wallet developers to support ERC-681 - otherwise we end up with horrible UX like this:
please.
What is stopping you from supporting it? We really need to fix this …
I really beg all wallet developers to support ERC-681 - otherwise we end up with horrible UX like this:
please.
What is stopping you from supporting it? We really need to fix this …
Hi @ligi
ERC-681 came out at Aug. 2017, and imToken define this invalid format in late 2016. At that time we think about support eth only. I don’t know why other wallets follow this wrong URL support.
For backward compatibility, we have to keep this support. Our recent dapp browser module upgrade(not release yet) includes standard ERC-681 and related URL format standard.
thanks for the info @kaichen - looking forward to the update!
imToken already open source with token-core code, looking forward to discussing with you about wallet improvement and development
Hi everyone ! I am proposing an improvement extension for ERC-681
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.
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.