Témoin public

Documentation

Dater

POST /api/depots {"sha256": "<64 hex>", "libelle": "<texte>"}une empreinte calculée par vous ; le libellé reste dans le reçu
POST /api/depots {"url": "https://<adresse>"}le service lit lui-même le document en ligne et date ses octets
POST /api/depots {"type": "acte", "url": "https://<adresse>", "collectivite": "<INSEE | SIREN>", "nature": "deliberation | arrete | decision"}un acte de collectivité, lu à son adresse ; reçu version 2, ligne publique inchangée
201le reçu, son identifiant, la ligne publique
POST /api/flux {"url": "https://<flux RSS ou Atom>"}suivre un flux : chaque heure, chaque article nouveau ou modifié est lu et daté ; rend l’identifiant du flux et son jeton
GET /editeur/<id>le registre public d’un flux : chaque version datée, sans adresse ni titre ; avec #<jeton>, les adresses et les reçus
GET /api/flux/<id>le registre privé d’un flux, authorization: Bearer <jeton>
DELETE /api/flux/<id>cesser de suivre un flux, authorization: Bearer <jeton> ; les dates déjà enregistrées restent
42920 dépôts par jour et par adresse, 2 000 par jour, retry-after jusqu’à minuit UTC
409une même adresse en ligne lue une fois par jour
422lecture impossible : 20 Mo, 30 s, 5 redirections au plus, adresses publiques seulement

Lire

GET /depots/<jour>.jsonlles dépôts du jour, une ligne {"sha256","jour","place","recu"} par dépôt
GET /recu/<id>la page d’un reçu
GET /api/recus/<id>la ligne publique d’un reçu
GET /api/depots/<sha256>les dépôts d’une empreinte
GET /collectivite/<INSEE>les actes d’une commune lus sur son site officiel : date, nature, empreinte, reçu ; le SIREN y renvoie
GET /annuaire/communes/insee-<département>.jsonle nom de chaque commune, code INSEE ou SIREN vers [nom, INSEE, SIREN]
GET /annuaire/insee-<département>.jsonles sites officiels des communes, code INSEE ou SIREN vers [hôte, préfixe], d’après l’annuaire Service-Public
GET /api/bilandépôts et déposants distincts, jour par jour
GET /tours.jsonles tours du registre
GET /empreintes/<tour>.jsonle relevé d’un tour, avec .racine, .racine.ots, .racine.tsr
GET /empreintes/depots.jsonlles dépôts lus par l’entrepôt, dans l’ordre de leur inscription
GET /healthl’état du registre publié

Vérifier sans ce site

feuillesha256(cle + "\n" + sha256 + "\n" + jour + "\n")
arbreMerkle SHA-256 sur les octets des deux enfants ; un niveau impair double son dernier nœud
racinesha256("entrepot\n" + tour + "\n" + précédente + "\n" + arbre + "\n") ; le premier tour suit 64 zéros
depots:<n>la feuille des dépôts : sha256 des n premières lignes de depots.jsonl, chacune suivie de "\n"
reçuidentifiant : sha256 de sa forme canonique, clés triées, sans espace
Bitcoinots verify <tour>.racine.ots
scriptnode scripts/verifier.mjs <document | --chaine>