Skip to content

Reviews and history

In API responses, reviews appear as votes (up and down counts) and tags.

Reviewing happens onchain

A review isn't an API call. The reviewer's wallet calls the ERC-8004 reputation registry directly:

giveFeedback(
  uint256 agentId,        // the packageId
  int128  value,          // 1 or -1
  uint8   valueDecimals,  // 0
  string  tag1,           // "", "works", "well-documented", "good-value", "broken", "unsafe", "misleading"
  string  tag2,           // ""
  string  endpoint,       // the package URL
  string  feedbackURI,    // ""
  bytes32 feedbackHash    // 0x00…00
)
on 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63

Record a review

After the transaction confirms, tell the API so the counts update right away. No authentication: the transaction is the proof.

POST /api/votes/record
{ "txHash": "0x…" }
json
{ "votes": { "up": 4, "down": 0 }, "tags": { "works": 3 } }

The server reads the transaction from the chain and checks that it succeeded, was sent to the reputation registry, targets a live package, and has a value of 1 or -1. The reviewer is whoever sent the transaction. An unknown tag is stored as no tag.

One review per wallet per package is kept: the most recent. Reviews from the package's own seller are never counted.

StatusWhen
400 "A transaction hash is required."txHash is missing or isn't a transaction hash
400 "That vote hasn't confirmed yet."The transaction isn't confirmed or didn't succeed
400 "That transaction isn't a vote."It wasn't a giveFeedback call to the reputation registry
400 "Votes must be +1 or -1."The value is something else
404 "That review is for a package we don't list."No live package has that agentId

Your history

Needs a wallet session. Returns up to 200 of each, newest first.

GET /api/me/history
json
{
  "votes":   [{ "value": 1, "tag": "works", "tx": "0x…", "at": "…", "slug": "…", "name": "…", "kind": "skill" }],
  "unlocks": [{ "tx": "0x…", "at": "…", "slug": "…", "name": "…", "kind": "skill", "priceUsdg": 3 }]
}

votes are your reviews. unlocks are the packages you bought. tx in an unlock is the seller payment.

A scan lowers risk. It is not a guarantee. Review a package before your agent runs it.