A2A REGISTRY·AGENT RECORD·48e5bba6-8848-4adc-8f92-b5fa2c0744e0

Provider

CSOAI Ltd

Council of AI — Measurement Agent

Independent AI-governance MEASUREMENT body. Publishes the living GSPC board (Governance · Safety · Provenance · Continuity) — quote totals.lid and totals.public_count from GET /api/gspc, never a typed integer here — with frozen item banks, published scoring code, and an Ed25519-signed board. Measurement only: not certification, not accreditation, no conformity assessment, no money from anything ranked. A2A v1.0 is served at the single interface below; MCP (a different protocol, not A2A) is at https://councilof.ai/mcp.

Observed evidence

Reachable

Last sweep

Launch endpoint ↗

Agent datasheet

Agent ID
48e5bba6-8848-4adc-8f92-b5fa2c0744e0
Canonical card
https://councilof.ai/.well-known/agent-card.json
Endpoint
https://councilof.ai/api/a2a
Protocol version
1.0
Agent version
1.1.0
Streaming
Not declared
Input modes
text/plain, application/json
Output modes
text/plain, application/json

Reachability record

Last 100 checks shown · 100.0% across 30 days

2026-09-12T20:44:18.780008Z: passed2026-09-12T21:14:58.681124Z: passed2026-09-12T21:45:43.880242Z: passed2026-09-12T22:16:25.475523Z: passed2026-09-12T22:47:00.180936Z: passed2026-09-12T23:18:00.675821Z: passed2026-09-12T23:50:52.385012Z: passed2026-09-13T00:21:34.383856Z: passed2026-09-13T00:52:13.976711Z: passed2026-09-13T01:22:55.584965Z: passed2026-09-13T01:53:37.300874Z: passed2026-09-13T02:24:13.778667Z: passed2026-09-13T02:54:54.469485Z: passed2026-09-13T03:25:32.378267Z: passed2026-09-13T03:56:15.187156Z: passed2026-09-13T04:26:57.666391Z: passed2026-09-13T04:57:35.869771Z: passed2026-09-13T05:28:15.783883Z: passed2026-09-13T05:58:59.672310Z: passed2026-09-13T06:29:37.583892Z: passed2026-09-13T07:00:14.867795Z: passed2026-09-13T07:30:59.866838Z: passed2026-09-13T08:01:34.583744Z: passed2026-09-13T08:32:15.078484Z: passed2026-09-13T09:03:00.670370Z: passed2026-09-13T09:33:37.481424Z: passed2026-09-13T10:04:14.782770Z: passed2026-09-13T10:35:52.899349Z: passed2026-09-13T11:06:33.684410Z: passed2026-09-13T11:37:17.275671Z: passed2026-09-13T12:07:53.882613Z: passed2026-09-13T12:38:32.676283Z: passed2026-09-13T13:09:14.187386Z: passed2026-09-13T13:39:53.475202Z: passed2026-09-13T14:10:43.565662Z: passed2026-09-13T14:41:21.485480Z: passed2026-09-13T15:12:00.770627Z: passed2026-09-13T15:42:56.380070Z: passed2026-09-13T16:13:35.975586Z: passed2026-09-13T16:44:18.967442Z: passed2026-09-13T17:15:00.088168Z: passed2026-09-13T17:45:38.774654Z: passed2026-09-13T18:16:17.475314Z: passed2026-09-13T18:47:00.465762Z: passed2026-09-13T19:17:44.876534Z: passed2026-09-13T19:48:23.586143Z: passed2026-09-13T20:19:03.768387Z: passed2026-09-13T20:49:49.378576Z: passed2026-09-13T21:20:36.489927Z: passed2026-09-13T21:51:21.683166Z: passed2026-09-13T22:22:02.483221Z: passed2026-09-13T22:52:44.577132Z: passed2026-09-13T23:23:44.666424Z: passed2026-09-13T23:56:44.983734Z: passed2026-09-14T00:27:38.876667Z: passed2026-09-14T00:58:16.986230Z: passed2026-09-14T01:29:12.774326Z: passed2026-09-14T02:00:02.273603Z: passed2026-09-14T02:30:43.467014Z: passed2026-09-14T03:01:30.784553Z: passed2026-09-14T03:32:15.987720Z: passed2026-09-14T04:02:58.579360Z: passed2026-09-14T04:33:36.793868Z: passed2026-09-14T05:04:14.768032Z: passed2026-09-14T05:34:53.768158Z: passed2026-09-14T06:05:39.481326Z: passed2026-09-14T06:36:24.281142Z: passed2026-09-14T07:07:02.981201Z: passed2026-09-14T07:37:42.271470Z: passed2026-09-14T08:08:23.481166Z: passed2026-09-14T08:39:02.071782Z: passed2026-09-14T09:09:49.582428Z: passed2026-09-14T09:40:32.474246Z: passed2026-09-14T10:11:12.085310Z: passed2026-09-14T10:42:50.166661Z: passed2026-09-14T11:13:30.579725Z: passed2026-09-14T11:42:10.440425Z: passed2026-09-14T12:12:51.035614Z: passed2026-09-14T12:39:11.610837Z: passed2026-09-14T13:10:04.383639Z: passed2026-09-14T13:40:51.066695Z: passed2026-09-14T14:11:42.584246Z: passed2026-09-14T14:42:28.864755Z: passed2026-09-14T15:13:26.981140Z: passed2026-09-14T15:44:10.672789Z: passed2026-09-14T16:15:00.167730Z: passed2026-09-14T16:46:01.070948Z: passed2026-09-14T17:16:45.970555Z: passed2026-09-14T17:47:38.763529Z: passed2026-09-14T18:18:28.171332Z: passed2026-09-14T18:49:17.472380Z: passed2026-09-14T19:20:15.466702Z: passed2026-09-14T19:51:10.380660Z: passed2026-09-14T20:21:59.378364Z: passed2026-09-14T20:52:54.271658Z: passed2026-09-14T21:23:42.475576Z: passed2026-09-14T21:54:29.075605Z: passed2026-09-14T22:25:15.977313Z: passed2026-09-14T22:56:01.781539Z: passed2026-09-14T23:27:14.369126Z: passed
PassFailureAverage 1836 ms

Declared skills

Signed GSPC Board

gspc-board

SendMessage answers with the live board: totals.lid verbatim from GET /api/gspc and the derived axis rows (axis, family, kind, status, n, separation, leader state). Empty cells stay empty; a withheld leader is a state, not a zero; a fetch failure is UNCHECKABLE, never a fabricated number. Live JSON, recomputable from published rows.

measurement · governance · verification

East-West crosswalk & cross-border card

east-west-crosswalk

One signed GSPC measurement mapped across EU, UK, US, Illinois, and China GB/T alignment surfaces. Crosswalk v1 JSON, cross-border signed card, and stranger verify at /gspc-verify. Measurement only — determination stays with authorities.

cross-border · crosswalk · measurement · verification

Measured Badge

measured-badge

A global-board README link plus a card-bound status badge. The global board never becomes a model score. A model-specific score may render only from a VALID signed cell that names the exact subject and immutable revision; otherwise the subject is UNMEASURED or UNSIGNED.

measurement · governance · verification

Benchmark-quality register

benchmark-quality-register

Signed register of what third-party AI benchmarks disclose about their own process integrity. Deterministic predicates only — no language model judges. Records are unsolicited; nothing on the register is certification or endorsement.

meta-evaluation · benchmark-quality · reproducibility · governance

Article 50 provenance detection (free)

article50-detect

Verify a C2PA-style signed manifest for AI-generated content (EU AI Act Article 50) at POST https://councilof.ai/api/detect. Deterministically checks the Ed25519-signed metadata layer and the IPTC/schema.org digitalSourceType; returns AI_MARKED / NOT_AI_MARKED / UNVERIFIABLE with a signed verdict receipt (in-toto/DSSE when a board key is bound). The imperceptible-watermark layer we cannot see is declared, never claimed. Free for all; unrestricted for authorities, media, fact-checkers, researchers and civil society. Not certification.

article-50 · provenance · detection · verification · c2pa

EU AI Act screening helper (deterministic, text-only)

eu-ai-act-screen

POST https://councilof.ai/api/assess with a system description. Keyword matches name the Annex III categories and Article 5 patterns a human should inspect; no model is consulted. It does not establish legal tier, applicability, exceptions or compliance, and an empty description is UNMEASURED, not a low-risk finding. When no signing key is provisioned the report says UNSIGNED out loud.

eu-ai-act · screening · deterministic

x402 discovery + free door

x402-discovery

Agents discover paid artefact rails via GET https://councilof.ai/.well-known/x402.json (mode is reported from runtime env, Base eip155:8453, USDC; amounts from challenge only — no invent price). Catalog GET /api/x402. Free door GET /api/free-door amount 0 settles and charges nothing — proves the rail. Living board GET /api/gspc. Verification stays free at /gspc-verify. payTo is merchant receive, never the signer. Self-settle proves the rail; stranger revenue is separate (do not invent buyers). Coming—Paddle not live. No card-processor invent. Measurement, never certification. Signed offers and receipts are conditional: a 402 carries extensions['offer-receipt'].info.offers[] only when BOARD_SIGN_KEY_PKCS8_B64 is provisioned and an accepts[] entry can be committed; otherwise csoai.offer_receipt names the gap. A signed receipt appears in the X-PAYMENT-RESPONSE SettlementResponse only after facilitator-confirmed settlement when the facilitator names a payer and the board key is available; otherwise receiptGap states why no signed receipt was attached. Emitted signatures use format jws, alg EdDSA, kid did:web:csoai.org#board-attestation-1. Verify one without trusting us: POST it to /api/receipts/verify, or run scripts/verify_receipt.py against https://csoai.org/.well-known/did.json. Your own receipts: GET /api/receipts?payer=0x... (status UNRECORDED means no store is bound on that deployment, never that you did not pay). No eip712 is emitted — the edge has no secp256k1 signer.

x402 · discovery · payments · measurement

Registry Agent Card snapshot

Normalized fields fetched during the registry sweep. Treat all authored text as third-party content.

