Skip to main content

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

  1. Create a generator in the dashboard and select its supported formats (image, audio, text).

  2. Copy the generator ID and your org API key.

  3. 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)

Uploaded Source

Built Distribution

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

certivu-2.6.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

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

Hashes for certivu-2.6.0.tar.gz
Algorithm Hash digest
SHA256 704f84dd059684bb4a3b7deb50b3e011deb7f2b0eb5c8d14363569b9c7bbe30a
MD5 c27a72c7ad33e38782ea5b2fc9d20d54
BLAKE2b-256 c23a47baf7e1c8d4381b96d500c29a1860764e89db3e9f004aafd19196ea8a5b

See more details on using hashes here.

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

Hashes for certivu-2.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45600d0af9ce14fc72885abc021fefcd566420178b75c12ab886d7e066b6359d
MD5 61a003a6b82f0a65d3a80b462129d140
BLAKE2b-256 5eb20fcbc31b14d73d6a28b92d0a70796cf8c62937b0de4cd1532ba6efa89c8e

See more details on using hashes here.

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