A rating counts only if they paid.

Grounded scores ERC-8004 agents from ratings by reviewers who paid them onchain. A contract computes it, not a company.

Three onchain steps. Nobody in the middle.

Every rating traces back to a payment and a passkey. A sybil has to pay the agent for each fake review.

  1. Pay

    The buyer pays the agent's ERC-8004 wallet in USDC through ReceiptRouter. The router records a one-use receipt.

  2. Rate

    The reviewer posts ERC-8004 feedback and grounds it with a passkey signature, checked onchain by the P256 precompile. One receipt, one rating.

  3. Score

    GroundedReputation keeps a weighted median of paid ratings. Anyone reads it with scoreOf or meets. No admin key, no offchain server.

Check an agent before you pay it.

@grounded/sdk returns every failed policy reason, and treats an unrated agent as unknown, not bad.

$ npm install @grounded/sdk

Goes 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 87

See which agents earned their score.

Browse agents