npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@umarise/cli

v1.4.0

Published

Anchor files to Bitcoin from the command line. Generate .proof bundles for offline verification.

Downloads

2,162

Readme

@umarise/cli

Anchor files to Bitcoin. Verify proofs offline.

npm install -g @umarise/cli

Usage

export UMARISE_API_KEY=um_your_key

# Anchor a file
umarise anchor document.pdf

# First run output:
# ✓ hash computed: sha256:a1b2c3...
# ✓ anchored: origin_id f47ac10b-58cc-4372-a567-0e02b2c3d479
# ℹ proof.ots pending — Bitcoin confirmation takes ~2 hours
# ✓ certificate saved: document.pdf.proof

# After ~2 hours, run again:
umarise anchor document.pdf

# Second run output:
# ✓ hash computed: sha256:a1b2c3...
# ✓ anchored: origin_id f47ac10b-58cc-4372-a567-0e02b2c3d479
# ✓ proof.ots included (Bitcoin block 935037)
# ✓ proof saved: document.pdf.proof

Same command, always does the right thing. No daemon. No state files.

Commands

umarise anchor <file>

Hash and anchor a file. Creates a .proof ZIP immediately.

  • First run: bundle contains certificate.json only (Bitcoin proof pending)
  • After ~2 hours: bundle contains certificate.json + proof.ots
umarise anchor document.pdf

umarise proof <file>

Full proof lifecycle in one command:

  1. Hash the file locally (SHA-256)
  2. Anchor the hash (or detect it's already anchored)
  3. Check if Bitcoin proof is ready
  4. If ready: download .ots, build .proof ZIP, verify locally

Idempotent — run it as many times as you want on the same file.

umarise verify <file> [proof]

Verify a file against its .proof bundle. Tries offline verification first (OpenTimestamps), falls back to online.

umarise verify document.pdf
# or explicitly:
umarise verify document.pdf document.pdf.proof

Output

Anchor (before Bitcoin confirmation)

✓ hash computed: sha256:a1b2c3...
✓ anchored: origin_id f47ac10b-58cc-4372-a567-0e02b2c3d479
ℹ proof.ots pending — Bitcoin confirmation takes ~2 hours
✓ certificate saved: document.pdf.proof

Anchor (after Bitcoin confirmation)

✓ hash computed: sha256:a1b2c3...
✓ anchored: origin_id f47ac10b-58cc-4372-a567-0e02b2c3d479
✓ proof.ots included (Bitcoin block 935037)
✓ proof saved: document.pdf.proof

Verify

✓ hash matches
✓ anchored in Bitcoin block 935037
✓ no later than: 2026-03-04
✓ proof valid — independent of Umarise

Proof bundle

<file>.proof is a ZIP containing:

  • certificate.json — origin metadata (hash, origin_id, timestamp, block height)
  • proof.ots — OpenTimestamps binary proof (Bitcoin anchor)

The CLI is content-blind: your file never leaves your system. Only the SHA-256 hash is transmitted. You are responsible for storing the original file alongside the .proof bundle.

You can verify independently — no Umarise infrastructure needed:

unzip document.pdf.proof
cat certificate.json                      # inspect origin metadata
ots verify proof.ots                      # verify against Bitcoin

Or use the reference verifier: verify-anchoring.org

Configuration

| Variable | Required | Description | |---|---|---| | UMARISE_API_KEY | For anchor and proof | Partner API key (um_...) |

Or pass --api-key <key> to the command.

verify requires no API key — verification is a public utility.

What this CLI does NOT do

  • Store files (hash-only, bytes never leave your system)
  • Manage accounts or sessions
  • Interpret content or meaning
  • Replace legal processes

License

Unlicense (Public Domain)