API d’horodatage — démarrage rapide

Un appel HTTP. Sans clé, sans compte, sans formulaire d’inscription. Votre fichier reste où il est — seul son SHA-256 voyage.

# l’heure universelle actuelle
curl https://beattime.live/api/now/

# horodater un fichier : calculez le hachage en local, n’envoyez que lui
sha256sum contract.pdf
curl -X POST https://beattime.live/api/proof/stamp \
     -H 'Content-Type: application/json' \
     -d '{"digest":"<64 hex characters>"}'

Voilà toute l’intégration. Rien à enregistrer, aucun jeton à faire tourner, aucun quota à négocier — le service est gratuit et le restera.

Ce que vous recevez

Un horodatage renvoie l’enregistrement tel qu’il est à cet instant. Plus tard, le même hachage en renvoie davantage : une signature, puis des ancrages externes.

digest
Le SHA-256 que vous avez envoyé, en minuscules. C’est la seule chose que nous voyons de votre fichier.
beat
Le moment en temps .beat — une lecture universelle, sans fuseau horaire.
utc
Le même instant en UTC, à la microseconde près.
seq
Position dans le journal en ajout seul. Les numéros ne se répètent jamais et ne bougent pas.
week
La semaine ISO dont l’arbre de Merkle contient cet horodatage.
chain_hash
Relie cette entrée à la précédente : supprimer une entrée briserait visiblement la chaîne.
week_root
La racine de Merkle de la semaine. Tant que la semaine n’est pas close, elle est provisoire et bouge encore.
inclusion_proof
Les hachages frères avec leur côté (L ou R). Ils vous permettent de recalculer la racine vous-même — c’est précisément ce qui rend la preuve indépendante de nous.
root_signature
Signature Ed25519 sur la racine hebdomadaire figée. Elle apparaît dès que la semaine est scellée.
ots_status
État de l’ancrage Bitcoin : pending tant qu’il attend confirmation, puis bitcoin avec la hauteur de bloc.
anchors
Références bancaires auxquelles la racine hebdomadaire a été adossée — un ancrage qui ne dépend d’aucune blockchain.

« Semaine encore ouverte » est la réponse normale, pas une erreur.

Un horodatage récent n’a encore ni signature ni ancrage, car la semaine à laquelle il appartient n’est pas scellée. Cela se produit à la fin de la semaine ISO ; l’attestation Bitcoin suit environ un jour plus tard. Redemandez plus tard avec le même hachage : les champs manquants seront là. L’heure enregistrée, elle, ne change pas.

Horodater deux fois le même fichier

Le premier horodatage l’emporte, toujours. Renvoyez le même hachage et vous récupérez l’enregistrement d’origine — même heure, même numéro de séquence — avec le statut 200 au lieu de 201. Les reprises sont donc sûres : une réponse perdue ou un client nerveux ne peuvent pas décaler votre horodatage.

201 Created   → horodaté pour la première fois
200 OK        → déjà horodaté ; l’horodatage d’origine est renvoyé
400           → le hachage ne fait pas 64 caractères hexadécimaux
429           → limite atteinte ; patientez puis réessayez

Limites et CORS

Les limites s’appliquent par adresse IP et servent à empêcher qu’un client n’évince les autres. Pour tout ce que fait une intégration normale, elles sont volontairement larges.

Point de terminaisonLimite
POST /api/proof/stamp20 / min
GET /api/proof/verify120 / min
GET /api/proof/cert/<digest>10 / min
le reste (heure, conversion, synchronisation)300 / min

Chaque point de terminaison répond avec Access-Control-Allow-Origin: * : vous pouvez donc l’appeler directement depuis le navigateur. Les requêtes via Tor bénéficient de limites plus élevées, car un nœud de sortie porte le trafic de nombreuses personnes.

Clients prêts à l’emploi

Fichiers uniques, sans dépendances, Apache-2.0 : Python, PHP, JavaScript, C# et C++17. Copiez-en un dans votre projet ou lisez la référence complète.

Obtenir un client   Référence OpenAPI

Ce que ce n’est pas

À savoir avant de bâtir dessus — nous préférons le dire ici plutôt que vous le découvriez en revue :

Les algorithmes sont consignés dans la spécification, et le client de bureau qui recalcule tout cela est open source.

← Horodater un fichier dans le navigateur