ERC-8354 Confidential Agent Policy Verdicts
A pre-execution allow/deny interface for agent actions, proven in zero knowledge against a policy never disclosed on-chain.
ERC-165 interface ids
Computed here as the XOR of the selectors each interface defines.
| IPolicyDomainRegistry | 0x0771fc05 |
| IPolicyGuarded | 0x8f0183bd |
Functions this standard introduces (9)
0x8b5c79b1 | consume((uint256,bytes32,bytes32,bytes32,address,uint64,bytes32,uint8,uint8),bytes,bytes) | |
0xd7525232 | consume((uint256,bytes32,bytes32,bytes32,address,uint64,bytes32,uint8,uint8),bytes) | |
0xee9eee3e | currentRoot(bytes32) | view |
0x00e35488 | domain(bytes32) | view |
0xd631b77a | isConsumed(bytes32,bytes32) | view |
0xe90c46b3 | isRootAcceptable(bytes32,bytes32) | view |
0x8f0183bd | policyDomain() | view |
0x3c624403 | verdictDigest((uint256,bytes32,bytes32,bytes32,address,uint64,bytes32,uint8,uint8)) | view |
0x608759aa | verify((uint256,bytes32,bytes32,bytes32,address,uint64,bytes32,uint8,uint8),bytes) | view |
Inherited (1)
0x01ffc9a7 | supportsInterface(bytes4) | ERC-165 |
Events (6)
Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.
0x043d376a16173c8f6152b7eeb0253930f255487e1a9604b6f9fd930b7733d8c1 | VerdictConsumed(bytes32,uint256,bytes32,bytes32,bytes32) | |
0x011b0b88ff6b9175768cadfb1629ecf54374e89d24757317e8f1c464563768f6 | DomainRegistered(bytes32,address,address,bytes32) | |
0x6f40d03dac9ffcc3cf04388088609f9c89d8fdc00692016f1e0964cec5f74fe6 | DomainRootUpdated(bytes32,bytes32,uint64,uint64) | |
0x2138de13934e1076a43150b9c11d73e77184d0eea276a8acadd25ed240fe99e2 | DomainProgramUpdated(bytes32,bytes32,bytes32) | |
0x8732d4c0d5763fbb2c5f0be0336b1f69e9f98dd88c12238239d5234b91e3a256 | DomainIdentityRegistryUpdated(bytes32,address,address) | |
0x67f192f0f5858717879e0f47f0c1bd3d31e7bddefd7b8f3fd7c1cb62a429c138 | DomainRevoked(bytes32) |
Custom errors (10)
0x189e31eb | AgentUnknown(uint256) | |
0x832c91c1 | VerdictExpired(uint64) | |
0x5a28a91f | VerdictReplayed(bytes32) | |
0x905c74a0 | ExecutorMismatch(address,address) | |
0xc0a739a8 | ExecutorAuthInvalid() | |
0xf42e0b48 | PolicyRootRejected(bytes32) | |
0x93ba490f | DomainInactive(bytes32) | |
0xe2d8f251 | VerdictDenied() | |
0xfcc51aef | VerdictKindMismatch(uint8,uint8) | |
0x09bde339 | InvalidProof() |
Depends on (6)
Proposals this one names in its requires field.
What the specification covers
Compare with
Parsed from the canonical specification · discussion