mfsig.com
v2.4 lineage · git for σ-profile

Upgrade a .mfsig without losing its history.

Every .mfsig carries a SHA-chained lineage of its derivation events. Pro → Platinum tier upgrade. Add another audit tier in the same file. Add a polymer to a drug's pair score. Every change appends to the same audit chain — no rebuild, no re-compute, no lost provenance.

The model

One molecule, one chain, many derivations

The lineage block in audit_and_trust is structurally identical to a git commit history — append-only, SHA-linked, cryptographically signed at every step.

         genesis              tier upgrade            recipe enrichment            pair score added
         ───────              ────────────            ─────────────────            ────────────────
         ┌─────────┐          ┌─────────────┐         ┌────────────────┐           ┌─────────────────┐
SHA →    │ e0cd03e7│  ◀───────│ 7e1f744c    │  ◀──────│ a8392b1d       │  ◀────────│ 9f0e2c44        │
         │         │          │             │         │                │           │                 │
         │ tier:Pro│          │ tier:       │         │ tier:Platinum  │           │ tier:Platinum   │
         │ recipe: │          │   Platinum  │         │                │           │                 │
         │ v0.28.3 │          │ recipe:     │         │ + recipe:      │           │ + pair_score    │
         │         │          │   v0.28.3   │         │   v0.29-klamt  │           │   (drug × poly) │
         └─────────┘          └─────────────┘         └────────────────┘           └─────────────────┘
            │                       │                        │                            │
            │                       │                        │                            │
         genesis              parent:                 parent:                       parent:
         event                e0cd03e7                7e1f744c                      a8392b1d
                              op: tier_upgrade        op: add_variant               op: add_pair_score
                              tool: compute_mfsig     tool: compute_mfsig           tool: chi_polymer_api
                              timestamp: 2026-05-12   timestamp: 2026-05-13         timestamp: 2026-05-14
                              signed: Ed25519         signed: Ed25519               signed: Ed25519

Each box is a complete .mfsig.json file. Each arrow is the parent_sha256 link. The history[] array on the rightmost file records every preceding event — you can reconstruct the full derivation tree from any leaf.

How enrichment works

Two ways to add to an existing .mfsig

Both produce a new file with parent_sha256 pointing at the input. The audit chain stays intact, the original is never modified.

op: add_variant · audit-tier enrichment

Add another audit tier to the same molecule

You have a Standard-tier .mfsig. You need the Compatibility-tier result too (to feed a legacy COSMO-RS pipeline). Upload the file, pick the additional tier, get back a new .mfsig with BOTH variants in physics_variants.

Skips: re-doing the foundational work — only the tier-specific recalibration runs. Validation already anchored at write time.
op: tier_upgrade · grade enrichment

Upgrade Pro → Platinum or Platinum → Reference

You bought a Pro .mfsig for screening. The candidate passed and you want to escalate to Platinum (multi-conformer ensemble, dft-relax geometry, expanded anchor validation). Upload, get back the Platinum variant in the same chain.

Skips: re-paying for the Pro work — the upgrade only charges for the delta (typically +50% on the original Pro price).
What never works

✗ Downgrade — you cannot turn a Platinum .mfsig back into a Pro file. The chain is append-only, and the upgrade derivation preserves all Pro-tier data anyway.
✗ Forking — there is no "branch" semantic. If you need a second variant from a fork point, the chain re-merges at the parent_sha256 and continues linearly. Useful in audit, never in production.
✗ Editing past events — the history[]array is sealed by the root SHA-256. Any modification invalidates the Ed25519 signature.

Try it

Three lines of CLI · same chain

The open mfsig CLI handles both enrichment paths. Free conversion in, paid enrichment out.

# Start: I have a Pro Standard-tier .mfsig
$ mfsig info aspirin.mfsig.json
  → tier: Pro · grade: MF2 · audit: Standard
  → genesis sha: e0cd03e7…  · current sha: e0cd03e7…  · generation: 1

# Op 1: add the Compatibility audit tier (audit-tier enrichment)
$ mfsig enrich aspirin.mfsig.json --add-tier compatibility
  → POST /v1/enrich · cost: €150
  → new sha: 7e1f744c…  · generation: 2  · audit tiers: 2

# Op 2: upgrade Pro → Platinum grade (tier upgrade, expanded coverage)
$ mfsig upgrade aspirin.mfsig.json --grade platinum
  → POST /v1/upgrade · cost: +€225 (Platinum delta)
  → new sha: a8392b1d…  · generation: 3  · audit tiers: 2

# Op 3: verify the full chain offline (no network)
$ mfsig verify aspirin.mfsig.json --show-lineage
  ✓ Genesis    e0cd03e7…  2026-05-12  Pro       Standard
  ✓ Variant    7e1f744c…  2026-05-13  Pro       + Compatibility
  ✓ Upgrade    a8392b1d…  2026-05-14  Platinum  Standard + Compatibility
  ✓ All Ed25519 signatures valid · chain unbroken · PASS
Why this matters commercially

No re-compute. No double pay. No lost provenance.

💸

Cost: incremental only

Upgrading 1 000 Pro files to Platinum costs ~50% of buying 1 000 fresh Platinum files. The Pro work is reused.

📜

Audit: unbroken chain

A regulatory inspector can walk back from the current Platinum file all the way to genesis — every derivation step has a signed timestamp.

Time: minutes, not hours

Recipe enrichment skips geometry + cavity — typically < 1 min per molecule. Tier upgrade adds conformers — minutes, not the original 30+ for a fresh Platinum run.

Get started

Upload one .mfsig · pick the enrichment · keep the chain