Skip to main content

Anchor MLflow artifacts to Bitcoin. One line to production.

Project description

umarise-mlflow

Anchor every MLflow artifact at inception. One hash. Independent proof. Bitcoin-anchored.

What it does

Every model, dataset, and artifact you log in MLflow gets a cryptographic fingerprint anchored in Bitcoin via OpenTimestamps. Not after the fact. At the moment of creation.

The origin_id is logged back into your MLflow run. Verifiable by anyone. Without trusting Umarise. Without an account. Forever.

Install

pip install umarise-mlflow

Usage

Auto-anchor everything in a run

import mlflow from umarise_mlflow import auto_anchor

with mlflow.start_run(): with auto_anchor(api_key="um_..."): mlflow.log_artifact("model.pkl") mlflow.log_artifact("dataset.parquet")

Every artifact logged inside the context is automatically anchored. The origin_id appears as a parameter in your MLflow run.

Anchor a single artifact

from umarise_mlflow import anchor_artifact

result = anchor_artifact("model.pkl", api_key="um_...") print(result["origin_id"])

Anchor all artifacts in an existing run

from umarise_mlflow import anchor_run_artifacts

results = anchor_run_artifacts(run_id="abc123", api_key="um_...")

What gets anchored

The SHA-256 hash of the file. Nothing else. The file never leaves your system. Umarise receives only the fingerprint.

What you get back

{ "origin_id": "fb025c0e-...", "hash": "sha256:a1b2c3...", "captured_at": "2026-03-30T09:00:00Z", "proof_status": "pending" }

proof_status moves from pending to anchored after Bitcoin confirmation. Typically within 1-2 hours.

Verify independently

Every anchor is verifiable without Umarise:

curl https://core.umarise.com/v1-core-proof?origin_id=fb025c0e-...

The returned .ots file verifies against Bitcoin directly using the OpenTimestamps CLI. No account. No permission. No Umarise dependency.

Why this exists

MLflow logs everything. Every log lives next to the thing it describes. The timestamp comes from the same clock as the run. The audit trail is written by the audited.

When a regulator, auditor, or counterparty asks "prove this model existed before the incident" — MLflow alone cannot answer that.

umarise-mlflow gives MLflow the one thing it cannot give itself: independently verifiable origin proof, anchored at inception.

Get an API key

umarise.com/developers

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

umarise_mlflow-0.1.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

umarise_mlflow-0.1.2-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file umarise_mlflow-0.1.2.tar.gz.

File metadata

  • Download URL: umarise_mlflow-0.1.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for umarise_mlflow-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b5c3f97618ff941d449c7aee475044b587abb9cbd9fa086ab276905ebff07ade
MD5 3b6dfdc0fa182af3111d8f08b0a66d37
BLAKE2b-256 81da6a124842512fa2318a55e95e084fba26827ffa74fc47ef41cfef0f4f88c5

See more details on using hashes here.

File details

Details for the file umarise_mlflow-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: umarise_mlflow-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for umarise_mlflow-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fcc0da1eb19dfcca4b489ac247a826af98995fbdbdcb27c0600fa70d5fd5af2b
MD5 c7ad054cb5737034dad6e576d389c6b9
BLAKE2b-256 b83c41fc962303e0a525c0b0379898701990f0005d1a7566dedd3dc62284789b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page