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.5.0.tar.gz
(11.7 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.5.0-py3-none-any.whl
(10.3 kB
view details)
File details
Details for the file certivu-2.5.0.tar.gz.
File metadata
- Download URL: certivu-2.5.0.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b34a0eaaf18c9d6962436a627d4b18e1141cd09322e58fd16b416d80e3bd0e1
|
|
| MD5 |
9bdba1ad10dd847218c8f720bd9f7bcf
|
|
| BLAKE2b-256 |
6a20c84f872e194436d45fdef38b4c28b9000028bc8755480ece92ab2b733085
|
File details
Details for the file certivu-2.5.0-py3-none-any.whl.
File metadata
- Download URL: certivu-2.5.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 |
426b12e21a53b7b7834a105fccd08336fd929b30fa4320108e8b89a5f9555424
|
|
| MD5 |
d327e011cdb3b587912e320e1f86b904
|
|
| BLAKE2b-256 |
4989237960a694802253e28bcde8d1d0209598384656bc4e303ba9c6fcfd0a4b
|