Sealmark
approvedby Yitebeier Aikebaier
Private proof of existence for your notes. Hash locally, anchor to Bitcoin via OpenTimestamps, verify offline. Your content never leaves your machine; only a hash is published. - This plugin has not been manually reviewed by Obsidian staff.
Sealmark
Private proof of existence for your Obsidian notes.
Sealmark hashes a note locally, anchors the hash to the Bitcoin blockchain via OpenTimestamps, and lets anyone verify, with standard open-source tools, that the note existed at a given time and has not changed since.
Your content never leaves your machine. Only a hash is ever published. That is the whole point: you can prove you wrote something first without publishing it (unlike a preprint, which makes priority public by making the content public).
Status
v0, validated end-to-end inside Obsidian: the bundled opentimestamps library loads
in the renderer and the seal → upgrade → verify flow works on a real vault. The
cryptographic core is additionally covered by Node spikes and unit tests. See
ARCHITECTURE.md for the architecture and trust model.
How it works
- Seal: Sealmark reads the note's raw bytes, computes a SHA-256 digest, and submits
only that digest to several public OpenTimestamps calendars. You get a
pendingproof in seconds, stored as a.otssidecar next to your note. - Upgrade: Bitcoin confirmation takes hours. Sealmark re-fetches the completed proof
on startup (and on demand), flipping the note to
sealedwith a block height. - Verify: the
.otsis a standard OpenTimestamps proof. Anyone can verify it with Sealmark, with theotsCLI, or against a Bitcoin node. No trust in Sealmark or any server is required (a full node is fully offline and trustless; a block explorer is a convenience fallback).
A note whose content changes after sealing shows as Drifted: the old proof stays valid
for the bytes it sealed, it just no longer matches the current file.
Commands
- Seal current note
- Upgrade pending seals
- Verify current note seal
Install (manual, for testing)
npm install
npm run build
Then copy main.js and manifest.json into your vault at
<vault>/.obsidian/plugins/sealmark/, reload Obsidian, and enable Sealmark in
Settings → Community plugins.
Privacy and trust
- Content is hashed locally; only the digest is sent to calendars.
- The default backend is free public OpenTimestamps calendars. An optional hosted backend may be added later, off by default; the plugin is fully functional without it.
Architecture
See ARCHITECTURE.md. The trust core (src/core) is pure TypeScript with no Obsidian
dependency; the Obsidian shell (src/obsidian, src/main.ts) is a thin layer over it.
All contact with the opentimestamps library is confined to one file
(src/core/anchor/public-calendar.ts).
Author
Built by Yitebeier Aikebaier, who also works on Nexum, a Bitcoin-anchored ledger.
License
MIT.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.