web3wagmi
← All standards

ERC-8226 Regulated Agent Mandate

DraftERCcreated 2026-04-12requires ERC-165, EIP-712, ERC-1271

A compliance delegation layer for AI agents operating on tokenized regulated assets.

Authors: Ludovico Rossi (@ludovicor-eth), Dario Lo Buglio (@xaler5), Thamer Dridi (@thamerdridi), Nabil El Alami Khalifi (@nabil-brickken)

ERC-165 interface ids

Computed here as the XOR of the selectors each interface defines.

IComplianceProvider0xfa2a39b3
IAgentMandate0x73f5a1b7
IAgentExecutor0x1cff79cd

Functions this standard introduces (21)

0xf80ba00fcanExecute(address,address,address,bytes32,uint256)view
0x01003112checkPrincipal(address,bytes32)view
0x3644e515DOMAIN_SEPARATOR()view
0x1cff79cdexecute(address,bytes)
0x98d22b55extendMandate(address,address,uint48,uint256,bytes)
0x267fbac5freezeAgent(address)
0x448c857efreezePrincipal(address)
0xc5e98345getMandate(address,address)view
0xc6a4ad00grantMandate((address,uint48,uint48,address,address,bytes32,address,uint256,uint256,bytes32,bytes32[],uint256),bytes)
0xdbca38d3grantPrincipal(address,bytes32,uint48)
0x0c53b010isActionEnabled(address,address,bytes32)view
0x983ea7daisAgentFrozen(address)view
0xb6363cf2isOperator(address,address)view
0x1687a2d6isPrincipalFrozen(address)view
0x7ecebe00nonces(address)view
0xb48faccfrecordExecution(address,address,bytes32,uint256)
0x5e20639erevokeMandate(address,address,uint256,bytes)
0x20e03072revokePrincipal(address,uint8)
0x5e6f170bsetOperator(address,address,bool,uint256,bytes)
0xa2e97ab4unfreezeAgent(address)
0x18ed4b06unfreezePrincipal(address)

Inherited (1)

0x01ffc9a7supportsInterface(bytes4)ERC-165

Events (12)

Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.

0xdf4f789f70148ee05cc51268920eacba281b42484ced0a8599e981471848244fPrincipalGranted(address,bytes32)
0xea258e02bd8a4d804d04bc92f9171a1c381d9a4ce15da872875c42fdcfdf611fPrincipalRevoked(address,bytes32,uint8)
0xa720148a55b2de704c883b2621c396494982d2fa5d5d0eb46b1edf895fe3ab83MandateGranted(address,address,address,address,uint48,uint48,bytes32)
0x316f74c6786cc19120fec870fcd1b65bbbd870b16d68279ae2c078d6d841489cActionEnabled(address,address,bytes32)
0x1f38774437a6ad21407eb7409f803938005636221a15641c63dea2d13aacbbd6MandateRevoked(address,address,address)
0x872289b269aed6a56c0630ca5bf0de40baf7cbcd6dbc233c72067ce9d6814102MandateExtended(address,address,uint48)
0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267OperatorSet(address,address,bool)
0x9965291c5f1e655978720fae88e659c3ca252225e140537d71d73f171957c286ExecutionRecorded(address,address,bytes32,uint256,uint256)
0x9d6c91df2dea433b337a1d82a2c96afaa6d0fa7c3e8d6df590bb9a41cccea011AgentFrozen(address,address)
0xc739da7b905725b1921e3d3e973a31501e91730974128f9d24d1e1d3bba74a5dAgentUnfrozen(address,address)
0x0a656e88c3cdc660bd4438c527b21b788f6f7fad7d529051eae9dd3851d7be38PrincipalFrozen(address,address)
0x8c19d9bf834675112fde60ec7b1c4dc4a07428bbdb61188a2eae168b672bc05cPrincipalUnfrozen(address,address)

Depends on (3)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion