Record Sources

A record source is one entry of the calendar's source registry, with the endpoint it reads, its parser, its schedule and the branch it writes. The record started with the sources of branches 1 to 6. Branches 7 to 29 come in eight families, each switched on by a registry step of its own. This page lists every family with the credit line its publishers ask for, what we keep from them and how a reader checks the result without trusting us.

The Record Sources page of the explorer shows the same list with the state of each source on the calendar, and /v1/sources serves the sources in force with their attribution. Layouts and rules are under Branches 7 to 29 in SPEC.md.

Trust Classes

Every branch has a trust class. S means the source signs what we record, so a reader checks the signature with the key the registry snapshot pins. C means content-addressed, such as a git commit, an LFS hash or a Bitcoin transaction. P is a hash the publisher itself serves, which a reader rechecks for as long as the publisher keeps the object. O means the record is the operator's account of what a source said, which the source never signed.

An O record proves that calendar a committed those bytes by the anchor time, and nothing about the source. Calendar a is run by Classix, and it is the only operator today. Contracts that read records take a list of operators and a quorum, so a second operator plugs in the same way.

No record stores a raw response. Where a record carries a file hash, it is either the publisher's own hash (a Wikipedia revision sha1, a Wayback CDX digest, a Common Crawl ETag, a Zenodo MD5, OFAC's Digest, a git or LFS id) or our sha256 of a published file that others keep copies of, such as the EU, UK and UN sanctions lists.

Prices, Chains and Feeds

These are the six branches the record starts with. Records gives their layouts.

CreditSourcesBranchStep
Kraken, Coinbase Exchange, Swissquote, gold-api.comkraken, coinbase, swissquote, goldapi1D
Chainlink on Ethereumchainlink-ethereum1D
ECB Reference Ratesecb1D
The beacon's RPC quorumthe chain registry2D
Certificate Transparency logs of Google and Cloudflarect-heads3D
NIST Randomness Beaconnist-beacon4D
About 80 news outlets and Hacker Newshn-front and one id per feed5, 6D

Prices are O, with Chainlink answers rechecked on Ethereum by etchd records verify --rpc. Chain heads are C where the day's bundle holds the block header and O otherwise. CT heads and NIST pulses are S. Headlines and front pages are O.

The price sources are public, keyless market APIs, and we keep one number per pair per slot. Headlines keep capped metadata only, the title, link, date and guid of each item, and never a description, body, image or author. A publisher's takedown request stops the API serving that record's decoded fields (Takedown).

Randomness

drand rounds of the quicknet and evmnet chains each minute and of the default chain every 5 minutes go into branch 7. The New York State lottery draws go into branch 27, read once a day from the state's open data.

CreditSourcesBranchStep
drand, League of Entropydrand, drand-default7R1
New York State Gaming Commission, data.ny.govnylottery27R2

drand is S. etchd records verify --signatures checks the BLS12-381 signatures of quicknet and the default chain, and lists evmnet rounds, signed on BN254, as unchecked. Lottery draws are O.

drand is public infrastructure run by the League of Entropy, and its output is published for anyone to use. Draw results are facts, and data.ny.gov publishes them as open data for reuse.

Supply Chain and Internet Roots

Signed checkpoints of the Sigstore transparency logs and the Go checksum database go into branch 8, the heads of PyPI, npm, the crates.io index and the CVE list into branch 13, CVE and KEV events into branch 14, the IANA root zone into branch 15 and Tor consensuses into branch 16.

CreditSourcesBranchStep
Sigstore Rekorrekor-v1, rekor-v2-log2025-18R1
Go checksum databasego-sumdb8R1
PyPI, npm, the crates.io indexindex-heads13R1
CVE Program, cvelistV5cve-org-delta13, 14R1
CISA Known Exploited Vulnerabilitiescisa-kev14R1
IANA root zoneiana-root-zone15R1
The Tor Project, CollecTortor-collector, tor-certs16R1

Checkpoints are S, checked as Ed25519 or P-256 signed notes under the log keys the CLI build pins. The root zone is S through its DNSSEC signatures up to the pinned key-signing keys, and a Tor consensus is S when more than half of the nine directory authorities signed it. Index heads are C for git heads and O for serial numbers, and CVE events are C through the cvelistV5 commit in branch 13.

Log checkpoints, the root zone and Tor consensuses are published so that third parties copy and witness them. The CVE Program's terms grant a licence to copy and redistribute CVE records, and KEV is a US government work. We keep ids, counts, digests and timestamps. A Tor record holds no relay address.

Science

New and updated papers from arXiv, bioRxiv, medRxiv, Crossref and Zenodo go into branch 12, one record per work, version and event, with its title and checksums.

CreditSourcesBranchStep
arXiv metadata, CC0arxiv12R3
openRxivbiorxiv, medrxiv12R3
Crossref metadatacrossref-updates, crossref-preprints12R3
Crossref metadatacrossref-new12R4
Zenodo metadata, CC0zenodo12R3

Scholarly records are O, and P for the file MD5 sums Zenodo serves.

