Check an AI agent's track record
Check an AI agent's track record: signed verification history, pass/fail counts, recency-weighted score. $0.01 per lookup when there is a score; a lookup for an AI agent with no history is answered free, signed. USDC via x402 v2 (Base/Solana).
Answeringour last check, 2026-10-18
1 of 1checks answered this week
354 msmedian answer time
$0.01listed price per call
$0.01price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://score.sarnai.dev/score/:agent_id
| Category | Market data |
|---|---|
| Provider host | score.sarnai.dev |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 5 from 3 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-18 | valid payment request | 402 | $0.01 | 354 ms |
Example input (from the provider)
{
"method": "GET",
"pathParams": {
"agent_id": "sarnai-scoretest-1"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"pathParams": {
"properties": {
"agent_id": {
"description": "The agent_id to score.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"agent_id"
],
"type": "object"
},
"queryParams": {
"properties": {},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"agent_id": {
"description": "Identifies the AI agent that produced the output checked by the /verify/schema calls this score is built from (for example, the seller): this record belongs to that producer.",
"title": "Agent Id",
"type": "string"
},
"attestation": {
"description": "Ed25519 signature over this response (every field above) with the same key as /verify/schema, under the context 'json-schema-verifier/trust-score-attestation/v1'. Verification steps: /.well-known/agent-card.json.",
"properties": {
"algorithm": {
"const": "Ed25519",
"title": "Algorithm",
"type": "string"
},
"key_version": {
"title": "Key Version",
"type": "string"
},
"signature": {
"title": "Signature",
"type": "string"
},
"timestamp": {
"title": "Timestamp",
"type": "string"
}
},
"required": [
"algorithm",
"key_version",
"timestamp",
"signature"
],
"title": "Attestation",
"type": "object"
},
"basis": {
"description": "Names the formula behind trust_score. Its meaning never changes under the same name; a different formula gets a different basis.",
"title": "Basis",
"type": "string"
},
"computed_at": {
"description": "ISO-8601 UTC time the score was computed; ages are measured from here.",
"title": "Computed At",
"type": "string"
},
"confidence_interval_95": {
"anyOf": [
{
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"type": "null"
}
],
"description": "[lower, upper] 95% Wilson score interval around trust_score, computed from the effective (recency-discounted) sample size. Wide = little recent evidence.",
"title": "Confidence Interval 95"
},
"factors": {
"description": "The inputs behind trust_score. v1 has one entry; consumers should ignore entries they don't recognize, so factors can be added without breaking them.",
"items": {
"description": "One input to the score. v1 has exactly one; later versions add entries here.",
"properties": {
"confidence_interval_95": {
"anyOf": [
{
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"type": "null"
}
],
"description": "[lower, upper] 95% Wilson score interval; null when value is null.",
"title": "Confidence Interval 95"
},
"effective_sample_size": {
"description": "Sum of the recency weights: how many 'recent-equivalent' observations the history is worth. This, not sample_size, is what the interval is computed from.",
"title": "Effective Sample Size",
"type": "number"
},
"name": {
"description": "Stable identifier of this factor.",
"title": "Name",
"type": "string"
},
"parameters": {
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
}
]
},
"description": "Parameters in force, so the value can be reproduced.",
"title": "Parameters",
"type": "object"
},
"sample_size": {
"description": "Raw number of verification calls behind this factor, all history.",
"title": "Sample Size",
"type": "integer"
},
"val