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.
@sajalydv/grounded-sdk returns every failed policy reason, and treats an unrated agent as unknown, not bad.
$ npm install @sajalydv/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.