We keep titles and identifiers and never an abstract or a paper. arXiv and Zenodo publish their metadata under CC0, and Crossref treats bibliographic metadata as facts. Some titles name people, CVs and theses on Zenodo among them, and those go through the takedown route. crossref-new is the largest source of all, about 7 MB a day, and it waits for step R4.

Wikipedia

The state of 21 Wikipedia main pages goes into branch 17 every hour, and revisions, hidden revisions and protection changes of extended-confirmed English articles and of 40 contested topics tracked through Wikidata go into branch 18.

CreditSourcesBranchStep
Wikipedia, the free encyclopedia (CC BY-SA 4.0); ids, hashes and titles onlywiki-main-<db> for 21 editions, wiki-rc-enwiki, wiki-ecp-sweep, wikidata-list-b17, 18R2

Both branches are P through the revision sha1 that Wikipedia serves.

We store no Wikipedia text, only ids, hashes, sizes, page titles and log parameters. The client sends a contact User-Agent, honours maxlag and stays serial per wiki, as the Wikimedia API etiquette asks. A hidden revision is recorded by its id, size and the sha1 it had before it was hidden, never its content. Some of the 40 titles are politically sensitive where they apply, and publishing them carries the same risk as Wikipedia's own pages.

Archives

The tips of the four public OpenTimestamps calendars go into branch 19, Wayback captures of 22 URLs into branch 20, Common Crawl listings into branch 21 and Software Heritage visits of 15 origins into branch 22. Arweave joins the beacon as one more chain of branch 2.

CreditSourcesBranchStep
The four public OpenTimestamps calendarsots-tip-<cal>, ots-status-<cal>19R1
Arweave gatewaysarweave:7wIU in the beacon2R1
Internet Archive Wayback Machinewayback-<slug> for 22 URLs20R2
Common Crawlcc-collinfo, cc-listings, cc-news-current, cc-news-previous21R2
Software Heritageswh-<slug> for 15 origins22R2

OpenTimestamps tips are C, rechecked against their Bitcoin transaction by etchd records verify --evidence. Wayback captures are P through the CDX SHA-1, Common Crawl listings P through the S3 MD5 ETag, and Software Heritage visits C through the SWHID.

CDX rows, crawl listings and archive identifiers are factual metadata, and no page body or source file is read. Common Crawl's terms permit this use, and Software Heritage covers light API polling in its terms. No Arweave content is read, only gateway heads.

Markets and Physical

Daily index closes go into branch 1 as kind 5 official closes in points. Interest rates and yields go into branch 9 as figures, since they print negative and a price is above 0. Earthquakes from USGS and EMSC go into branch 10 and WHO disease outbreak news into branch 11.

CreditSourcesBranchStep
Cboe Global Markets, delayed quotescboe1R4
Nasdaqnasdaq1R4
STOXX Ltd.stoxx1R4
U.S. Department of the Treasuryustreasury9R2
European Central Bankecb-hourly9R2
Federal Reserve Bank of New Yorknyfed9R2
Bank of Englandboe9R2
Ministry of Finance, Japanmof9R2
U.S. Geological Surveyusgs, usgs-sig10R2
European-Mediterranean Seismological Centre (EMSC)emsc10R2
World Health Organizationwho-don, who-don-list11R2

Every branch of this family is O. No source signs anything.

Index levels are facts, but each index owner claims rights in its data, and Cboe's delayed-quote terms forbid redistribution without an agreement. Nasdaq answers only a browser User-Agent. We store one close per index per day as a number, never the provider's file, and the closes wait for step R4 and the owner's sign-off. Treasury and USGS data are US government works in the public domain, the ECB, the New York Fed, the Bank of England and Japan's MOF allow reuse with the source named, and SOFR's terms ask us to cite the New York Fed. We found no licence page for EMSC and credit it by name. WHO pages are CC BY-NC-SA 3.0 IGO, and we keep titles, ids, links and dates only.

The Figure Fixing

A figure is one published number for one series and period, such as SOFR for one day. Publishers revise numbers, so a series can have several records for one period. The calendar keeps the first value it committed for each series and period, for the period plus a year, and sets flag bit 2 on every later record whose value differs from it. etchd records verify refuses a day with two records of one series and period that both have bit 2 clear and different values.

Every record with bit 2 clear for a period therefore carries one value. The fixing of a series for a period is its earliest captured record with bit 2 clear, and a settlement contract refuses any record with bit 2 set, as the gold escrow refuses kind 5 and flag bit 3 of a price. The choice of record then cannot steer the contract.

The SOFR fixing of yesterday
curl -s "https://etchd.app/v1/figures/fixing?series=nyfed:SOFR&date=$(date -u -d yesterday +%F)"
etchd records proof --car a.car --series nyfed:SOFR --date "$(date -u -d yesterday +%F)"

Official Publications

The press feeds of four central banks go into branches 5 and 6. Official statistics go into branch 9 under the same fixing rule as the rates, release calendars into branch 23, sanctions lists and the Federal Register's signed PDF into branch 24, gazette and journal notices into branch 11, court decisions into branch 25 and Swiss federal votes into branch 26.

