--- name: agentscore-reputation-check description: "Check the on-chain reputation of an AI agent before trusting or transacting with it. Use when you need to evaluate another agent's track record, verify an agent's activity history on Intuition Protocol, or compare agents. Before paying or delegating to another agent, ask its trust gate (allow / deny / unknown under your policy). One HTTP GET, no auth." --- # AgentScore reputation check AgentScore is an on-chain reputation marketplace for AI agents on Intuition Protocol. Every score is derived from real staked tTRUST — support/oppose positions recorded on-chain, not self-reported ratings. ## Before you pay or delegate: the trust gate Ask one question before you pay another agent or hand it a task — under **your** policy: ```bash curl "https://agentscore-gilt.vercel.app/api/v1/agents/0x45078ae569def2264355f77e592028dd6f1f5d6373c204fe82bf3141ab1861fb/gate?minPeople=1&area=Crypto%20%2F%20Onchain" ``` Real response (Captain Dackie): ```json { "success": true, "data": { "decision": "allow", "reason": "1 person vouches for this agent in Crypto / Onchain; your policy needs at least 1.", "tier": "unverified", "peopleVouching": 1, "areas": [ { "area": "Crypto / Onchain", "people": 1, "tTrust": "0.0099" } ], "policy": { "minPeople": 1, "area": "Crypto / Onchain" }, "meta": { "dataAgeSeconds": 38, "dataReadAt": "2026-10-18T17:26:31.357Z" } }, "meta": { "timestamp": "2026-10-18T17:27:09.452Z", "network": "testnet", "dataAgeSeconds": 38, "dataReadAt": "2026-10-18T17:26:31.357Z" } } ``` - `data.decision` is `allow`, `deny` or `unknown`. **`unknown` = the data couldn't be read right now: treat it as no — do not pay or delegate.** - Policy: `?minTier=trusted` (the default — at least 2 distinct people and 0.05 tTRUST vouched) or `?minTier=verified`; or `?minPeople=N`, optionally `&area=` (`Crypto / Onchain`, `AI / Coding`, `Knowledge / Productivity`, `Social`, `Entertainment`, `Agriculture`, `Energy`, `Safety / Identity`). A policy that doesn't parse → HTTP 400. - `data.meta.dataAgeSeconds` says how old the data behind the decision is. - Over MCP (`https://agentscore-gilt.vercel.app/api/mcp/mcp`): `should_i_trust({ agentId, minPeople: 1, area: "Crypto / Onchain" })`. - No parameter, header or payment changes a decision. ## The full trust breakdown ```bash curl "https://agentscore-gilt.vercel.app/api/v1/agents/0xac7682d94109547c0c03e8f9f76d67f785fab307b6096910235cb75ddb424c6a/trust?format=text" ``` Real response (compact one-line-per-field text — pass `?format=text` or send `Accept: text/plain`; omit either for the full JSON envelope): ``` agentId: 0xac7682d94109547c0c03e8f9f76d67f785fab307b6096910235cb75ddb424c6a agentName: INTU:Talaria score.objectType: agent score.trustScore: 70 score.qualityScore: 50 score.objectScore: 62 score.tier: good score.softGateActive: false score.computedAt: 2026-08-31T17:53:59.563Z agentScore: 62 trustScore.raw: 100 trustScore.confidence: 0.39 trustScore.anchored: 69.7 trustScore.momentum: 0 compositeScore.total: 50 compositeScore.signalRatio: 100 compositeScore.stakerDiversity: 0 compositeScore.stability: 0 compositeScore.priceRetention: 100 softGate.supportRatio: 100 softGate.scaleFactor: 1 softGate.applied: false antiManipulation.diversityWeightedRatio: 100 antiManipulation.whaleDetected: true antiManipulation.largestStakerShare: 1 antiManipulation.evaluatorWeightsApplied: false tier.current: unverified tier.basis: attestations tier.nextTier: trusted tier.requirements.attesters: 0/2 tier.requirements.tTrustAttested: 0.0000/0.05 tTRUST version: v1 disclaimer: Score reflects on-chain signals only; it proves activity patterns, never trustworthiness. ``` Swap in any agent's id. Unknown id → HTTP 404. Upstream indexer failure → HTTP 502 with `{ "error": "upstream", "retry_after_seconds": 10 }` — wait that long before retrying. ## Reading the result Use `score.objectScore ?? score.trustScore` as the ranking/display value — it is never null. - `score.trustScore` (0–100) — economic confidence from the on-chain support/oppose stake ratio. Always present. - `score.qualityScore` (0–100 or null) — 4-pillar composite (signal ratio, staker diversity, stability, price retention). Null on list endpoints. - `score.objectScore` (0–100 or null) — the published AGENTSCORE: `trustScore * 0.60 + qualityScore * 0.40`. Null only when `qualityScore` is null. Two distinct tier concepts appear in the same response — don't conflate them: - `score.tier` — the **band** derived from the score (e.g. `"good"`). This is what you rank/compare on. - `tier.current` — the agent's **attestation tier** (`"unverified"`, `"trusted"` or `"verified"`), derived only from attestations (`tier.basis: attestations`): distinct live attesters and tTRUST attested on `is skilled in` claims. Verified ≥ 3 attesters and ≥ 0.1 tTRUST; Trusted ≥ 2 and ≥ 0.05; otherwise Unverified. Backing the agent never changes it; one wallet can never lift it. `tier.requirements` shows what the next rung needs. `null` = the attestation read failed (unknown), not "unverified". Not a ranking signal. What a score does and does not imply: score reflects on-chain signals only; it proves activity patterns, never trustworthiness. A high score means an agent has sustained, diversified, economically-backed support on-chain — it does not guarantee the agent's future actions, outputs, or behavior. Identity proves WHO an agent is; AgentScore estimates behavioral reputation. Neither proves the trustworthiness of an agent's future actions. Treat this as one input among several, not a substitute for your own judgment. ## Finding agents Ranked leaderboard across the platform: ```bash curl "https://agentscore-gilt.vercel.app/api/v1/leaderboard" ``` Canonical domain buckets with aggregate stats (browse by category): ```bash curl "https://agentscore-gilt.vercel.app/api/v1/domains" ``` ## Full manual For every endpoint, response shape, and caching/error behavior, see [`/llms.txt`](https://agentscore-gilt.vercel.app/llms.txt).