Developer Guide
If you use the OpenAI SDK, you are 3 lines away. Every call gets a signed, verifiable receipt.
2. Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://atherion-gateway-924270273440.us-central1.run.app/v1",
api_key="atk_your_key_here",
)
response = client.chat.completions.create(
model="gpt-5.5", # or claude-opus-4-8, gemini-3.1-pro-preview,
messages=[ # meta/llama-3.3-70b-instruct, ...
{"role": "user", "content": "Explain provenance in one sentence."}
],
)
print(response.choices[0].message.content)
# Signed receipt in response headers: x-attestic-receipt-id3. Verify a receipt offline
Every call returns x-attestic-receipt-id. Fetch the bundle and verify the Ed25519 signature + Merkle proof, no Attestic access required.
import hashlib, urllib.request, json
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
GW = "https://atherion-gateway-924270273440.us-central1.run.app"
bundle = json.load(urllib.request.urlopen(urllib.request.Request(
f"{GW}/v1/receipts/YOUR_RECEIPT_ID",
headers={"Authorization": "Bearer atk_your_key"}
)))
# Verify Ed25519 signature
pk = Ed25519PublicKey.from_public_bytes(bytes.fromhex(bundle["public_key"]))
pk.verify(bytes.fromhex(bundle["signature"]), bytes.fromhex(bundle["signed_bytes"]))
# Verify Merkle inclusion
h = bytes.fromhex(bundle["merkle"]["leaf_hash"])
for step in bundle["merkle"]["proof"]:
sib = bytes.fromhex(step["sibling"])
h = hashlib.sha256((sib + h) if step["side"] == "left" else (h + sib)).digest()
assert h.hex() == bundle["merkle"]["root"] # ✓ verified offlineModels
Route by model id: gpt-5.5, claude-opus-4-8, gemini-3.1-pro-preview, meta/llama-3.3-70b-instruct. GET /v1/models?live=1 returns the real current list from each provider.
Streaming
stream:true works across all providers. The final SSE chunk includes attestic_provenance (receipt_id, entry_hash, signature, cost_usd) inline.
Tools & JSON mode
OpenAI-format tools translate to each provider's native schema. response_format:json_schema works on OpenAI and Gemini natively; best-effort on Anthropic.
Embeddings
POST /v1/embeddings routes text-embedding-3-* to OpenAI and gemini-embedding-* to Gemini. Same auth, same receipts, real token metering.