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

hey @puddi I saw you have some similiar problem like me, would you like to push it together ?

I think we need a change on deep link so it can be flexible in parameteres.

please take a look of what I wrote and let me know what you think.

regrads

1 Like

hey @frani I had the similar problem for ERC-681, team looked into it, opened and merged a pull request but the issue was still present.

I would love to contribute!

1 Like

Happy to hear your answer!

Based on what I’ve seen in the MetaMask Mobile architecture, it essentially acts as a complex interface that communicates with RPC endpoints—similar to other wallet implementations. This got me thinking about how we can evolve the interaction between RPCs and smart contracts to enable faster releases of new methods and contract functions.

I believe a simple “scan & execute” approach could be a game-changer. EI-URI, or perhaps an improved version of it, seems like the right kind of solution to explore for this.

Right now, mobile experiences still depend heavily on WalletConnect, which often feels unnecessary or overly complicated. If we can simplify the process to just scanning and invoking RPC methods directly, it could significantly enhance the overall user experience.

1 Like

@puddi can not hit you up in discord.

could you try it ?
my username is frani.dev

1 Like