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.5.tar.gz (8.4 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.5-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: attestify_sdk-0.1.5.tar.gz
  • Upload date:
  • Size: 8.4 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.5.tar.gz
Algorithm Hash digest
SHA256 790e4ee2a0fc1cdc25843708192b81250f89202e499cac5fd20ebdec7dc6b813
MD5 33865b37909e9f153951c495a2793061
BLAKE2b-256 f30aa4136196eec9a8e40a739662a32bf82ab07d493cc9e16dd69de39590d105

See more details on using hashes here.

File details

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

File metadata

  • Download URL: attestify_sdk-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 8.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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b732bcd58d744d7e97df1859aa517146ad00aa8dade9170071b67786e5c2f2f8
MD5 efb82d977692553402ff14e608e0de34
BLAKE2b-256 e0013b8108f254913d6714795e4432c17288060ce48bb805febe7df944a32b35

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