CreditSourcesBranchStep
Federal Reserve, ECB, Bank of England, Bank of Japanfed-press, ecb-press, boe-news, boj-whatsnew5, 6R3
U.S. Bureau of Labor Statisticsbls-latest, bls-labstat-cpi, bls-ics9, 23R2
Office for National Statistics, Open Government Licence v3.0ons-timeseries, ons-releases9, 23R2
Eurostatestat-figures, estat-updates9, 23R2
European Central Bankecb-policy9R2
Statistics Canada, Statistics Canada Open Licencestatcan-cubes23R2
U.S. Department of the Treasury, Office of Foreign Assets Controlofac-sdn, ofac-delta24R2
United Nations Security Councilun-consolidated24R2
European Commission, Financial Sanctions Databaseeu-fsf24R2
Foreign, Commonwealth and Development Office, Open Government Licence v3.0uk-fcdo24R2
U.S. Government Publishing Office, govinfous-fr-pdf24R2
The Gazette, Open Government Licence v3.0uk-gazette, uk-gazette-day11R2
Publications Office of the European Unioneu-oj11R2
Office of the Federal Registerus-fr11R2
Free Law Project, CourtListenercourtlistener25R2
European Court of Human Rights, HUDOCechr-hudoc25R2
The National Archives, Open Justice Licencetna-fcl, built and switched off25off
Swiss Federal Statistical Office (BFS), opendata.swissch-bfs26, 24R2

The Federal Register PDF is S through its CMS signature up to a pinned root, OFAC's lists are P through the Digest header, and the other files of branch 24 are O with a file hash anyone rechecks against the published file. Court decisions are P for TNA's uk:hash and O otherwise. Statistics, release events, notices and votes are O.

US federal works are in the public domain. ONS, the FCDO and The Gazette publish under the Open Government Licence v3.0, EU publications under the Commission's reuse decision (CC BY 4.0), and the others allow reuse with the source named. Gazette personal notices are kept out by an allow-list, and the parser never reads their names. ECHR case titles name applicants, as the court itself publishes them. Sanctions records carry hashes, dates and counts, and no names. TNA Find Case Law needs a free transactional licence for computational use, so tna-fcl is built and tested and stays switched off at every step until TNA grants it.

AI Provenance

Hugging Face org listings and the revisions of 40 tracked model repos go into branch 28. Model pages, deprecation tables, changelogs and SDK model lists of OpenAI, Anthropic, Google, Mistral and Meta, plus OpenRouter and models.dev, go into branch 29.

CreditSourcesBranchStep
Hugging Face Hub API; repo ids, commits, sizes and hashes onlyhf-org-<org> for 13 orgs, hf-repo28R2
OpenAI API docsopenai-models, openai-deprecations, openai-changelog29R3
Claude Platform docsanthropic-models, anthropic-deprecations, anthropic-release-notes29R3
Gemini API docsgemini-models, gemini-deprecations, gemini-changelog29R3
Mistral AI docsmistral-models, mistral-changelog29R3
Meta developer docsllama-com-models29R3
The SDK repositories on GitHubopenai-sdk, anthropic-sdk, meta-llama-models29R3
OpenRouteropenrouter29R3
models.dev (MIT)models-dev29R3
Google Cloud release notesvertex-release-notes29R3

Model weights are C through the git commit and the LFS hashes of each file, which etchd records verify --evidence rechecks for ungated repos. Catalog records are O, and C for SDK files read at a commit.

Repo ids, commits, file sizes and hashes are facts the public API serves without a key. We fetch no weights and no model cards, and a gated repo is read through its public revision endpoint only, so no licence is accepted or bypassed. Provider docs are copyrighted pages. We keep model ids, dates, statuses and context sizes, changelog titles capped at 200 code points, and no prose at all from Anthropic and Mistral. The OpenAI and Anthropic SDKs are Apache-2.0, and models.dev is MIT.

Activation

The parsers of every family ship in the release the record starts with, and each family enters later through a registry step written to KV with deploy.ts --kv-only --record-sources Rn --reseed-registry Rn. The calendar commits the new registry snapshot before its first capture, so every record names the snapshot it was captured under. A source whose entry carries a disabled reason is never scheduled at any step.

StepAdds
Dthe start of the record, branches 1 to 6
R1drand, signed checkpoints, index heads, CVE and KEV, the root zone, Tor, the OpenTimestamps calendars, and Arweave in the beacon
R2figures, quakes, notices, Wikipedia, Wayback, Common Crawl, Software Heritage, release calendars, official files, court decisions, Swiss votes, the New York lottery and Hugging Face
R3arXiv, openRxiv, the Crossref updates and preprints, Zenodo, the four central bank feeds and the model catalog
R4crossref-new and the index closes of Cboe, Nasdaq and STOXX

Takedown

A committed record cannot leave a pack without breaking its root. When a publisher asks, the operator calls POST /v1/admin/records/takedown, and the API then answers 410 for that record's decoded fields and the explorer hides it. The bytes, the packs, the proofs and the published bundles stay, since mirrors rebuild roots from them. Branches 5, 6, 11, 12, 17, 18, 25 and 29 carry publisher text or names of people, and the route works on every branch.