Skip to main content
The reputation program is the ERC-8004 reputation surface: clients leave scored feedback on agents, can revoke it later, and anyone (the operator, a third party) can attach responses. It never calls into other programs — it just reads identity’s Agent accounts to make sure the agent you’re rating actually exists, and to block self-feedback. Program ID (devnet): 35UrJCxmsyqPLcFNVHqsM8UZZjx6UQYNBS5ChrvUfLPR

Instructions

Account markers: s = signer, w = writable, p = PDA verified, + = created if missing.

The score: value + value_decimals

Feedback scores are signed fixed-point numbers — an i128 mantissa plus a decimal count, so value = 45, value_decimals = 1 reads as 4.5, and value = -2, value_decimals = 0 as -2. Limits: at most 18 decimals, and |value| ≤ 1e38. This is the same convention the EVM reputation contract uses, so scores port across chains without rescaling. Feedback is indexed 1-based per (agent, client) pair: your first review of agent 9 gets feedback_index = 1, your second 2, and so on. The pair index PDA (feedback-index) tracks the counter, and a per-agent client list (feedback-client-index) tracks who has ever reviewed. tag1, tag2, and endpoint are short strings for off-chain filtering (e.g. quality, the endpoint you actually called); feedback_uri + feedback_hash anchor a richer off-chain document. Exact length caps live in Accounts & Encoding.

State

Worth knowing

  • Revoked ≠ deleted. Indexers should keep showing revoked feedback with a flag — getSummary-style aggregation is expected to filter it off-chain. (There is no on-chain summary function; the program is a write-side ledger.)
  • Responses are per-responder. The same responder can answer the same feedback multiple times (response_index increments), which is meant for threads, not edits.
  • Trust the identity program, not the account. The agent PDA is re-derived against whatever identity program you pass in — pass the canonical one from Deployed Contracts, or use the SDK decoders which take the program ID from your deployment config.