web3wagmi
← All standards

ERC-8004 Trustless Agents

DraftERCcreated 2025-08-134 later proposals build on itrequires EIP-155, EIP-712, ERC-721, ERC-1271

Discover agents and establish trust through reputation and validation

Authors: Marco De Rossi (@MarcoMetaMask), Davide Crapis (@dcrapis), Jordan Ellis, Erik Reppel

Functions this standard introduces (25)

0xc2349ab2appendResponse(uint256,address,uint64,string,bytes32)
0x8d5d0c2dgetAgentValidations(uint256)
0x00339509getAgentWallet(uint256)
0x42dd519cgetClients(uint256)
0xbc4d861bgetIdentityRegistry()
0xf2d81759getLastIndex(uint256,address)
0xcb4799f2getMetadata(uint256,string)
0x6e04cacdgetResponseCount(uint256,address,uint64,address[])
0x81bbba58getSummary(uint256,address[],string,string)
0x1b7cabd6getSummary(uint256,address[],string)
0xff2febfcgetValidationStatus(bytes32)
0x4bf3158cgetValidatorRequests(address)
0x3c036a7egiveFeedback(uint256,int128,uint8,string,string,string,string,bytes32)
0xd9d84224readAllFeedback(uint256,address[],string,string,bool)
0x232b0810readFeedback(uint256,address,uint64)
0x1aa3a008register()
0x8ea42286register(string,(string,bytes)[])
0xf2c298beregister(string)
0x4ab3ca99revokeFeedback(uint256,uint64)
0x0af28bd3setAgentURI(uint256,string)
0x2d1ef5aesetAgentWallet(uint256,address,uint256,bytes)
0x466648dasetMetadata(uint256,string,bytes)
0x3fddcf19unsetAgentWallet(uint256)
0xaaf400c4validationRequest(address,uint256,string,bytes32)
0x3d659a96validationResponse(bytes32,uint8,string,bytes32,string)

Events (8)

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

0x2c149ed548c6d2993cd73efe187df6eccabe4538091b33adbd25fafdb8a1468bMetadataSet(uint256,string,string,bytes)
0xca52e62c367d81bb2e328eb795f7c7ba24afb478408a26c0e201d155c449bc4aRegistered(uint256,string,address)
0x3a2c7fffc2cba7582c690e3b82c453ea02a308326a98a3ad7576c606336409fbURIUpdated(uint256,string,address)
0x6a4a61743519c9d648a14e6493f47dbe3ff1aa29e7785c96c8326a205e58febcNewFeedback(uint256,address,uint64,int128,uint8,string,string,string,string,string,bytes32)
0x25156fd3288212246d8b008d5921fde376c71ed14ac2e072a506eb06fde6d09dFeedbackRevoked(uint256,address,uint64)
0xb1c6be0b5b8aef6539e2fac0fd131a2faa7b49edf8e505b5eb0ad487d56051d4ResponseAppended(uint256,address,uint64,address,string,bytes32)
0x530436c3634a98e1e626b0898be2f1e9980cc1bd2a78c07a0aba52d0a48a5059ValidationRequest(address,uint256,string,bytes32)
0xafddf629e874ccc3963b6a888c477bd464a6c8525024fc88759ea3b2326349aeValidationResponse(address,uint256,bytes32,uint8,string,bytes32,string)

Depends on (4)

Proposals this one names in its requires field.

Built on by (4)

Later proposals that name this one in their requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion