Python SDK for the KairoNull Umbra Trust Protocol — AI decision evidence capture and verification
Project description
kaironull
Python SDK for the KairoNull Umbra Trust Protocol — capture AI decision events to a hash-chained, RFC3161-anchored evidence ledger, and verify records independently.
Install
pip install kaironull
Quickstart
from kaironull import KairoNull
client = KairoNull(api_key="utp_live_...") # get a key at kaironull.com/get-access
result = client.record(
pipeline_id="credit-decisioning",
entry_type="flag", # "pass" | "flag" | "block" | "escalate"
stage_slug="risk-review",
summary="Application flagged for manual review: DTI ratio 0.61 exceeds threshold",
trust_score=0.42,
model_version="risk-model-v3.2",
)
print(result.entry_hash) # sha256 hex — share this with an auditor
print(result.chain_height) # position in your org's evidence chain
Verify a record (no API key needed)
from kaironull import KairoNull
client = KairoNull() # public methods don't require a key
verified = client.verify("95be8bb5253668bb898da34631cc3c9e...")
if verified.found:
print(verified.record["summary"])
print("Anchored:", verified.anchor.anchored)
Anyone can verify a hash — auditors don't need credentials, an account, or access to your systems. This is also what powers the public widget at kaironull.com/#verify.
Check chain health
status = client.chain_status()
print(status.chain_height, status.healthy)
Same data backing kaironull.com/status.
Export an evidence bundle
bundle = client.export_report(from_="2026-06-01T00:00:00Z", to="2026-07-01T00:00:00Z")
# bundle["entries"], bundle["anchor"] — hand this to an auditor or regulator
Revoke your key
client.revoke_key(key_id="...") # the key used to auth this call is what's revoked
Error handling
from kaironull import AuthenticationError, ValidationError, APIError
try:
client.record(...)
except ValidationError as e:
# bad input — fix the call
...
except AuthenticationError as e:
# missing/invalid/revoked key
...
except APIError as e:
# anything else — e.status_code has the HTTP status
...
Context manager
with KairoNull(api_key="...") as client:
client.record(...)
# session closed automatically
Links
Status
This SDK covers the full public API surface: record, verify,
chain_status, export_report, revoke_key. It is a thin wrapper — every
method maps directly to one REST call, so behaviour matches the
quickstart examples exactly.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kaironull-0.1.0.tar.gz.
File metadata
- Download URL: kaironull-0.1.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ed2943673730d8605e03f49954c9b28c5ed1d6e5796a7d542b228ae9f316aa0
|
|
| MD5 |
1761de3c7a4f3069f76993d53224a829
|
|
| BLAKE2b-256 |
e18dd7cc9f3ff0784abff24c513ee234f225758e803a222d1ebb6dd8858d9356
|
Provenance
The following attestation bundles were made for kaironull-0.1.0.tar.gz:
Publisher:
publish-sdk.yml on BlackFlag-Digital/PropertyVR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kaironull-0.1.0.tar.gz -
Subject digest:
7ed2943673730d8605e03f49954c9b28c5ed1d6e5796a7d542b228ae9f316aa0 - Sigstore transparency entry: 2161671659
- Sigstore integration time:
-
Permalink:
BlackFlag-Digital/PropertyVR@7e9ee10537b7ee46e000be23729ea55f00e7c65d -
Branch / Tag:
refs/tags/sdk-v0.1.0 - Owner: https://github.com/BlackFlag-Digital
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@7e9ee10537b7ee46e000be23729ea55f00e7c65d -
Trigger Event:
push
-
Statement type:
File details
Details for the file kaironull-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kaironull-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd193e5329a18333f015b67e74675b331ca1b78e0e289b95de0540255f1d7eca
|
|
| MD5 |
58db3a86392a213c73b11858ccd624d3
|
|
| BLAKE2b-256 |
834eaa7fd8e39bca4cf1c7f79f44a044678e05abe89ac056740b55759f50ac47
|
Provenance
The following attestation bundles were made for kaironull-0.1.0-py3-none-any.whl:
Publisher:
publish-sdk.yml on BlackFlag-Digital/PropertyVR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kaironull-0.1.0-py3-none-any.whl -
Subject digest:
cd193e5329a18333f015b67e74675b331ca1b78e0e289b95de0540255f1d7eca - Sigstore transparency entry: 2161671744
- Sigstore integration time:
-
Permalink:
BlackFlag-Digital/PropertyVR@7e9ee10537b7ee46e000be23729ea55f00e7c65d -
Branch / Tag:
refs/tags/sdk-v0.1.0 - Owner: https://github.com/BlackFlag-Digital
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@7e9ee10537b7ee46e000be23729ea55f00e7c65d -
Trigger Event:
push
-
Statement type: