---
title: "For scorers and marketplaces"
description: "Two seats: the record, and the reproducible dispute artifact. How to pull, verify, cite, reproduce and re-observe this store's evidence without inheriting an opinion. Names seats, not occupants."
canonical: "https://scvd.store/scorers"
url: "https://scvd.store/scorers"
---

# For scorers and marketplaces

Two seats: the record, and the reproducible dispute artifact. How to pull, verify, cite, reproduce and re-observe this store's evidence without inheriting an opinion. Names seats, not occupants.

## Title

For scorers and marketplaces

## What this is

This store occupies two seats: the record, which is what was observed, signed and dated; and the reproducible dispute artifact, which is a check anyone can run again. It does not score, rank, certify, or adjudicate. Never a ranking, and never a verdict without its derivation and denominator beside it.

## Proposition

The store is the record and the reproducible dispute artifact. It publishes observations and the checks that reproduce them, and leaves interpretation to others.

## Price

Nothing here costs money: the corpus, the citations, the verify URL and the look with its reproduce block are free to read and to call, and the paid dispute artifacts are priced on the shelf where they are sold.

## Free first

The corpus index and the look are free first; a paid artifact is only ever the signed, dated version of what the free door already showed.

## Opened

2026-09-03

## How to call

### This page

GET https://scvd.store/scorers with Accept: application/json for this twin, text/html for the page. No account, no key.

### Pull

GET https://scvd.store/corpus.json, then the snapshots and host rows it lists.

### Reproduce

POST https://scvd.store/api/look/v1 with {"url": "...", "since": "2026-W34"}; the class and the citation ride the reproduce block.

### Verify

GET https://scvd.store/api/verify/{id}, or npx x402-verify against any artifact.

### Replay

GET https://scvd.store/api/replay/{cert_id} for one of the store's own paid calls, assembled as an integration test: the signed bytes and their hash, the accepted x402 terms with a JWS offer over them, the settlement transaction and where to read it, and the exact refusal a wrong-scope re-presentation gets. It names what the store does not retain, so the gaps are counted against us in the same document.

## Errors

### This page

None: a GET here always answers 200, as HTML or JSON by Accept.

### The doors it names

Each door names its own refusals in its own JSON; the look refuses a since that is not a signed week with code bad_since, and a URL it will not probe with the preflight's own refusal text.

## Security

### What this does in your name

Nothing. A GET here reads a page; no probe is made, nothing is signed, nothing is fetched from anyone.

### What it stores about you

Nothing about you. The porch counts a visit by surface, never by caller.

### What we never do

No account, cookie, caller identifier or IP-based budget. Budgets bound our cost, not caller rank. Requests are never sold, shared or published. The weekly census reads public discovery feeds, never these requests.

### Standards

Disclosure is private-first and symmetric: notify the operator before publication, including our own defects. Corrections are dated and public. Signed artifacts verify offline against our published key.

### Reporting

https://scvd.store/.well-known/security.txt for a vulnerability, https://scvd.store/corrections for something we got wrong.

## Seats

### Dated

2026-09-03

### Sentence

The store is the record and the reproducible dispute artifact. It publishes observations and the checks that reproduce them, and leaves interpretation to others.

## Summary

This store occupies two seats: the record, which is what was observed, signed and dated; and the reproducible dispute artifact, which is a check anyone can run again. It does not score, rank, certify, or adjudicate. Never a ranking, and never a verdict without its derivation and denominator beside it.

## Start here

### Shell

- curl -s https://scvd.store/corpus.json | jq '.distribution'
- curl -s https://scvd.store/corpus/host/example.com.json | jq '.cite'
- curl -s -X POST https://scvd.store/api/look/v1 -H 'content-type: application/json' -d '{"url":"https://example.com/api/thing","since":"2026-W34"}' | jq '.reproduce'

### CLI

- npx scvd corpus --since 2026-W34
- npx scvd cite example.com
- npx scvd reproduce https://example.com/api/thing --since 2026-W34

### MCP

- read_store_guide, then look_at_door {"url": "https://example.com/api/thing", "since": "2026-W34"}
- the corpus is plain GET: https://scvd.store/corpus.json, https://scvd.store/corpus/host/{host}.json
- verify anything cited: https://scvd.store/api/verify/{id}, or npx x402-verify

### Note

Three grips on the same doors. No account, no key, no wallet; nothing here can spend.

## Pull

### The corpus index

#### URL

<https://scvd.store/corpus.json>

#### What

One snapshot per weekly round of the public x402 discovery list, frozen and signed; the index carries every snapshot and the chain check. CC BY 4.0, with a DOI.

#### Check

The chain check in the index fails if any snapshot's bytes change; the corpus is appended, never edited.

### One snapshot

- **URL** — <https://scvd.store/corpus/{n}.json>
- **What** — The exact bytes of one round: every host listed, every host probed, every gap by reason.
- **Check** — Its digest is the one the index and the next snapshot commit to.

### One host, every round

#### URL

<https://scvd.store/corpus/host/{host}.json>

#### What

Every signed round that met a host: probed or gapped, the gap's reason, verdict changes, and the tier with its fraction and its rows.

#### Check

Rounds are counted out of rounds since first sighting; a gap is printed as a gap, never as a zero.

### One round

- **URL** — <https://scvd.store/corpus/round/{week}>
- **What** — A round as a page, each host with its verdict and failed checks by name.
- **Check** — Derived from the snapshot at read; nothing is stored beside the signed bytes.

### What moved since a week

- **URL** — <https://scvd.store/corpus/diff.json?since={week}>
- **What** — Hosts that appeared, disappeared, or changed verdict against a baseline week you name.
- **Check** — Always against a named baseline; without one it refuses and lists the weeks it knows.

### Every host's tier, alphabetical

#### URL

<https://scvd.store/corpus/tiers.json>

#### What

A derived verdict per host by the rule typed once at /criteria, each with its fraction and its rows.

#### Check

Alphabetical by host; nothing orders one host against another, and a test holds it.

## Verify

### Retained Spot Check evidence

#### URL

<https://scvd.store/api/spot-checks/{cert_id}>

#### What

The signed original from a Spot Check, Change Check or Batch Spot Check purchase, with an optional note for the buyer's human. Anyone with the certificate ID can read it.

#### Check

The original must match its signature, evidence hash and certificate binding. A missing original stays missing; today's books cannot replace it.

### Anything the store signed

#### URL

<https://scvd.store/api/verify/{id}>

#### What

The exact bytes a signature covers, so a stranger can check it offline with their own library.

#### Check

Free whether or not anyone bought the thing; a cited verify URL must resolve and validate, or the citation is wrong.

### The signing key, now and before

#### URL

<https://scvd.store/.well-known/did.json>

#### What

The key in service today under verificationMethod, and every retired key with the dates it served and its handover, signed by the outgoing key.

#### Check

A retired key is never listed as authorised now; what it signed while in service still verifies against its dates.

### The anchored key history

#### URL

<https://scvd.store/.well-known/anchor-log.json>

#### What

An append-only hash chain over the key state, each entry timestamped through OpenTimestamps and Bitcoin-backed once confirmed.

#### Check

Recompute the chain from the snapshots; it proves when, never who should have.

### A verifier that is not ours to run

#### URL

<https://scvd.store/developers>

#### What

x402-verify on npm: zero dependencies, checks any issuer's signed offers and receipts, resolves did:web, reads an anchor log when one is published.

#### Check

Works on this store's artifacts and on its competitors' the same way; nothing about this store is privileged in it.

## Cite

### How

Cite a row by its entry URL and digest, never by restating it. The digest is the one the corpus index commits to; if the row's bytes ever changed, the chain check at /corpus.json would fail, which is what makes the citation checkable. Every row surface prints the citation for you: `cite`, the one line to quote, and `cite_json`, the shape a machine writes, on /corpus/host/{host}.json, /corpus/{n}.json, /corpus/latest.json and the round; the look's reproduce block cites the row it compared with. Do not restate the observation; link it. A restated row is a claim of yours, and the reader cannot check it.

### Attribution

CC BY 4.0: attribution is the row's URL. Nothing more is asked.

### Check

Every verify URL and corpus URL this page names is fetched by the suite and must answer; a citation that does not resolve is a broken citation, not a broken corpus.

## Reproduce

### Reproduce, as one call

#### URL

<https://scvd.store/api/look/v1>

#### What

POST {"url": "...", "since": "2026-W34"}: the live probe set against that week's signed row (or the last probed row without since), classed same | moved | instrument_moved | not_comparable | no_such_round by the rule typed once at /criteria#result-class, both sides printed, the failed checks added and cleared named, the row cited by entry URL and digest.

#### Check

The class is a pure function of the two probes and the battery; the spec fixes a door that moved, a battery that moved, and one that did neither.

### The same probe, now

#### URL

<https://scvd.store/api/preflight/v1>

#### What

POST {"url": "..."}: the published battery the weekly round runs, every check by name, free. Compare the class of result — verdict and failed checks — with the signed row.

#### Check

The battery is versioned and every step in the checklist is published as a metric change at /corpus/battery-delta.json, so a mismatch names whether the door or the instrument moved.

### The live probe beside the record

#### URL

<https://scvd.store/api/look/v1>

#### What

POST {"url": "..."}: one live probe folded with everything the chain holds about that host, including whether the door answers now the way the last signed round saw it.

#### Check

Two kinds of fact with their denominators; no threshold is drawn.

## Re observe

### How

If a door behaves differently from a signed row, run a fresh observation and keep both. The difference is time, not error: each row is one dated moment, and the cadence between rounds is weekly.

### Ours

When the store itself was wrong, the correction is appended at /corrections beside the row, and the row keeps its bytes.

### Surfaces

#### What this store got wrong

##### URL

<https://scvd.store/corrections>

##### What

Every claim the store published and later found false, dated, with what changed. Corrections are appended; the row they correct keeps its bytes.

##### Check

A correction never overwrites; the chain check would fail if one did.

#### The rule the tiers come from

- **URL** — <https://scvd.store/criteria>
- **What** — The tier rule typed once, the battery change notes, and the doctrine with its dates.
- **Check** — Every rendering of a tier prints the fraction it came from and links the rows.

## Enables

- A scorer maps observations to scores by a rule of its own, and cites the rows it read.
- A marketplace gates a listing on a reproducible check — the preflight, the passport tier with its fraction — rather than on a claim.
- A marketplace that would rather sell the instruments than gate on them buys the same shelf on account at /trade: its customer pays it, it sends one signed webhook, the store delivers and bills a statement.
- An operator attaches a statement to the record — the operator's statement, the case file — without anything overwriting the observation it answers.

## Resell on account

<https://scvd.store/trade>

## Misuse

If you publish a score, ranking, or certification derived from this corpus, you are responsible for the interpretation. This store does not endorse derived conclusions.

## Scoring this store

### What

Client-written reputation for this store, in the ERC-8004 Reputation Registry on Base. Written by buyers from their own addresses; unwritable by us.

### Reputation registry

0x8004BAa17C55a88189AE136b182e5fdA19dE9b63

### Agent ID

86957

### Agent registry

eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432

### Chain

eip155:8453

### Read it

#### Rpc

<https://mainnet.base.org>

#### Method

eth_call

#### To

0x8004BAa17C55a88189AE136b182e5fdA19dE9b63

#### Functions

##### Clients

getClients(uint256 agentId) — every address that has left feedback

##### Summary

getSummary(uint256 agentId, address[] clientAddresses, string tag1, string tag2) — aggregate over the clients you name. It requires an explicit client list and refuses an empty one, which is the registry declining to compute a number over a denominator you did not choose.

##### All

readAllFeedback(uint256 agentId, address[] clientAddresses, string tag1, string tag2, bool includeRevoked)

#### Note

No key, no account, and no cooperation from this store. Start with getClients — it returns the addresses that have written, which is also the denominator any summary needs.

### Write it

#### Call

giveFeedback(uint256 agentId, int128 value, uint8 valueDecimals, string tag1, string tag2, string endpoint, string feedbackURI, bytes32 feedbackHash)

#### Suggested

##### Tag1

starred

##### Scale

0-100, with valueDecimals 0

##### Note

Suggested so rows stay comparable, never required. The registry accepts any tag and any scale; a client who wants to record uptime or response time instead should use the ERC's own table rather than this line.

#### Who

Any address that is not this agent's owner or operator. A buyer should use the address they paid from, or the wallet named in their own agent's on-chain agentWallet, so their row can be tied to a settlement.

#### Proof of payment

The ERC's off-chain file carries a `proofOfPayment` block — fromAddress, toAddress, chainId, txHash. A purchase response from this store hands you that block pre-filled; see the feedback_invite field on any fulfilment.

### Limit

This store cannot write, edit, delete or reorder any of it — the contract forbids the agent owner from submitting, and we own this agent. We also do not compute a score from it, publish one, or filter the rows we would rather not have: where the store shows this feedback at all, it shows every client the registry returns, including the ones against us. A registry row is one client's opinion with a payment behind it, which is more than a testimonial and less than an audit.

### We publish no score

This store will not compute or display a rating from these rows, about itself or anybody else. Never a ranking, and never a verdict without its derivation and denominator beside it — that rule does not get an exception when the number would be flattering.

### For scorers

<https://scvd.store/scorers>

## Named integrations

### Seats not occupants

This page names seats, not occupants.

### As of

2026-10-19

### Systems

none

### None today

No system is listed today.

### How a system gets listed

Five facts, none a judgment: a public page of theirs, reachable by a plain unauthenticated GET; citing a specific row — a verify URL (https://scvd.store/api/verify/{id}), a corpus entry or host URL (https://scvd.store/corpus/...), or the cite shape — not merely a link to the store's front door; live when the entry is written and readable by the watch; not this store, a mirror of its text, or a page it operates; entered in src/store/citing-systems.json as name, citing URL and the date first seen, nothing else. Not required: permission, reciprocity, a partnership, any view on their quality, or payment. Listing is not endorsement in either direction, and the list is alphabetical by name. Ruled 2026-09-04.

### Check

scripts/citations-check.mjs fetches every listed citing URL, looks for a verify or corpus URL of this store on it, and fails when the citation is gone. The page renders the same file the script reads.

## License

<https://creativecommons.org/licenses/by/4.0/>

## Compact index

<https://scvd.store/corpus/index.json>

## The record

<https://scvd.store/corpus.json>

## The dispute artifacts

- <https://scvd.store/menu/the_case_file>
- <https://scvd.store/menu/launch_check>
- <https://scvd.store/menu/settlement_attestation>
- <https://scvd.store/api/conformance/v1>
