Skip to main content

Cryptographic receipts for AI-generated artifacts. One POST per artifact, public verifier URL, 7-year retention.

Project description

sealed-for-ai (Python)

Cryptographic receipts for AI-generated artifacts. One POST per artifact, public verifier URL, 7-year retention.

Install

pip install sealed-for-ai

Requires Python 3.11+.

Five-minute quickstart

import hashlib
from sealed_for_ai import SealedAIClient

client = SealedAIClient(api_key="sk-ai-...")  # get one at https://ai.epochpay.today

output_bytes = b"This is whatever your AI just produced."
receipt = client.seal(
    artifact_kind="llm_output",
    subject="Generated for customer #42",
    payload_sha256=hashlib.sha256(output_bytes).hexdigest(),
    metadata={
        "model": "claude-opus-4-7",
        "tokens": 1284,
    },
)

print("Verifier URL:", receipt.verifier_url)
print("Seal ID:", receipt.seal_id)
# Verifier URL is now a public link anyone can open to confirm this artifact.

Async usage

import asyncio
from sealed_for_ai import AsyncSealedAIClient

async def main():
    async with AsyncSealedAIClient(api_key="sk-ai-...") as client:
        receipt = await client.seal(
            artifact_kind="llm_output",
            subject="...",
            payload_sha256="...",
        )
        print(receipt.verifier_url)

asyncio.run(main())

Chaining (multi-step pipelines)

seal_1 = client.seal(artifact_kind="rag_response", ...)
seal_2 = client.seal(artifact_kind="llm_output", chain_prev=seal_1.full_hash, ...)
seal_3 = client.seal(artifact_kind="agent_action", chain_prev=seal_2.full_hash, ...)

If any intermediate artifact is tampered with, the chain root changes and downstream seals self-invalidate.

Verification

verified = client.verify("EP-DKAP-A5C2F07B...")
assert verified.found
assert verified.signatures.ed25519_valid
print(verified.sealed_at, verified.retention_until)

Anyone can verify any seal — they don't need an API key. Pass them the verifier_url from a seal response and they can confirm in any browser.

Configuration

client = SealedAIClient(
    api_key="sk-ai-...",
    base_url="https://ai.epochpay.today",  # default
    timeout=30.0,                          # seconds, default
    max_retries=3,                         # exponential backoff on 5xx
)

Environment variables (used as defaults if not passed explicitly):

Env var Default
SEALED_AI_KEY (required)
SEALED_AI_BASE_URL https://ai.epochpay.today
SEALED_AI_TIMEOUT 30

Errors

Every API error raises a typed exception:

  • SealedAuthError — 401 (bad / missing key)
  • SealedRateLimitError — 429 (over plan limit; retry_after attr in seconds)
  • SealedValidationError — 400 (bad request body)
  • SealedServerError — 5xx (we're down or in maintenance; the SDK retries first)
  • SealedError — base class; catch this if you want all of the above
from sealed_for_ai.exceptions import SealedRateLimitError

try:
    receipt = client.seal(...)
except SealedRateLimitError as e:
    print(f"Wait {e.retry_after}s")

Compliance

Every seal carries:

  • SHA-256 (FIPS 180-4)
  • Ed25519 signature (RFC 8032)
  • ML-DSA-87 signature (FIPS 204, post-quantum)
  • Base L2 anchor
  • 7-year retention floor (SEC 17 CFR § 240.17a-4, FINRA Rule 4370)

For SOC 2 / EU AI Act mapping, see compliance.md.

License

Proprietary · © 2026 EpochCore LLC · All Rights Reserved · Patent Pending.

See LICENSE.md.

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

sealed_for_ai-0.1.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

sealed_for_ai-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file sealed_for_ai-0.1.0.tar.gz.

File metadata

  • Download URL: sealed_for_ai-0.1.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for sealed_for_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6971a9f5e9f3a7dfaf9e56f86fc6e71ad3b953df2fbbdf27060cfadfb8cb1513
MD5 705dc625df90bc5ce2b34dcc434bd365
BLAKE2b-256 1de4c6ecd20447b736b8b8c340f6791c1cd9dd2eb62bc043fc7d2efc76346413

See more details on using hashes here.

File details

Details for the file sealed_for_ai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sealed_for_ai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for sealed_for_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a476f050c24a47e4493df34b619d3bb0819747f3a55a2c0f940c6d44468fcf60
MD5 097da52344c9f019d1caf4288657cc11
BLAKE2b-256 f8b4074afd2ace80c11f21b2311690f68a33551cd4162c5f3c1630f0f15d3795

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