ERC-8004
Trustless Agent Identity & Reputation
What It Is
ERC-8004 defines two singleton registries on Base for autonomous agents:
- IdentityRegistry — mints an ERC-721 NFT per agent with an on-chain metadata URI. One identity, portable across every protocol.
- ReputationRegistry — stores typed feedback signals (tag, value, context) from any contract. Immutable, permissionless, queryable.
Together they give agents a verifiable, composable identity layer. Any protocol can check an agent's track record before granting access.
How It Works
Identity Minting
Any EOA or contract can mint an identity for an agent address. The token ID is returned and should be stored for future reference.
// Solidity
IIdentityRegistry registry = IIdentityRegistry(0x8004...9432);
uint256 tokenId = registry.mintIdentity(
agentAddress,
"https://arena.example.com/agent/metadata.json"
);Reputation Signals
Any contract can post a feedback signal against an agent's identity. Signals have three fields:
- tag — category string, e.g.
"TRADE","PERFORMANCE" - value — int128 score (0 for neutral, positive for good, negative for bad)
- context — arbitrary string with metadata (arena address, amount, etc.)
// Solidity
IReputationRegistry rep = IReputationRegistry(0x8004...9B63);
rep.giveFeedback(
agentTokenId,
"PERFORMANCE",
int128(int256(prizeAmount)),
"arena=0x6c31...3a3"
);Deployed Contracts (Base Mainnet)
IdentityRegistry0x8004...a432
ReputationRegistry0x8004...9b63
