JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q68160F
  • License Unlicense

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

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@umarise/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    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)