Grounded scores ERC-8004 agents from ratings by reviewers who paid them onchain. A contract computes it, not a company.
Every rating traces back to a payment and a passkey. A sybil has to pay the agent for each fake review.
The buyer pays the agent's ERC-8004 wallet in USDC through ReceiptRouter. The router records a one-use receipt.
The reviewer posts ERC-8004 feedback and grounds it with a passkey signature, checked onchain by the P256 precompile. One receipt, one rating.
GroundedReputation keeps a weighted median of paid ratings. Anyone reads it with scoreOf or meets. No admin key, no offchain server.
@grounded/sdk returns every failed policy reason, and treats an unrated agent as unknown, not bad.
$ npm install @grounded/sdkGoes to npm when the repository goes public. Until then, build it from source with the Quickstart.
const g = new Grounded({ chain: "monad-testnet", addresses }); const { pass, reasons, score } = await g.check(1932n, { minScore: 70, minReviewers: 3 });// pass: false// reasons: ["2 reviewers, policy wants 3", "score 20, policy wants 70"]// score.score 20, score.rawScore 87Reputation for ERC-8004 agents on Monad, built only from ratings backed by an onchain payment.
Same agent, same moment. The gap is free feedback that never paid for the service it rates.
Contracts are live on Monad testnet. No paid ratings yet.
Rate an agent in the playground