certivu-python
Python SDK for Certivu — quantum-resistant trust infrastructure for AI-generated content.
Install
pip install certivu
Quick start
from certivu import CertivuClient
client = CertivuClient(
api_key="ctv_key_abc123",
generator_id="your-generator-uuid",
)
# Sign AI-generated content — images, audio, or text; format auto-detected
result = client.sign(content=image_bytes, model="stable-diffusion-xl")
# result.signed_content — bytes of the signed file (serve this, not the original)
# result.token — ctv_ provenance token
# result.format — 'image' | 'audio' | 'text'
# Sign audio or text explicitly
result = client.sign(content=pdf_bytes, model="gpt-4o", format="text")
# Verify — no API key needed, always free
result = client.verify(content=image_bytes)
if result.authentic and result.confidence == "high":
print(result.provenance.org, result.provenance.signed_at)
# Verify without re-uploading the image
status = client.get_token_status("ctv_7f3kx9mq2...")
# Batch verify
results = client.verify_batch([
{"content": image1_bytes},
{"content": image2_bytes, "token": "ctv_..."},
])
# Audit log
page = client.get_audit_log(page=1, limit=50)
Async
from certivu import AsyncCertivuClient
async with AsyncCertivuClient(api_key="ctv_key_abc123") as client:
result = await client.verify(content=image_bytes)
results = await client.verify_batch([{"content": img} for img in images])
Generator setup
-
Create a generator in the dashboard and select its supported formats (image, audio, text).
-
Copy the generator ID and your org API key.
-
Sign content — all cryptography (ML-DSA, watermarking, hashing) is handled server-side:
result = client.sign( content=file_bytes, model="stable-diffusion-xl", generator_id="gen_xyz", ) output_file.write(result.signed_content)
Confidence levels
| Confidence | Meaning |
|---|---|
high |
Watermark ✓ + Record ✓ + Signature ✓ — full chain intact |
medium |
Record ✓ + Signature ✓ — re-uploaded without watermark |
low |
Partial signals — something is off |
none |
Not signed by Certivu — no claim either way |
Links
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
certivu-2.6.0.tar.gz
(11.8 kB
view details)
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
certivu-2.6.0-py3-none-any.whl
(10.3 kB
view details)
File details
Details for the file certivu-2.6.0.tar.gz.
File metadata
- Download URL: certivu-2.6.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
704f84dd059684bb4a3b7deb50b3e011deb7f2b0eb5c8d14363569b9c7bbe30a
|
|
| MD5 |
c27a72c7ad33e38782ea5b2fc9d20d54
|
|
| BLAKE2b-256 |
c23a47baf7e1c8d4381b96d500c29a1860764e89db3e9f004aafd19196ea8a5b
|
File details
Details for the file certivu-2.6.0-py3-none-any.whl.
File metadata
- Download URL: certivu-2.6.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45600d0af9ce14fc72885abc021fefcd566420178b75c12ab886d7e066b6359d
|
|
| MD5 |
61a003a6b82f0a65d3a80b462129d140
|
|
| BLAKE2b-256 |
5eb20fcbc31b14d73d6a28b92d0a70796cf8c62937b0de4cd1532ba6efa89c8e
|