Skip to content

Python SDK

Install

Terminal window
pip install pqsafe-agent-pay

Requirements

  • Python ≥ 3.10
  • pqcrypto (ML-DSA-65 implementation — installed automatically)

Quick example

from pqsafe_agent_pay import (
generate_key_pair,
create_spend_envelope,
create_signed_envelope,
execute_agent_payment,
submit_to_ledger,
build_ledger_record,
)
from datetime import datetime, timedelta, timezone
# 1. Generate keypair
public_key, secret_key = await generate_key_pair()
# 2. Create envelope
envelope = create_spend_envelope(
max_amount=50,
currency="USD",
allowed_rails=["airwallex"],
allowed_recipients=["anthropic.com"],
valid_until=datetime.now(timezone.utc) + timedelta(hours=1),
agent_id="python-agent-v1",
)
# 3. Sign
signed = create_signed_envelope(envelope, secret_key)
# 4. Execute
result = await execute_agent_payment(signed, {
"recipient": "anthropic.com/billing",
"amount": 25,
"memo": "API credits",
})
# 5. Ledger
await submit_to_ledger(build_ledger_record(signed, result))
print(f"Status: {result.status}")
print(f"TX ID: {result.tx_id}")

CrewAI integration

from crewai import Agent, Task, Crew
from pqsafe_agent_pay.adapters.crewai import PQSafePaymentTool
payment_tool = PQSafePaymentTool(
envelope=signed_envelope,
allowed_recipients=["vendor@example.com"],
)
agent = Agent(
role="Procurement Agent",
goal="Pay approved invoices",
tools=[payment_tool],
verbose=True,
)

LangChain integration

from langchain.agents import initialize_agent, AgentType
from langchain_openai import ChatOpenAI
from pqsafe_agent_pay.adapters.langchain import PQSafePaymentTool
llm = ChatOpenAI(model="gpt-4o")
tools = [PQSafePaymentTool(envelope=signed_envelope)]
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.OPENAI_FUNCTIONS,
verbose=True,
)
agent.run("Pay the Anthropic invoice for $25")

Error handling

from pqsafe_agent_pay import PQSafeError
try:
result = await execute_agent_payment(signed, request)
except PQSafeError as e:
print(f"Code: {e.code}") # e.g. 'ENVELOPE_EXPIRED'
print(f"Message: {e.message}")

Status

The Python SDK is in beta. Core payment flows are stable; adapter integrations are actively developed. Track progress at github.com/PQSafe/pqsafe.