opentimestamps · v0.1.0 · 2026-09-17 · sha256 df913c1e79d51d5c
opentimestamps v0.1.0A
Immutable. This exact content never changes and is served at /api/v1/blob/df913c1e79d51d5c.
--- name: opentimestamps description: Use this skill when the user wants to timestamp a local file with OpenTimestamps or opentimestamps.org, generate or inspect a `.ots` proof, upgrade a pending proof, or verify that a file digest was attested in Bitcoin from the command line or the public website. compatibility: Requires Python 3 and the official OpenTimestamps client via `ots`, `uvx`, or `uv`; network access is needed for calendar submission and proof upgrades. metadata: version: "0.1.0" repository: "https://github.com/opentimestamps/opentimestamps-client" --- # OpenTimestamps Use the bundled wrapper around the official OpenTimestamps client to stamp local files, inspect `.ots` proofs, upgrade them when remote calendars have new attestations, and verify them against Bitcoin-backed timestamps. ## Available operations Choose only the operation the user requested. These commands are independent; do not run stamping, inspection, upgrading and verification as a fixed sequence. 1. Stamp the local file with the bundled wrapper: ```bash python3 skills/opentimestamps/scripts/opentimestamps.py stamp \ --input /absolute/path/to/document.pdf ``` 2. Read the JSON result: - `timestamp_path` is the generated `.ots` proof, defaulting to `<input>.ots`. - `submitted_calendars` lists the remote calendars that accepted the proof request. 3. If the user wants to inspect the proof tree or confirm whether it is still pending, inspect it: ```bash python3 skills/opentimestamps/scripts/opentimestamps.py info \ --timestamp /absolute/path/to/document.pdf.ots ``` 4. If verification fails because the proof is still waiting on Bitcoin confirmation, upgrade it later: ```bash python3 skills/opentimestamps/scripts/opentimestamps.py upgrade \ --timestamp /absolute/path/to/document.pdf.ots ``` 5. Verify once the proof is complete: ```bash python3 skills/opentimestamps/scripts/opentimestamps.py verify \ --timestamp /absolute/path/to/document.pdf.ots ``` 6. If the original file is not next to the `.ots` proof, pass it explicitly: ```bash python3 skills/opentimestamps/scripts/opentimestamps.py verify \ --timestamp /absolute/path/to/document.pdf.ots \ --input /absolute/path/to/document.pdf ``` 7. If the user needs raw `ots` commands, browser instructions, or Bitcoin-node-specific details, read `references/commands.md`. ## Operational preferences - Prefer the bundled wrapper over raw `ots` calls because it returns structured JSON and falls back to `uvx --from opentimestamps-client ots` when a persistent `ots` install is missing. - Prefer storing the `.ots` file beside the original file and keeping the bytes unchanged after stamping. - Prefer trying `verify` first; if it reports pending confirmations, run `upgrade` and retry instead of assuming the proof is broken. - Prefer explicit `--input` on verify when the original file moved or was renamed. ## Safety rules - Treat stamping and upgrading as external network actions because they contact public OpenTimestamps calendars. - Call out that OpenTimestamps proves existence time for a digest; it does not encrypt the file or hide its contents. - Do not claim a proof is complete until `verify` succeeds against a Bitcoin block. - Do not modify the original file after stamping if the user expects later verification to succeed. - Do not recommend sharing `.ots` files casually when the fact that a specific digest exists could itself be sensitive. ## Gotchas - Freshly stamped proofs are often incomplete and may need one or more later `upgrade` passes before verification succeeds. - Successful `upgrade` rewrites the timestamp and saves the old version as `.ots.bak`. - `verify` can infer the original file when the `.ots` file still lives beside it with the original filename, but that inference breaks after renames or moves. - If the user has a trusted local Bitcoin node, pass `--bitcoin-node` through the wrapper for stronger verification semantics. - The website at `opentimestamps.org` is a valid fallback, but the CLI flow is easier to automate and audit.