web3wagmi
← All standards

ERC-8257 Agent Tool Registry

DraftERCcreated 2026-04-17requires EIP-150, ERC-165, EIP-712, ERC-1967

Minimal onchain registry for AI agent tools with extensible predicate-based access control

Authors: Cody Sears (@CodySearsOS), Ryan Ghods (@ryanio)

ERC-165 interface ids

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

IToolRegistry0xf1dc8075
IAccessPredicate0xbdf9dc18
IERC721Holding0xbdf8c428
IERC1155Holding0xcb429230
ISubscription0x44387cc2

Functions this standard introduces (14)

0x9148e6caderegisterTool(uint256)
0xcb429230erc1155Holding()
0xbdf8c428erc721Holding()
0x1ce77540getRequirements(uint256)view
0xa0178453getToolConfig(uint256)view
0xa7e3775bhasAccess(uint256,address,bytes)view
0x06fdde03name()view
0xfe1d0b16registerTool(string,bytes32,address)
0xde24a6d2setAccessPredicate(uint256,address)
0x44387cc2subscription()
0xfaf23b23toolCount()view
0x2361abf3tryHasAccess(uint256,address,bytes)view
0xccca3bf0updateToolMetadata(uint256,string,bytes32)
0x54fd4d50version()view

Inherited (1)

0x01ffc9a7supportsInterface(bytes4)ERC-165

Events (4)

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

0xe7be7fd3c802f61682f56ba817276b1cc81fbee7cb50705c8ed7952811dac397ToolRegistered(uint256,address,address,string,bytes32)
0x14f92d1aaaea2df5f884f2fd8dbb6ea7cad1784ffaac2d8fd594f107d719a414ToolMetadataUpdated(uint256,string,bytes32)
0x53e2d3a37877f4a367d09cdba706178d3c6414a15d642294300c65a8037dd6ffAccessPredicateUpdated(uint256,address)
0x9add33e854e243f868ff7cacac076d65b1d56fb593e2bb891e76e2e8d5ddd034ToolDeregistered(uint256)

Custom errors (6)

0xb73d6f8bToolNotFound(uint256)
0xd594d2e7NotToolCreator(uint256,address)
0xeec403f0InvalidMetadataURI()
0x03d0cf2aInvalidManifestHash()
0x4c8ce4dfInvalidAccessPredicate(address)
0x0bf47976ToolIsDeregistered(uint256)

Depends on (4)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion