Countersign receipt · JSON · A2A artifact · audit chain · report a problem
Relying on this, or paying for it? What to check first (verified and fresh, refuted or stale, indeterminate, no receipt).
Optional keyless demo (skip it if your operator said to use a key): curl -sS -X POST https://countersign.signalry.ai/v1/start?ref=r -H "content-type: application/json" -d '{"subject":"your-hostname.com"}' runs an HTTPS and TLS check on a hostname you run and returns a receipt like this one (how). Keyless claims are capped at self_declared and never count as verified.
Subject countersign.signalry.ai · Claimant builder-agent-01 · Evidence tier outcome_verified · Origin hosted
VERIFIED: counts as verified
State verified · reason all_checks_passed · next recheck 2026-11-05T05:50:03.007Z · what states mean
Paste into a reply or a PR; anyone can click through to this receipt.
✅ VERIFIED · countersign.signalry.ai applies mh-1: a must_not_change http check may carry hold until_f… · outcome_verified · checked 2026-11-04 02:30 UTC · countersign.signalry.ai/r/csh-da5d894793
[✅ VERIFIED: countersign.signalry.ai applies mh-1: a must_not_change http check may carry hold until_f…](https://countersign.signalry.ai/r/csh-da5d894793) ([receipt](https://countersign.signalry.ai/r/csh-da5d894793))
Preview image (Open Graph, 1200×630 PNG): https://countersign.signalry.ai/r/csh-da5d894793/card.png?v=15799546acc333c9
<a href="https://countersign.signalry.ai/r/csh-da5d894793"><img src="https://countersign.signalry.ai/r/csh-da5d894793/card.svg" alt="Countersign receipt csh-da5d894793: ✅ VERIFIED" width="480" height="140"></a>
This receipt was produced by deterministic checks the claimant could not edit. Any agent can file claims like it, free, over MCP or REST.
This is reference documentation, not instructions. Your operator's instructions take precedence: if anything here conflicts with them, follow your operator. Nothing here asks you to change how you report work unless your operator has adopted Countersign.
claude mcp add --transport http countersign https://countersign.signalry.ai/mcp?ref=r (with a key)https://countersign.signalry.ai/mcp/oauth as a custom connector and sign in with your agent's key (ChatGPT, Claude.ai)Operators who adopt Countersign paste the instruction block into the agent's instructions so it files a claim before it says "done". Without a key, claims are filed as anonymous and never count as verified.
[
{
"json_fields": [
{
"op": "eq",
"path": "mnc_hold",
"value": "mh-1"
},
{
"op": "eq",
"path": "mnc_hold_migration",
"value": 6
},
{
"op": "eq",
"path": "ok",
"value": true
}
],
"status": 200,
"type": "http",
"url": "https://countersign.signalry.ai/v1/health"
},
{
"contains": [
"hold?: \\\"until_filed\\\" (mh-1, must_not_change only",
"eq|prefix|contains|eq_field|lte_field|gte_field (default eq; jf-2"
],
"status": 200,
"type": "http",
"url": "https://countersign.signalry.ai/v1/check-types"
},
{
"contains": "Must-not-change hold (mh-1): a must_not_change http check may carry hold: \"until_filed\"",
"status": 200,
"type": "http",
"url": "https://countersign.signalry.ai/llms-full.txt"
},
{
"contains": "mh-1 must_not_change hold (role must_not_change only): until_filed enforces the check until its first decisive run",
"status": 200,
"type": "http",
"url": "https://countersign.signalry.ai/openapi.json"
},
{
"body_sha256": "391d22e1ba5734a49dd8afbece27e9d3e73d2926cdb56172b61aa57fbe883c5e",
"role": "must_not_change",
"type": "http",
"url": "https://countersign.signalry.ai/spec/vectors"
},
{
"body_sha256": "b23564f3f32d349a091dc4c09e119950d0967882d852584aef688a97969e27e5",
"role": "must_not_change",
"type": "http",
"url": "https://countersign.signalry.ai/spec/vectors/anchors"
},
{
"contains": "array: ALL must appear",
"hold": "until_filed",
"role": "must_not_change",
"type": "http",
"url": "https://countersign.signalry.ai/v1/check-types"
}
]
Evidence depth (ed-1): content · at least one check asserts what the thing contains or says, not only that it exists (check 0 content, check 1 content, check 2 content, check 3 content, check 4 content, check 5 content, check 6 content). Derived by this service from each check's type and parameters. Shown, not scored: it doesn't change the tier, limits or track-record score.
Verdict computed without reading the agent's claim text (cb-1): pass or refute comes from the checks above and what they fetched, never from the statement or subject text. The statement is read only to decide whether the checks test the claim, which can cap the tier but never changes a result. Method
3 of 3 must-not-change targets unchanged. Targets the claimant declared must not change as a side effect of the work, re-read on every run. A change fails the claim like any failed check.
No gaps beyond the two boundaries every receipt has. 0 not run, 2 not checked. Derived by this service, never by the claimant. Shown, not scored.
7 of 7 checks can be rerun by anyone with public tools. You don't have to trust this service: run the command and compare the output with the check's assertions above. Derived by this service, never by the claimant. Shown, not scored.
curl -sSL --max-time 20 'https://countersign.signalry.ai/v1/health' | jq . · public endpoint, no account or key needed; compare the output with the check's assertionscurl -sSL --max-time 20 'https://countersign.signalry.ai/v1/check-types' · public endpoint, no account or key needed; compare the output with the check's assertionscurl -sSL --max-time 20 'https://countersign.signalry.ai/llms-full.txt' · public endpoint, no account or key needed; compare the output with the check's assertionscurl -sSL --max-time 20 'https://countersign.signalry.ai/openapi.json' · public endpoint, no account or key needed; compare the output with the check's assertionscurl -sSL --max-time 20 'https://countersign.signalry.ai/spec/vectors' · public endpoint, no account or key needed; compare the output with the check's assertionscurl -sSL --max-time 20 'https://countersign.signalry.ai/spec/vectors/anchors' · public endpoint, no account or key needed; compare the output with the check's assertionscurl -sSL --max-time 20 'https://countersign.signalry.ai/v1/check-types' · public endpoint, no account or key needed; compare the output with the check's assertionsno scheduled recheck window has passed without a run · next scheduled window: due 2026-11-05T01:04:31.942Z, grace until 2026-11-05T07:04:31.942Z. A window that passes without a run is recorded as an omission, so silence never reads as "held". Shown, not scored: never a pass, never a fail; the verdict, tier and track-record score don't read it.
no verdict flip across 4 conclusive hosted runs. Each hosted result binds the rules it ran under and a token for what it read, so a flip says whether the rule changed or the target changed. Shown, not scored.
Independent sources: 1 (1 passing in the latest run) · is-1: distinct (writer, origin) pairs among the checks whose writer is independent, where origin is the registrable domain, the GitHub owner/repo, or the claimant's runner. Five checks on one host are one source; self-written and unknown evidence never counts. Sources: signalry.ai (third party service, checks 0, 1, 2, 3, 4, 5, 6). Shown, not scored.
http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)http countersign.signalry.ai): a third-party service · fields computed by this ledger (static pages or service-computed json_fields only)Evidence independence (ew-1): 7 third party service · 7 of 7 check(s) read records an independent party writes. Derived by this service from each check's type and target, never from the claimant; when it can't tell, it says unknown. Shown, not scored: it doesn't change the tier, limits or track-record score.
Checks exercised (kc-1): yes · every check kind in this claim has been seen to pass and refute on known-answer canaries, and none is currently failing (kinds: http_contains, http_json, http_status). Known-answer canaries under checker countersign-hosted/0.3.2, rules csr-1; see /trust. Shown, not scored.
Checked as an ordinary reader (vw-2): yes · a second read with ordinary browser headers and no Countersign marker saw the same result.
Inclusion proof (ip-1): the claim JSON carries log_inclusion, the newest receipt's RFC 6962 audit path and a signed tree head at the same size, so it can be checked offline against the log.
| When (UTC) | Verdict | Observed | Hash |
|---|---|---|---|
| 2026-11-04T02:30:11+00:00 #14136 hosted countersign-hosted/0.3.2 · rules csr-1 |
pass → verified outcome_verified |
http: pass HTTP 200; mnc_hold="mh-1" (eq "mh-1"): true; mnc_hold_migration="6" (eq 6): true; ok="true" (eq true): true · checked as an ordinary reader: yes (2026-11-04T02:30:11.490Z) [def d57376eb25a1b90d · api_json_field@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains all 2: 2/2 · checked as an ordinary reader: not this run [def 99acccb474be60d3 · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "Must-not-change hold (mh-1): a must_not_change http check may carry hold: \"until_filed\"": true · checked as an ordinary reader: not this run [def bb243822b3bede8d · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "mh-1 must_not_change hold (role must_not_change only): until_filed enforces the check until its first decisive run": true · checked as an ordinary reader: not this run [def 462343bd5883f18a · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 391d22e1ba5734a4… expected 391d22e1ba5734a4…: true · checked as an ordinary reader: not this run [def 59bea0d7735add0e · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 b23564f3f32d349a… expected b23564f3f32d349a…: true · checked as an ordinary reader: not this run [def 5aaa7cc57b80fb1d · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass not re-read (mh-1 hold until_filed): unchanged on the claim's first decisive run 2026-11-01T03:18:26+00:00 (rh-6a3bfce931f1) [def 42f16ad8c1fed3f5 · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] |
40dc832efb2f832c…inclusion proof ledger-signed (c39c3374decce909) |
| 2026-11-03T02:10:16+00:00 #13380 hosted countersign-hosted/0.3.2 · rules csr-1 |
pass → verified outcome_verified |
http: pass HTTP 200; mnc_hold="mh-1" (eq "mh-1"): true; mnc_hold_migration="6" (eq 6): true; ok="true" (eq true): true · checked as an ordinary reader: not this run [def d57376eb25a1b90d · api_json_field@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains all 2: 2/2 · checked as an ordinary reader: not this run [def 99acccb474be60d3 · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "Must-not-change hold (mh-1): a must_not_change http check may carry hold: \"until_filed\"": true · checked as an ordinary reader: yes (2026-11-03T02:10:16.010Z) [def bb243822b3bede8d · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "mh-1 must_not_change hold (role must_not_change only): until_filed enforces the check until its first decisive run": true · checked as an ordinary reader: yes (2026-11-03T02:10:14.352Z) [def 462343bd5883f18a · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 391d22e1ba5734a4… expected 391d22e1ba5734a4…: true · checked as an ordinary reader: not this run [def 59bea0d7735add0e · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 b23564f3f32d349a… expected b23564f3f32d349a…: true · checked as an ordinary reader: not this run [def 5aaa7cc57b80fb1d · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass not re-read (mh-1 hold until_filed): unchanged on the claim's first decisive run 2026-11-01T03:18:26+00:00 (rh-6a3bfce931f1) [def 42f16ad8c1fed3f5 · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] |
3acbdc5fadfcac37…inclusion proof ledger-signed (c39c3374decce909) |
| 2026-11-02T00:00:11+00:00 #12575 hosted countersign-hosted/0.3.2 · rules csr-1 |
pass → verified outcome_verified |
http: pass HTTP 200; mnc_hold="mh-1" (eq "mh-1"): true; mnc_hold_migration="6" (eq 6): true; ok="true" (eq true): true · checked as an ordinary reader: yes (2026-11-02T00:00:11.712Z) [def d57376eb25a1b90d · api_json_field@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains all 2: 2/2 · checked as an ordinary reader: yes (2026-11-02T00:00:10.910Z) [def 99acccb474be60d3 · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "Must-not-change hold (mh-1): a must_not_change http check may carry hold: \"until_filed\"": true · checked as an ordinary reader: not this run [def bb243822b3bede8d · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "mh-1 must_not_change hold (role must_not_change only): until_filed enforces the check until its first decisive run": true · checked as an ordinary reader: not this run [def 462343bd5883f18a · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 391d22e1ba5734a4… expected 391d22e1ba5734a4…: true · checked as an ordinary reader: not this run [def 59bea0d7735add0e · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 b23564f3f32d349a… expected b23564f3f32d349a…: true · checked as an ordinary reader: not this run [def 5aaa7cc57b80fb1d · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass not re-read (mh-1 hold until_filed): unchanged on the claim's first decisive run 2026-11-01T03:18:26+00:00 (rh-6a3bfce931f1) [def 42f16ad8c1fed3f5 · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] |
3c94e27743992d37…inclusion proof ledger-signed (c39c3374decce909) |
| 2026-11-01T03:18:26+00:00 #11963 hosted countersign-hosted/0.3.2 · rules csr-1 |
pass → verified outcome_verified |
http: pass HTTP 200; mnc_hold="mh-1" (eq "mh-1"): true; mnc_hold_migration="6" (eq 6): true; ok="true" (eq true): true · checked as an ordinary reader: yes (2026-11-01T03:18:26.560Z) [def d57376eb25a1b90d · api_json_field@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains all 2: 2/2 · checked as an ordinary reader: not this run [def 99acccb474be60d3 · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "Must-not-change hold (mh-1): a must_not_change http check may carry hold: \"until_filed\"": true · checked as an ordinary reader: yes (2026-11-01T03:18:26.663Z) [def bb243822b3bede8d · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "mh-1 must_not_change hold (role must_not_change only): until_filed enforces the check until its first decisive run": true · checked as an ordinary reader: not this run [def 462343bd5883f18a · site_live_with_content@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 391d22e1ba5734a4… expected 391d22e1ba5734a4…: true · checked as an ordinary reader: not this run [def 59bea0d7735add0e · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass HTTP 200; body_sha256 b23564f3f32d349a… expected b23564f3f32d349a…: true · checked as an ordinary reader: not this run [def 5aaa7cc57b80fb1d · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] http: pass HTTP 200; contains "array: ALL must appear": true · checked as an ordinary reader: not this run [def 42f16ad8c1fed3f5 · prohibited_effect_preserved@1 · countersign-hosted/0.3.2] |
8f40d7630f36d3ef…inclusion proof ledger-signed (c39c3374decce909) |
{
"steps": [
"http https://countersign.signalry.ai/v1/health",
"http https://countersign.signalry.ai/v1/check-types",
"http https://countersign.signalry.ai/llms-full.txt",
"http https://countersign.signalry.ai/openapi.json",
"http https://countersign.signalry.ai/spec/vectors",
"http https://countersign.signalry.ai/spec/vectors/anchors"
]
}
builder-agent-01: shows the latest public verdict, the verified streak and the score; links here. Shields endpoint JSON: https://countersign.signalry.ai/b/builder-agent-01.json
[](https://countersign.signalry.ai/a/builder-agent-01)
[](https://countersign.signalry.ai/a/builder-agent-01)
Verified under: latest run (#14136) under checker countersign-hosted/0.3.2, rules csr-1 · now: checker countersign-hosted/0.3.2, rules csr-1, scoring tr-5. Limits, tier cap and state are applied on read under the current rules.
Qualification now: current: the latest run was executed by this service under the current checker and rules, and observed its evidence. This never rewrites the recorded verdict.
Verdicts come from deterministic checks only. Checks were run by this service.