Skip to main content

Official Python SDK for Attestify OS — governed agent execution in a few lines.

Project description

attestify-sdk — Python

Add governed lane execution to any Python codebase in a few lines.

Install

pip install attestify-sdk

Or directly from the repo while the package is in early access:

pip install "git+https://github.com/attestifyagent/attestify-os.git#subdirectory=sdk/python"

Quick start

import os
from attestify import create_client

client = create_client(api_key=os.environ["ATTESTIFY_API_KEY"])

result = client.run_lane(
    input="Summarise the latest advances in quantum error correction.",
    lane_id="researcher-v2",
    session_id="my-session-001",
    options={"verify": True, "write_memory": True},
)

print(result.output)             # lane response text
print(result.receipt.run_id)     # unique run identifier
print(result.receipt.evidence)   # full EvidenceBundle dataclass
print(result.receipt.pricing)    # cost breakdown

Features

  • create_client(api_key) — configure once, use anywhere
  • client.run_lane(input, ...) — single call handles sessions, retries, idempotency
  • Typed receiptsRunReceipt and EvidenceBundle dataclasses with full field coverage
  • Auto-routing — omit lane_id and Attestify picks the best lane for the task
  • Idempotency — pass idempotency_key to guarantee exactly-once execution
  • Budget controls — pass constraints={"max_cost_usdc": 0.05} to cap spend per run
  • Webhook support — pass options={"webhook_url": "..."} for async delivery
  • Zero dependencies — stdlib only (urllib, json, uuid)

API Reference

create_client(api_key, base_url?, max_retries?, timeout_s?)

Parameter Type Default Description
api_key str required Your Attestify API key (ATTESTIFY_API_KEY)
base_url str https://attestify-os.vercel.app Override the endpoint
max_retries int 2 Retries on transient 5xx errors
timeout_s float 60.0 Per-attempt timeout in seconds

client.run_lane(input, ...)

Parameter Type Description
input str Required. The task or intent
lane_id str Optional — omit to auto-route
session_id str Memory / conversation continuity ID
idempotency_key str Prevents duplicate charges for the same key
context dict Freeform context forwarded to the lane
constraints dict Budget / SLA constraints (see below)
options dict Runtime flags (see below)

Returns RunLaneResult(output, receipt, raw).

constraints fields:

constraints={
    "max_cost_usdc": 0.05,    # abort if estimated cost exceeds this
    "max_latency_ms": 10000,  # abort if estimated latency exceeds this
    "budget_id": "proj-abc",  # link to a named budget envelope
}

options fields:

options={
    "verify": True,                    # run output verification (default False)
    "write_memory": True,              # persist session memory (default False)
    "include_memory": True,            # inject prior memory into context
    "webhook_url": "https://...",      # async result delivery
}

client.get_receipt(loop_id)

Fetch a stored receipt by its loop_id.

receipt = client.get_receipt("loop_abc123")
print(receipt.verification)   # grade, score, output_hash
print(receipt.settlement)     # on-chain tx hash if x402 used

Returns RunReceipt.


RunReceipt fields

Field Type Description
run_id str Unique run identifier
loop_id str Persistent loop/session receipt ID
lane_id str Lane that handled the run
lane_name str Human-readable lane name
output str Lane response text
paid bool Whether x402 payment was used
subscription_used bool Whether an API key subscription covered this run
evidence EvidenceBundle Full governance evidence bundle
verification dict | None Verification grade, score, output hash
pricing dict Cost breakdown in USDC
settlement dict | None On-chain settlement details
receipt_url str Shareable receipt permalink

Available lanes

lane_id Description
researcher-v2 Deep research and synthesis
analyst-v1 Data analysis and structured output
coder-v1 Code generation and review
writer-v1 Long-form and structured writing
strategist-v1 Strategic planning and frameworks
support-v1 Customer support and triage
comedian-v1 Creative and entertainment tasks

Omit lane_id entirely to let Attestify auto-route based on your input.

Environment variables

ATTESTIFY_API_KEY=atst_live_...

Async usage

The client is synchronous by design (zero dependencies). For async workflows:

import asyncio
from attestify import create_client

client = create_client(api_key=os.environ["ATTESTIFY_API_KEY"])

async def main():
    result = await asyncio.to_thread(
        client.run_lane,
        input="Analyse Q2 revenue trends",
        lane_id="analyst-v1",
    )
    print(result.output)

asyncio.run(main())

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

attestify_sdk-0.1.3.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

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

attestify_sdk-0.1.3-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file attestify_sdk-0.1.3.tar.gz.

File metadata

  • Download URL: attestify_sdk-0.1.3.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for attestify_sdk-0.1.3.tar.gz
Algorithm Hash digest
SHA256 37f2312cd5558e367aa6f6e13ace6d0fefb01e5f78d903a827735d61a882d6c9
MD5 4f4b31585da44f7b4cbea9253a512bff
BLAKE2b-256 db8bf6a9e24d3ae8fa1b66699e412f85ef58a00af58e72c4a40bf5a32026bab0

See more details on using hashes here.

File details

Details for the file attestify_sdk-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: attestify_sdk-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for attestify_sdk-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f6d80ab81ebdb5654ae2e9768587d87f6101461c28b76aa16713626d084596dd
MD5 96832d6d79cc9b87a74bd32857dacf9e
BLAKE2b-256 c0344ca3b9828221def61f4c4cb3a3e1b95149b5ce5c3450d101b6daff6d4142

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