Skip to main content

Proof that AI saw what you think it saw.

Project description

Verum

Proof that AI saw what you think it saw.

 

Every tool in the AI audit space records what the model decided.
No tool records whether the data the model saw was real.

That is the gap. verum closes it.

 

The gap nobody is talking about

flowchart TD
    A(["Real world data
    ───────────────
    telemetry · sensors · feeds"])

    B(["Silent manipulation
    ───────────────
    possible here · undetectable
    no tool catches this"])

    C(["AI system
    ───────────────
    processes what it receives"])

    D(["Decision
    ───────────────
    signed and logged ✓"])

    A -->|enters pipeline| B
    B -->|reaches AI unchallenged| C
    C --> D

    style A fill:#f8fafc,stroke:#94a3b8,color:#334155
    style B fill:#fff1f2,stroke:#fda4af,color:#9f1239
    style C fill:#f8fafc,stroke:#94a3b8,color:#334155
    style D fill:#f0fdf4,stroke:#86efac,color:#166534

Logs prove the decision happened.
They cannot prove the input was genuine.

 

What verum does

flowchart TD
    A(["Data arrives
    ───────────────
    raw · untouched · live"])

    B(["verum seals it
    ───────────────
    fingerprint + timestamp
    before AI sees anything"])

    C(["AI processes
    ───────────────
    works as normal
    nothing changes"])

    D(["Receipt is born
    ───────────────
    decision + seal together
    compact · tamper-evident"])

    E(["Anyone verifies
    ───────────────
    regulator · court · auditor
    no AI access needed"])

    A --> B
    B --> C
    C --> D
    D --> E

    style A fill:#f8fafc,stroke:#94a3b8,color:#334155
    style B fill:#eff6ff,stroke:#93c5fd,color:#1e40af
    style C fill:#f8fafc,stroke:#94a3b8,color:#334155
    style D fill:#eff6ff,stroke:#93c5fd,color:#1e40af
    style E fill:#f0fdf4,stroke:#86efac,color:#166634

One seal. Generated before the AI touches anything.
If the input was changed, the seal breaks. Always.

 

Get started

No pip. No dependencies. Clone and run.

git clone https://github.com/SpyrosArg/Verum.git
python example.py

 

Three functions

from verum import seal, bind, verify

# before the AI sees anything
s = seal(data="your raw input data here")

# after the AI decides
receipt = bind(seal=s, decision="ai decision output here")

# verify anytime — by anyone
result = verify(receipt=receipt, original_data="your raw input data here")

print(result.valid)    # True
print(result.reason)   # "input matches seal"

Change a single character in the original data. result.valid becomes False.
That is the entire interface.

 

Where this matters

AI agent pipelines
One agent feeds another. Seal every handoff. Make the entire chain auditable at every link.

Space operations
The telemetry an AI anomaly detector acted on —> was it real? Prove it.

Healthcare
The scan an AI diagnostic tool processed —> was it the right patient, unaltered? Prove it.

Finance
The market data an algorithmic system acted on —> was it the genuine feed at that moment? Prove it.

 

How it works

verum takes a cryptographic fingerprint of raw input the moment it arrives. It seals that fingerprint with a timestamp from an external source the operator does not control, so nothing can be backdated. The seal binds to whatever decision follows. Verification reruns the fingerprint on the original data and checks it against the seal. Match means genuine. Mismatch means something changed.

 

What this is not

Not encryption. Not an audit log. Not a compliance platform.
One primitive. One gap. Everything else builds on top.

 

verum/
├── verum.py            the primitive
├── example.py          start here
├── example_space.py    satellite telemetry walkthrough
└── README.md

 

MIT use it, break it, build on it.

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

verum-0.1.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

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

verum-0.1.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file verum-0.1.1.tar.gz.

File metadata

  • Download URL: verum-0.1.1.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for verum-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1dad8b14b3b8171a6f52c0aa84eb2fcb7a9492f212ccaf8aca2f6e204fd9d59c
MD5 cbf01b7c04b2c2be0308eecc82bcc3d4
BLAKE2b-256 df1c3c72d1eb0692bab5db3b26e5a4c7fee5aafdc814a012475b3625cdd081e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for verum-0.1.1.tar.gz:

Publisher: publish.yml on SpyrosArg/Verum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verum-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: verum-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for verum-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 077a03846f1d3f845c573c4df84869f5049c8cdcc90bebc223eaa39fe4eaefa5
MD5 0c38aa6ae943dcaa2ce89a996a787f9d
BLAKE2b-256 737986dad0ba5d903f5e84b7a4557ae45847f5b6741ab1313f8d2e217844c425

See more details on using hashes here.

Provenance

The following attestation bundles were made for verum-0.1.1-py3-none-any.whl:

Publisher: publish.yml on SpyrosArg/Verum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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