Anchor any file to Bitcoin with one API call. Hash-in, proof-out.
artifact → artifact.proof
Zero dependencies. Python 3.8+.
pip install umarise-core-sdkfrom umarise import UmariseCore, hash_buffer
import os
core = UmariseCore(api_key=os.environ["UMARISE_API_KEY"])
with open("release.tar.gz", "rb") as f:
file_hash = hash_buffer(f.read())
origin = core.attest(file_hash)
print(origin.origin_id) # donefrom umarise import UmariseCore, hash_buffer
core = UmariseCore()
with open("release.tar.gz", "rb") as f:
file_hash = hash_buffer(f.read())
result = core.verify(file_hash)
if result:
print(f"Existed since {result.captured_at}")Verification is public. No account, no API key, no vendor dependency.
npx @umarise/cli anchor release.tar.gz
# → release.tar.gz.proofVerify offline:
npx @umarise/cli verify release.tar.gz.proof
# Hash Match ✓ | Bitcoin Block #881234 | 2026-03-05 | VALID| Method | Auth | Description |
|---|---|---|
health() |
Public | API health check |
resolve(origin_id=...) |
Public | Lookup by origin ID |
resolve(hash=...) |
Public | Lookup by hash |
verify(hash) |
Public | Check if hash is anchored |
proof(origin_id) |
Public | Download .ots proof |
attest(hash) |
API Key | Create anchor |
hash_buffer(bytes) |
— | SHA-256 hash, no network |
Use the GitHub Action for automated anchoring:
- uses: AnchoringTrust/anchor-action@v1
with:
file: build.tar.gz
env:
UMARISE_API_KEY: ${{ secrets.UMARISE_API_KEY }}Every build gets a .proof file. Verifiable offline, independent of Umarise.
Unlicense (Public Domain)