
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
The certbot for document authenticity: scriptable sealing, verification, and public-ledger timestamping against any Let's Seal-compatible service.
Seal and timestamp anything on Bitcoin. Prove any file existed, unaltered — one command, public proof. For humans, backends, CI, and AI agents.
Three core verbs (hash-only, keyless, scriptable):
sealbot anchor release-v3.tar.gz # timestamp ANY file -> writes .ots
sealbot anchor release-v3.tar.gz --publish # ...and register a shareable public proof page
sealbot verify contract.sealed.pdf # check a sealed PDF (exit 2 if tampered)
# or: verify release.tar.gz.ots → refresh status
sealbot watch /srv/invoices --once # anchor every new/changed file in a folder
anchor hashes locally and sends only the 32-byte digest — the file never leaves the
machine. Without --publish nothing is registered anywhere; the local .ots is your proof.
Sealing a PDF as a business identity (X.509 / PAdES) is a separate, keyed concern — it needs
the signing service and a bearer token (--token / SEALBOT_TOKEN):
sealbot seal contract.pdf --org acme # seal a PDF with your CA
sealbot issue --id ci --cn "My CI" --profile code # get a signing cert (key stays local)
Migrating:
notarizeis nowanchor --publish;upgrade <f>.otsis nowverify <f>.ots. The old verbs still run (with a one-line notice) so existing scripts keep working.
watch — turn a folder into an always-on notaryPoint sealbot at a directory and it anchors (or seals) every new or changed file,
skipping anything it has already recorded — the daemon form of the one-shot commands.
sealbot watch /srv/invoices # poll forever, anchor new/changed files
sealbot watch /srv/invoices --once # single pass (cron-friendly)
sealbot watch /srv/contracts --mode seal --org acme # seal PDFs as they land
sealbot watch ./release --mode publish --interval 30 # public proof page per artifact
anchor mode hashes each file locally (only the 32-byte
digest leaves the machine) and writes a sibling <file>.ots — the original bytes are never
touched. This is register-in-place: the proof lives beside the file, not baked into it..sealbot-state.json dotfile tracks size+mtime, so restarts and repeated
--once runs never re-anchor unchanged files. Derived artifacts (.ots, .sealed.pdf) and
dotfiles are skipped, so it never chases its own tail..sealbot-manifest.jsonl
(ts, file, sha256, mode, state, proof).anchor (default, hash-only local .ots, any file) · publish (hash-only +
public proof page) · seal (PDFs only, needs --org and the keyed service).Run it under systemd/pm2 for a directory that's continuously notarised, or on a --once cron
tick. Each .ots still verifies against Bitcoin with stock ots verify <file> — the proof
stands on the public chain.
npm i -g sealbot # or: node cli/sealbot.mjs <cmd>
Requires Node ≥ 18. Point it at a service with --api <url> or SEALBOT_API
(default http://127.0.0.1:8081).
anchor works on any file. Anchoring is just timestamp(sha256(bytes)), so the same
command proves the existence-and-date of software releases, datasets, audit logs, evidence,
model weights, backups — not only PDFs.sealbot issues under a
CA, exposes a friendly API, and publishes proof pages. Your .ots proof verifies against
Bitcoin with stock ots verify — the proof stands on the public chain.verify returns 0 when authentic and intact, 2 when unsealed or tampered — so it slots
straight into a CI gate:
sealbot verify build/report.sealed.pdf || exit 1
Core — hash-only, keyless, agent-friendly:
| Command | Notes |
|---|---|
anchor <file> [--publish] | hash-only; writes <file>.ots; --publish also registers a public proof page; any file |
verify <file> | a sealed PDF → checks seal + integrity; an .ots → refreshes its Bitcoin confirmation |
watch <dir> | continuously anchor / publish / seal new & changed files |
Advanced — keyed signing (needs the signing service + --token / SEALBOT_TOKEN):
| Command | Notes |
|---|---|
seal <file.pdf> --org <slug> | seal a PDF as a business identity (X.509 / PAdES) |
issue --id <id> --cn "<subject>" | get a signing cert; the key is generated and kept locally |
Deprecated aliases (still run, with a one-line notice): notarize → anchor --publish;
upgrade <f>.ots → verify <f>.ots.
Apache-2.0 licensed.
FAQs
The certbot for document authenticity: scriptable sealing, verification, and public-ledger timestamping against any Let's Seal-compatible service.
The npm package sealbot receives a total of 9 weekly downloads. As such, sealbot popularity was classified as not popular.
We found that sealbot demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.