13

I cannot find a guide about using ERC-4337 along with a Solidity contract.

According to Vitalik Buterin there will be no changes on the network, in order to enable ERC-4337. So, I should be able to connect my Dapp to the ERC-4337 Smart Contract to manage new wallet addresses, based on smart contract accounts.

1

2 Answers 2

15

Backgound

Very curious about ERC-4337, so after some research, I finally got it:

These are the main components to ERC-4337:

  1. UserOperations are pseudo-transaction objects that are used to execute transactions with contract accounts. These are created by your app.
  2. Bundlers are actors that package UserOperations from a mempool and send them to the EntryPoint contract on the #blockchain network. Can receive UserOperations via a JSON RPC Client and submit them to the EntryPoint.
  3. EntryPoint is a smart contract that handles the verification and execution logic for transactions.
  4. Contract Accounts are smart contract accounts owned by a user.
  5. [optional] Paymasters are smart contract accounts that can sponsor transactions for Contract Accounts, enabling gasless transactions in your apps.
  6. [optional] Aggregators are smart contracts that can validate signatures for Contract Accounts.

The latest version of EntryPoint contract so far (0.6.0) has been deployed on multiple chains, in the same address 0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789 for: Ethereum, Polygon, Optimistic, Avalanche (only testnet), Gnosis and other supported networks:

  • Stackup was first to create a fully compliant bundler and a paymaster service.

  • Alchemy announced their first two products in the space: Bundler Services and Paymaster Services (wait list).

These ones have also built and deployed bundlers:

According to the existing consensus, having multiple bundler clients is critical for the robustness of the protocol.

Taking the information above into account, we can also answer the initial questions:

It is an interface like ERC-20, ERC-721 or ERC-1155?

No, it is a set of technical components, based on Smart Contracts. Currently there is an official EntryPoint Smart Contract developed and deployed by Ethereum Foundation, and audited by Open Zeppelin.

Could I use ERC-4337 just importing the interface (from OpenZeppelin, for example), like IERC-20, IERC-721 or IERC-1155?

No, depending on the use case to achieve, you should use an available Bundler (or Paymaster) service provider, like Stackup, Biconomy, Blocknative, Etherspot or Candide wallet

This will be the end version of the code?

The last audited version of the code is on this Github repository branch.

It is this the ERC-4337 "official" contract?

The latest version (0.6.0) of the "official contract" is the **EntryPoint contract that has been developed and deployed in multiple networks, by the Ethereum Foundation, and audited by Open Zeppelin in the following address: 0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789

How can I use it from my Dapp?

Depending on the use case, you have to choose a Bundler or Paymaster service provider.

1
  • Why are you linking the mev transaction bundle endpoint of blocknative as an EIP-4337 bundler?
    – Plus Ultra
    Mar 9, 2023 at 14:41
2

The whole point of ERC 4337 is that users from outside of the Ethereum can send transactions without having an account. You can send transaction-like objects to a separate mempool and someone else will make your transaction for you. This is helpful when users want to interact with blockchain without making an EOA from within an application.

It is an interface like ERC-20, ERC-721 or ERC-1155?

No, it's a set of standards that helps protocols design their own account abstraction.

How could I develop a Solidity contract compatible using ERC-4337 features?

There are several opcodes that are banned from being used if you want your contract to be deployable via ERC-4337

Overall, it's not a contract or interface, it's a set of standards that allows a design for account abstraction without consensus change.

Biconomy has a set of smart contracts that conform to ERC 4337, you can find the contracts here.

In my opinion, best resource to learn how ERC-4337 works is the EIP itself.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.