AA (ERC-4337)
ERC-4337 Meta Transactions Integration Guide
Introduction
This guide explains how to integrate your protocol's ERC-4337 (Account Abstraction) meta transactions with our tracking system. By following this guide, you'll ensure that your protocol's transactions are correctly parsed and decoded across all supported blockchain networks. After the successful integration, the new configuration will be applied for all future transactions and your dapp should have an increase in UAW and Transactions count metrics. If you wish to recalculate historical data for activity calculated prior to the integration date, you should reach out to our support team.
What is ERC-4337?
ERC-4337 is a standard for account abstraction that enables smart contract wallets to operate without changes to the blockchain's consensus layer. It introduces several key components:
EntryPoint contract: A singleton contract that validates and executes transactions
Smart Contract Wallets: User accounts implemented as smart contracts
Bundlers: Network actors that bundle multiple user operations into a single transaction
Integration Requirements
Prerequisites
Before beginning the integration process, ensure you have:
Deployed or identified the EntryPoint contract on your target chain
Implemented Smart Contract Wallet following ERC-4337 specification
Access to chain RPC endpoints for testing
Node.js development environment
Access to GitHub and our open source repository at https://github.com/dappradar/erc4337-configurations
Additionally please make sure that the configuration is not already added by our team or other contributors to avoid committing duplicate configurations.
Configuration Structure
Your ERC-4337 configuration must include the following components:
entrypoint_address
The deployed address of your EntryPoint contract
Example: "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789"
entrypoint_function_name
The function name in your EntryPoint contract that handles operations
Typically "handleOps" as per the ERC-4337 specification
Must be case-sensitive
entrypoint_function_abi
The ABI definition of your handleOps function
Must include all parameter types exactly as implemented
Standard format: `function handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[], address)`
scw_function_name
The function name in your Smart Contract Wallet that executes transactions
Typically "execute" as per common implementation
Must be case-sensitive
scw_function_abi
The ABI definition of your execute function
Must include all parameter types exactly as implemented
Standard format: `function execute(address,uint256,bytes)`
Here you can find an example of existing ERC-4337 configuration for Ethereum: https://github.com/dappradar/erc4337-configurations/blob/main/chain-config/ethereum/erc4337.json
Submission Process
Fork our erc4337-configurations repository: https://github.com/dappradar/erc4337-configurations
Create or update (depending if the chain is already supported or not) configuration file in `chain-config/<chain-name>/erc4337.json`
Add / update a test case in `test/chains/<chain-name>.test.json` and make sure it’s passing.
Create a Pull Request which will be reviewed by our internal team.
Support
Troubleshooting common integration issues
Incorrect ABI Format
Ensure all ABIs are properly formatted strings
Check for matching parameter counts and types
Verify no extra whitespace in ABI strings
Address Formatting
All addresses must be in checksum format
Addresses must include "0x" prefix
Verify correct case sensitivity
Function Name Mismatches
Function names must exactly match your contract
Check for typos and case sensitivity
Verify against deployed contract code
Getting Help
Open an issue in the https://github.com/dappradar/erc4337-configurations repository
Provide detailed information about your implementation
Include relevant transaction hashes
Share any error messages or unexpected behaviors
Last updated
Was this helpful?