Skip to main content

Official Python SDK for Attestify OS — governed agent execution, x402-native payments, EIP-712 reputation credentials, escrow settlement, RAG semantic memory, predictive drift scoring, fleet health, and immutable receipts.

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: attestify_sdk-0.1.6.tar.gz
  • Upload date:
  • Size: 8.7 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.6.tar.gz
Algorithm Hash digest
SHA256 d0b0d43fd87ce2aaf5205158c3ef3c3f275fe46aeee13ebb4898f47479d3c6d7
MD5 6806af1d9fe5f166e299444c77d2b3e1
BLAKE2b-256 eaf5888637a299d7f0e01cc1f1160d27a90f7c6f19ab9578c9d5995eb89ffec9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: attestify_sdk-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 8.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 76ca59848f56b565477e03e16289363678564044eb4f0e51d60d4fc2a2f38f34
MD5 996e37455e2ee1dda4d400c0d9327c67
BLAKE2b-256 b710255e96e3ed20d9f4206d73eb7e04575edf16665257046c4489c06bc8dfb7

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