OpenViSTAI · Agents · Blockchain · Crypto
Menu
Oracles & Data

OpenTimestamps Calendar Server

OpenTimestamps Calendar Server is a Python daemon called `otsd` that aggregates OpenTimestamps requests, timestamps commitments against Bitcoin, and serves a remote calendar endpoint to OpenTimestamps clients.

Independent OpenViST project profile, based on linked sources.

OpenTimestamps Calendar Server — OpenViST project profile in Oracles & Data.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when you need to operate an OpenTimestamps calendar or want a controllable local endpoint for client development and Bitcoin regtest testing. A server is not required to use the protocol because public calendars exist.

Who it is for

  • Operators who want to host an OpenTimestamps calendar service.
  • Developers building OpenTimestamps clients who need a local calendar endpoint.
  • Developers testing timestamp and confirmation workflows against a local Bitcoin node in regtest.

Documented uses

  • Run a calendar service that aggregates client timestamp requests and anchors commitments to Bitcoin.
  • Direct a client timestamp request to a locally hosted calendar.
  • Use a local regtest environment to exercise timestamping and confirmation flows.
Before you choose

Requirements & limits

  • The service requires a local Bitcoin node and funded wallet; the wallet is assumed to be dedicated to otsd while it runs.
  • The server runs in the foreground because proper daemonization is not implemented.
  • Production exposure requires a reverse proxy; otsd is not designed for direct public exposure.
  • Calendar URI, donation address and HMAC key require local configuration, and the HMAC key should remain secret.
  • Testnet and regtest settings must match between server and client because the protocol does not distinguish the chains.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Configure and start a local calendar

Set up the documented otsd calendar configuration and start the server for local use.

Before you start

  • A local Bitcoin node with a funded wallet; a pruned node is acceptable.
  • Python 3 and the repository requirements.
  • A valid Bitcoin donation address for the selected network.

Steps

  1. Install dependencies with the command below.

    Documented command
    pip3 install -r requirements.txt
  2. Create ~/.otsd/calendar/ and set the calendar URI, donation address and HMAC key as shown in the README.

  3. Run otsd in the foreground; use --btc-testnet or --btc-regtest when appropriate.

Expected outcome

A locally running calendar endpoint that OpenTimestamps clients can be directed to.

Guide limitations

  • The wallet should not be used for other purposes while otsd is running.
  • The HMAC key should be kept secret; only part of its intended recovery functionality is implemented.
  • The server binds to localhost by default and is not designed for direct public exposure; production use requires a reverse proxy.
Source-based practical guide

Submit a file to a selected calendar

Use an OpenTimestamps client to request a timestamp through a running local calendar.

Before you start

  • A running OpenTimestamps calendar server.
  • An OpenTimestamps client and the file to timestamp.

Steps

  1. Run ots stamp -c http://127.0.0.1:14788 -m 1 FILE, replacing FILE with the target file.

  2. For an upgrade, select the calendar with ots -l http://127.0.0.1:14788 upgrade FILE.ots.

  3. When using testnet or regtest, select the matching chain in the client; the README gives ots --btc-regtest -l http://127.0.0.1:14788 upgrade FILE.ots as a regtest example.

Expected outcome

The client submits a timestamp request to the selected calendar and can use that calendar when upgrading the resulting attestation.

Guide limitations

  • Clients may require the calendar to be added manually to their whitelist for upgrade or verification.
  • The protocol does not distinguish mainnet, testnet and regtest, so keep server and client network settings aligned.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
17 October 2026
Original website title
opentimestamps/opentimestamps-server · Official homepage title · retained in its source language