Documentation
Everything you need to know about Clockdo OTS — how it works, API reference, and verification guide.
Overview
Clockdo OTS is a content timestamping service built on the OpenTimestamps standard. It generates blockchain-anchored timestamp proofs for any data — files, hashes, or content manifests.
- Privacy-first: File contents stay in your browser. The SHA-256 fingerprint and, when supplied, a filename/download label are sent to the server.
- Independently verifiable: Proofs can be verified with any OpenTimestamps-compatible tool, even if this service goes offline.
- Standards-based: Uses the OTS binary format, compatible with the
otsCLI, Python/JS/Java libraries, and opentimestamps.org.
Workflow
- Hash your data — Compute SHA-256 of your file or content. The Stamp page does this automatically in the browser.
- Submit to API — Send the SHA-256 hash and an optional public download label to
POST /api/v1/public/stamps. The server creates an OTS proof. - Download .ots file — The proof file is returned immediately. Save it alongside your original data.
- Verify later — Use the Verify page,
ots verifyCLI, or opentimestamps.org to confirm the timestamp.
File → SHA-256 (browser) → POST /api/v1/public/stamps → .ots download
↓
Later: .ots + original file → ots verify → ✓ Anchored
Stamp API (Public)
Request body (JSON):
{
"export_hash": "sha256:a1b2c3d4...64hexchars",
"event_type": "publish",
"canonicalization_version": "file-sha256",
"filename": "document.pdf"
}
Fields:
export_hash— Required. Format:sha256:<64 hex chars>event_type— Required. One of:publish,update,draft,batchcanonicalization_version— Required. Usefile-sha256for direct file hashing.filename— Optional public download label. New proofs use it inContent-Disposition; do not include sensitive information.
Response (201 Created):
{
"proof_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "stamped",
"manifest_hash": "sha256:...",
"downloads": {
"ots_url": "/api/v1/public/ots/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.ots"
}
}
Error responses:
429— Rate limit exceeded. CheckRetry-Afterheader.400— Invalid request (missing fields).
Proof Status API
Response (200 OK):
{
"proof_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "stamped",
"manifest_hash": "sha256:...",
"downloads": {
"ots_url": "/api/v1/public/ots/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.ots"
},
"message": "Proof is stamped and ready to download.",
"poll_after_ms": 0
}
Statuses:
stamped— Proof is ready. Download the .ots file.queued— Still processing. Usepoll_after_msto retry.
Download Files
For a newly submitted public filename=document.pdf, the OTS response suggests document.pdf--{proof_id}.ots. An upgraded proof uses document.pdf--{proof_id}.updated.ots so it does not silently overwrite the initial download. Historical proofs without an explicitly public label, private proofs, and unnamed hashes use proof--{proof_id}.ots, or proof--{proof_id}.updated.ots after upgrade. The URL and stored object name do not change.
The filename and Proof ID are lookup labels; hash-only OTS bytes commit to the submitted SHA-256 digest, not to either label.
WordPress Plugin
The Clockdo Proof-of-Publish WordPress plugin automates the stamping process for your posts and pages.
- Automatically generates SHA-256 fingerprints of published content.
- Submits proofs to the Clockdo OTS API on publish/update.
- Stores .ots files in your WordPress media library.
- Provides a public verification page per post.
For more details, visit the Pro plan page or the Plugin product page.
Independent Verification
OTS proofs are independently verifiable. You do not need Clockdo to confirm a timestamp.
Option 1: Web-based
- Use the Verify page on this site.
- Or drag your file + .ots into opentimestamps.org.
Option 2: CLI
# Install
pip3 install opentimestamps-client
# Stamp a file
ots stamp myfile.pdf
# Verify a proof
ots verify myfile.pdf.ots
# Verify a proof downloaded from Clockdo's name--ID URL response
ots verify -f myfile.pdf 'myfile.pdf--<proof_id>.ots'
Clockdo's added Proof ID prevents the CLI from inferring the original filename by simply removing .ots. Use -f as shown, use -d <SHA-256>, or select both files in the Web Verify page.
Option 3: Libraries
- JavaScript — Browser & Node.js
- Python
- Java
FAQ
Does this prove ownership?
No. A timestamp proves that data existed at a certain time. Ownership depends on broader context and jurisdiction.
What if the service goes offline?
Your .ots proof files remain valid. They can be verified using any OpenTimestamps-compatible tool against the Bitcoin blockchain.
Is my file uploaded?
No. File contents are processed entirely in your browser. The Stamp page sends the SHA-256 hash and the displayed filename label; the label becomes public proof metadata, so rename sensitive files before submitting.
Rate limits?
Public API: 20 creation requests per 4-hour window per IP address. WordPress plugin sites have separate quotas.
Contact
contact@clockdo.com