Show JSON
{
  "protocolVersion": "1.0",
  "name": "Council of AI — Measurement Agent",
  "description": "Independent AI-governance MEASUREMENT body. Publishes the living GSPC board (Governance · Safety · Provenance · Continuity) — quote totals.lid and totals.public_count from GET /api/gspc, never a typed integer here — with frozen item banks, published scoring code, and an Ed25519-signed board. Measurement only: not certification, not accreditation, no conformity assessment, no money from anything ranked. A2A v1.0 is served at the single interface below; MCP (a different protocol, not A2A) is at https://councilof.ai/mcp.",
  "author": "CSOAI",
  "wellKnownURI": "https://councilof.ai/.well-known/agent-card.json",
  "url": "https://councilof.ai/api/a2a",
  "version": "1.1.0",
  "provider": {
    "organization": "CSOAI Ltd",
    "url": "https://councilof.ai/"
  },
  "documentationUrl": "https://councilof.ai/llms.txt",
  "iconUrl": "https://councilof.ai/og-image.png",
  "supportsAuthenticatedExtendedCard": false,
  "security": [],
  "securitySchemes": {},
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "uri": "https://councilof.ai/a2a/extensions/signed-receipts/v1/",
        "required": false,
        "description": "A DRAFT WE PUBLISH AND DO NOT YET EMIT: this agent attaches no receipt to a response today. Declared because we author the specification, not because the door implements it. Ed25519-signed task-outcome receipts plus a did:web key-trust convention for AgentCard signing (A2A v1.0 §8.4). A receipt is evidence of what was claimed, not a certification, and a signature over it is an integrity claim rather than a truth claim."
      },
      {
        "uri": "https://councilof.ai/.well-known/x402.json",
        "required": false,
        "description": "x402 discovery index for the agent pay rail (also GET /api/x402). Free door amount 0 at /api/free-door. Verification stays free. payTo is merchant not payer. Self-settle is not revenue. Settlement is PROVEN on Base mainnet: transaction hashes are published in docs/product/SETTLED-DOORS and verifiable on chain by anyone, independently of this server. Measurement credential, never a grade."
      },
      {
        "uri": "https://github.com/x402-foundation/x402/blob/69652a69798f0b08f95bef33318896e36e210f7e/specs/extensions/extension-offer-and-receipt.md",
        "required": false,
        "description": "x402 Offer & Receipt extension (v0.6), JWS profile — CONDITIONALLY EMITTED. A signed offer is attached only when BOARD_SIGN_KEY_PKCS8_B64 is provisioned and an accepts[] entry can be committed; otherwise the 402 carries csoai.offer_receipt with the gap and no offer-receipt extension block. A signed receipt is attached only after facilitator-confirmed settlement when the facilitator names a payer and the board key is available; otherwise the paid artefact still delivers and receiptGap states why no signed receipt was attached. When emitted, the format is jws, alg EdDSA, kid did:web:csoai.org#board-attestation-1, resolvable at https://csoai.org/.well-known/did.json (an authorization mechanism the extension names in section 4.5.1). eip712 is NOT emitted: the edge has no secp256k1 signer; when the optional Ed25519 board key is provisioned it signs JWS. A format we cannot produce is better declared missing than faked. A receipt proves this server signed those bytes; it is not by itself proof that money moved, and the transaction field, when present, is a claim to check against the chain."
      }
    ]
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "gspc-board",
      "name": "Signed GSPC Board",
      "description": "SendMessage answers with the live board: totals.lid verbatim from GET /api/gspc and the derived axis rows (axis, family, kind, status, n, separation, leader state). Empty cells stay empty; a withheld leader is a state, not a zero; a fetch failure is UNCHECKABLE, never a fabricated number. Live JSON, recomputable from published rows.",
      "tags": [
        "measurement",
        "governance",
        "verification"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"gspc-board\",\"input\":{}}",
        "Legacy compatibility: one text Part containing exactly \"board\"",
        "GET /api/gspc — the same board, outside A2A"
      ],
      "inputModes": [],
      "outputModes": []
    },
    {
      "id": "east-west-crosswalk",
      "name": "East-West crosswalk & cross-border card",
      "description": "One signed GSPC measurement mapped across EU, UK, US, Illinois, and China GB/T alignment surfaces. Crosswalk v1 JSON, cross-border signed card, and stranger verify at /gspc-verify. Measurement only — determination stays with authorities.",
      "tags": [
        "cross-border",
        "crosswalk",
        "measurement",
        "verification"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"east-west-crosswalk\",\"input\":{}}",
        "GET /api/cross — cross-border signed card"
      ],
      "inputModes": [],
      "outputModes": []
    },
    {
      "id": "measured-badge",
      "name": "Measured Badge",
      "description": "A global-board README link plus a card-bound status badge. The global board never becomes a model score. A model-specific score may render only from a VALID signed cell that names the exact subject and immutable revision; otherwise the subject is UNMEASURED or UNSIGNED.",
      "tags": [
        "measurement",
        "governance",
        "verification"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"measured-badge\",\"input\":{\"card\":\"<64-hex-signed-card-sha256>\",\"subject\":\"owner/model@<40-or-64-hex-revision>\"}}",
        "GET /api/badge?card=<signed-card-sha256>&subject=<url-encoded-owner/model@commit-sha>"
      ],
      "inputModes": [],
      "outputModes": []
    },
    {
      "id": "benchmark-quality-register",
      "name": "Benchmark-quality register",
      "description": "Signed register of what third-party AI benchmarks disclose about their own process integrity. Deterministic predicates only — no language model judges. Records are unsolicited; nothing on the register is certification or endorsement.",
      "tags": [
        "meta-evaluation",
        "benchmark-quality",
        "reproducibility",
        "governance"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"benchmark-quality-register\",\"input\":{}}",
        "GET /api/benchmark-quality"
      ],
      "inputModes": [],
      "outputModes": []
    },
    {
      "id": "article50-detect",
      "name": "Article 50 provenance detection (free)",
      "description": "Verify a C2PA-style signed manifest for AI-generated content (EU AI Act Article 50) at POST https://councilof.ai/api/detect. Deterministically checks the Ed25519-signed metadata layer and the IPTC/schema.org digitalSourceType; returns AI_MARKED / NOT_AI_MARKED / UNVERIFIABLE with a signed verdict receipt (in-toto/DSSE when a board key is bound). The imperceptible-watermark layer we cannot see is declared, never claimed. Free for all; unrestricted for authorities, media, fact-checkers, researchers and civil society. Not certification.",
      "tags": [
        "article-50",
        "provenance",
        "detection",
        "verification",
        "c2pa"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"article50-detect\",\"input\":{\"manifest\":{\"claim\":{}}}}",
        "POST /api/detect {\"manifest\":{...},\"asset_hash\":\"<optional-64-hex>\"}"
      ],
      "inputModes": [],
      "outputModes": []
    },
    {
      "id": "eu-ai-act-screen",
      "name": "EU AI Act screening helper (deterministic, text-only)",
      "description": "POST https://councilof.ai/api/assess with a system description. Keyword matches name the Annex III categories and Article 5 patterns a human should inspect; no model is consulted. It does not establish legal tier, applicability, exceptions or compliance, and an empty description is UNMEASURED, not a low-risk finding. When no signing key is provisioned the report says UNSIGNED out loud.",
      "tags": [
        "eu-ai-act",
        "screening",
        "deterministic"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"eu-ai-act-screen\",\"input\":{\"system\":\"<what the system does and for whom>\"}}",
        "POST /api/assess {\"system\": \"<what the system does and for whom>\"}"
      ],
      "inputModes": [],
      "outputModes": []
    },
    {
      "id": "x402-discovery",
      "name": "x402 discovery + free door",
      "description": "Agents discover paid artefact rails via GET https://councilof.ai/.well-known/x402.json (mode is reported from runtime env, Base eip155:8453, USDC; amounts from challenge only — no invent price). Catalog GET /api/x402. Free door GET /api/free-door amount 0 settles and charges nothing — proves the rail. Living board GET /api/gspc. Verification stays free at /gspc-verify. payTo is merchant receive, never the signer. Self-settle proves the rail; stranger revenue is separate (do not invent buyers). Coming—Paddle not live. No card-processor invent. Measurement, never certification. Signed offers and receipts are conditional: a 402 carries extensions['offer-receipt'].info.offers[] only when BOARD_SIGN_KEY_PKCS8_B64 is provisioned and an accepts[] entry can be committed; otherwise csoai.offer_receipt names the gap. A signed receipt appears in the X-PAYMENT-RESPONSE SettlementResponse only after facilitator-confirmed settlement when the facilitator names a payer and the board key is available; otherwise receiptGap states why no signed receipt was attached. Emitted signatures use format jws, alg EdDSA, kid did:web:csoai.org#board-attestation-1. Verify one without trusting us: POST it to /api/receipts/verify, or run scripts/verify_receipt.py against https://csoai.org/.well-known/did.json. Your own receipts: GET /api/receipts?payer=0x... (status UNRECORDED means no store is bound on that deployment, never that you did not pay). No eip712 is emitted — the edge has no secp256k1 signer.",
      "tags": [
        "x402",
        "discovery",
        "payments",
        "measurement"
      ],
      "examples": [
        "SendMessage with Part.data {\"skill\":\"x402-discovery\",\"input\":{}} — catalog only; it makes no payment",
        "GET https://councilof.ai/.well-known/x402.json",
        "GET https://councilof.ai/api/free-door",
        "GET https://councilof.ai/api/gspc",
        "GET https://councilof.ai/gspc-verify",
        "GET https://councilof.ai/api/free-door  # inspect csoai.offer_receipt; read extensions['offer-receipt'].info.offers[0].signature only when signed",
        "POST https://councilof.ai/api/receipts/verify -d '{\"receipt\":\"eyJ...\"}'",
        "GET https://councilof.ai/api/receipts?payer=0x4dB7AAFbe797a39Cd6Cc4E7aa64d970F7F6E02B7"
      ],
      "inputModes": [],
      "outputModes": []
    }
  ],
  "conformance": true,
  "conformance_errors": null,
  "homepage": null,
  "repository": null,
  "license": null,
  "pricing": null,
  "contact": null,
  "id": "48e5bba6-8848-4adc-8f92-b5fa2c0744e0"
}

Integrate this agent

curl -s https://a2aregistry.org/api/agents/48e5bba6-8848-4adc-8f92-b5fa2c0744e0

Test message

Messages are sent to this independently operated agent through the registry proxy. Do not include secrets or personal data.

Message exchangeConnecting
>