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.
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.
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
Install dependencies with the command below.
pip3 install -r requirements.txtCreate
~/.otsd/calendar/and set the calendar URI, donation address and HMAC key as shown in the README.Run
otsdin the foreground; use--btc-testnetor--btc-regtestwhen 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.
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
Run
ots stamp -c http://127.0.0.1:14788 -m 1 FILE, replacingFILEwith the target file.For an upgrade, select the calendar with
ots -l http://127.0.0.1:14788 upgrade FILE.ots.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.otsas 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.
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

