Zeitstempel-API — Schnellstart

Ein HTTP-Aufruf. Kein Schlüssel, kein Konto, kein Anmeldeformular. Deine Datei bleibt, wo sie ist — unterwegs ist nur ihr SHA-256.

# die aktuelle universelle Zeit
curl https://beattime.live/api/now/

# eine Datei stempeln: lokal hashen, nur den Hash senden
sha256sum contract.pdf
curl -X POST https://beattime.live/api/proof/stamp \
     -H 'Content-Type: application/json' \
     -d '{"digest":"<64 hex characters>"}'

Das ist die ganze Integration. Es gibt nichts zu registrieren, kein Token zu rotieren und kein Kontingent zu verhandeln — der Dienst ist kostenlos und bleibt es.

Was zurückkommt

Ein Stempel antwortet mit dem Eintrag, wie er gerade jetzt aussieht. Später liefert derselbe Hash mehr: eine Signatur, dann externe Verankerungen.

digest
Der SHA-256, den du gesendet hast, in Kleinbuchstaben. Es ist das Einzige, was wir je von deiner Datei sehen.
beat
Der Zeitpunkt in .beat-Zeit — eine universelle Angabe, ohne Zeitzone.
utc
Derselbe Zeitpunkt in UTC, auf die Mikrosekunde genau.
seq
Position im Append-only-Protokoll. Nummern wiederholen sich nie und verschieben sich nie.
week
Die ISO-Woche, zu deren Merkle-Baum dieser Stempel gehört.
chain_hash
Verknüpft diesen Eintrag mit dem vorherigen — ein entfernter Eintrag würde die Kette sichtbar brechen.
week_root
Die Merkle-Wurzel der Woche. Bis die Woche schließt, ist sie vorläufig und bewegt sich noch.
inclusion_proof
Geschwister-Hashes mit ihrer Seite (L oder R). Damit rechnest du die Wurzel selbst nach — genau das macht den Nachweis von uns unabhängig.
root_signature
Ed25519-Signatur über die eingefrorene Wochenwurzel. Erscheint, sobald die Woche versiegelt ist.
ots_status
Stand der Bitcoin-Verankerung: pending, solange sie auf Bestätigung wartet, dann bitcoin mit der Blockhöhe.
anchors
Bankreferenzen, gegen die die Wochenwurzel festgehalten wurde — eine Verankerung, die von keiner Blockchain abhängt.

„Woche noch offen“ ist die normale Antwort, kein Fehler.

Ein frischer Stempel hat noch keine Signatur und keine Verankerung, weil die Woche, zu der er gehört, noch nicht versiegelt ist. Das geschieht am Ende der ISO-Woche; die Bitcoin-Bestätigung folgt etwa einen Tag später. Frag später mit demselben Hash noch einmal — dann sind die fehlenden Felder da. An der aufgezeichneten Zeit ändert sich dabei nichts.

Dieselbe Datei zweimal stempeln

Der erste Stempel gewinnt, immer. Sende denselben Hash erneut und du bekommst den ursprünglichen Eintrag zurück — gleiche Zeit, gleiche Folgenummer — mit Status 200 statt 201. Wiederholungen sind damit sicher: eine verlorene Antwort oder ein nervöser Client kann deinen Zeitstempel nicht nach vorn schieben.

201 Created   → zum ersten Mal gestempelt
200 OK        → bereits gestempelt; der ursprüngliche Zeitstempel wird zurückgegeben
400           → der Hash besteht nicht aus 64 Hex-Zeichen
429           → Limit erreicht; warten und erneut versuchen

Limits und CORS

Die Limits gelten pro IP-Adresse und sorgen dafür, dass ein Client die anderen nicht verdrängt. Für alles, was eine normale Integration tut, sind sie bewusst großzügig.

EndpunktLimit
POST /api/proof/stamp20 / min
GET /api/proof/verify120 / min
GET /api/proof/cert/<digest>10 / min
der Rest (Zeit, Umrechnung, Sync)300 / min

Jeder Endpunkt antwortet mit Access-Control-Allow-Origin: *, du kannst ihn also direkt aus dem Browser aufrufen. Anfragen über Tor bekommen höhere Limits, weil hinter einem Exit-Knoten viele Menschen stehen.

Fertige Clients

Einzelne Dateien, keine Abhängigkeiten, Apache-2.0: Python, PHP, JavaScript, C# und C++17. Kopiere eine in dein Projekt oder lies die vollständige Referenz.

Client holen   OpenAPI-Referenz

Was das nicht ist

Gut zu wissen, bevor du darauf aufbaust — und wir sagen es lieber hier, als dass du es im Review entdeckst:

Die Algorithmen stehen in der Spezifikation, und der Desktop-Client, der all das nachrechnet, ist quelloffen.

← Eine Datei im Browser stempeln