Ethereum Intent URI (EI-URI): A Universal Action URI format for Ethereum

Description:

Support parsing and handling of extended ethereum: URLs with RPC-style method calls, including optional chain identification and parameters, using the following syntax:

ethereum:<rpc_method>[:<chain_id>]?<rpc_method_params>

:pushpin: Example (single request):

ethereum:eth_sendTransaction:324?from=0x8082da67710c14e7f668efc73ac27ad6b2d7cafe&to=0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238&gas=0x76c0&gasPrice=0x4a817c800&value=0x0&data=0xa9059cbb000000000000000000000000ffce4d191cb5007ee9ad7226581f7e217b68cafe00000000000000000000000000000000000000000000000000000000000f4240636166656369746f

:package: Example (multi-request, base64-encoded payload):

ethereum:multi-request:324?requests_b64=BASE64_ENCODED_JSON_ARRAY

This structure builds upon EIP-681 and EIP-4804, enabling advanced capabilities such as batched transactions and chain-specific context in a URL or QR code format.


Purpose:

To enhance MetaMask’s compatibility with modern wallet invocation flows via deep links and QR codes, and allow:

  • :white_check_mark: Flexible, RPC-style invocation via URLs
  • :white_check_mark: Embedded chainId for chain-aware requests
  • :white_check_mark: Multi-request support with base64 payloads
  • :white_check_mark: Seamless integration into physical-world interactions (e.g. POS, ticketing, dApps)
  • :white_check_mark: Add a new chain to MetaMask dynamically, just by scanning a QR (e.g. via wallet_addEthereumChain)

This format would be especially useful in real-world Web3 applications, where users scan a single QR code to switch chains, approve multiple transactions, or interact with a contract directly.


Extension/Mobile/Both:

Both
(With significant utility in mobile use cases involving QR code scanning.)

Hi @frani thank you so much for sharing, I will pass your message to the team :fox:

3 Likes