ERC-6900 Modular Smart Contract Accounts
Interfaces for smart contract accounts and modules, optionally supporting upgradability and introspection
ERC-165 interface ids
Computed here as the XOR of the selectors each interface defines.
| IERC6900Module | 0x46c0c1b4 |
| IERC6900ExecutionModule | 0xae5628c6 |
| IERC6900ExecutionHookModule | 0xb02cc192 |
Functions this standard introduces (17)
0x9cfd7cff | accountId() | view |
0xb61d27f6 | execute(address,uint256,bytes) | payable |
0x34fcd5be | executeBatch((address,uint256,bytes)[]) | payable |
0xf2680c0f | executeWithRuntimeValidation(bytes,bytes) | payable |
0xae5628c6 | executionManifest() | pure |
0x757c8a26 | getExecutionData(bytes4) | view |
0xab9c1785 | installValidation((bytes25),bytes4[],bytes,bytes[]) | |
0xa1308f27 | moduleId() | view |
0x6d61fe70 | onInstall(bytes) | |
0x8a91b0e3 | onUninstall(bytes) | |
0x5d413a81 | postExecutionHook(uint32,bytes) | |
0xed6dfb13 | preExecutionHook(uint32,address,uint256,bytes) | |
0x3d6bda32 | preRuntimeValidationHook(uint32,address,uint256,bytes,bytes) | |
0x3f41826e | preSignatureValidationHook(uint32,address,bytes32,bytes) | view |
0xbb422bc7 | uninstallValidation((bytes24),bytes,bytes[]) | |
0x465d33e0 | validateRuntime(address,uint32,address,uint256,bytes,bytes) | |
0xe7db7f7e | validateSignature(address,uint32,address,bytes32,bytes) | view |
Inherited (1)
0x01ffc9a7 | supportsInterface(bytes4) | ERC-165 |
Events (2)
Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.
0xc36a28045e90a1163d24d4216c8cfd8c44c4e835a486fb84d511d6b9e0736db9 | ValidationInstalled(address,uint32) | |
0x43f7309d11ba6b2e180e9ab8a6da09d2fa1f585d7daed4b26c1c7f2a90b867a2 | ValidationUninstalled(address,uint32,bool) |
Depends on (3)
Proposals this one names in its requires field.
What the specification covers
Compare with
Parsed from the canonical specification · discussion