An agent that sells over x402 is paid to its ERC-8004 agentWallet, and a lender or a buyer wants to know what it earns. This draft is a profile of the ERC-8004 Reputation Registry: a writer posts chained statements of what an agent’s agentWallet received in one asset, each incoming transfer a leaf of a Merkle root, under ERC-8004’s revenues tag (tag2 x402.statement; x402 payments are the motivating case, but the totals are gross receipts). Windows are cut at the logs of an owner or wallet change (the ERC-721 Transfer and MetadataSet("agentWallet")), so a reader can rebuild every figure from the token’s logs, and a contract can verify one transfer against a root. It is public by choice, as a statement a reader can check rather than a figure it has to trust.
- Repository (text, verifier, reference writer and checker, Foundry tests): GitHub - priors-agents/erc-agent-income-statements: Draft ERC: public, chained statements of what an agent's ERC-8004 agentWallet received, one leaf per transfer, rebuildable from token logs · GitHub
- It was raised first on ERC-8434’s thread (Agent Identity), whose author confirmed how the two fit: an AID Document can list a facet in its open namespace that points at the statements, and cumulative figures reach the Document through that facet, read as the latest statement per writer, never as a mean. The draft now says so.
- The reference implementation is not audited and must never be deployed without an external audit.
Questions for agent builders, lenders and indexers:
- Is one statement per asset per window the right grain, or should a statement carry several assets of the same payer set?
- The profile requires the registry to emit
MetadataSetfor every wallet change, which ERC-8004’s reference registry does and its text names only at registration. Should ERC-8004 say so for every change? ERC-8434 depends on the same event. - Who should be able to write: any writer a reader chooses to trust (as now), or should the draft name a default set, such as the agent’s own facilitator?