PYTHON SDK
Python SDK
The official Python SDK for the Truthlocks verification platform. Type-safe, with automatic retries and comprehensive error handling.
Installation
pip install truthlock
Requires Python 3.9 or later. Uses httpx for HTTP requests.
Quick Start
from truthlock import TruthlockClient, Algorithm, Verdict
client = TruthlockClient(api_key="your-api-key")
# Create an issuer
issuer = client.issuers.create(
name="My Organization",
legal_name="My Organization Inc.",
)
# Register a key
key = client.keys.register(
issuer_id=issuer.id,
kid="key-1",
alg=Algorithm.ED25519.value,
public_key_b64url="your-base64url-public-key",
)
# Mint an attestation
attestation = client.attestations.mint(
issuer_id=issuer.id,
kid="key-1",
alg=Algorithm.ED25519.value,
payload_b64url="base64url-encoded-payload",
)
print(f"Attestation: {attestation.attestation_id}")
# Verify
result = client.verify.verify_online(
attestation_id=attestation.attestation_id,
)
if result.verdict == Verdict.VALID:
print("Verified successfully")Client Configuration
client = TruthlockClient(
api_key="your-api-key",
base_url="https://api.truthlocks.com", # default
environment="production", # or "sandbox"
timeout=30.0, # seconds
max_retries=3, # auto-retry on failures
)Error Handling
from truthlock import TruthlockClient, TruthlockError, NotFoundError
client = TruthlockClient(api_key="your-key")
try:
att = client.attestations.get("nonexistent-id")
except NotFoundError:
print("Attestation not found")
except TruthlockError as e:
print(f"API error {e.status_code}: {e.error_code} - {e}")Context Manager
with TruthlockClient(api_key="your-key") as client:
issuers = client.issuers.list()
for issuer in issuers:
print(f"{issuer.name} ({issuer.id})")API Reference
Issuers
| client.issuers.create(name, ...) | Create a new issuer |
| client.issuers.list(limit, offset) | List issuers |
| client.issuers.get(issuer_id) | Get issuer by ID |
| client.issuers.trust(issuer_id) | Trust an issuer |
Attestations
| client.attestations.mint(...) | Mint a new attestation |
| client.attestations.get(id) | Get attestation details |
| client.attestations.list(limit, offset) | List attestations |
| client.attestations.revoke(id, reason) | Revoke an attestation |
| client.attestations.proof_bundle(id) | Get proof bundle |
Verify
| client.verify.verify_online(attestation_id, payload_b64url) | Verify attestation online |
Requirements
| Python | >= 3.9 |
| Package | truthlock |
| Auth | Tenant API key (X-API-Key header) |
| Dependencies | httpx |