Skip to main content

Secure x402 client SDK with agentic payments for buyers and sellers

Project description

x402-secure

Open-source x402 client SDKs for buyers and sellers that integrate with a unified gateway for risk session/trace and a seller proxy for verify/settle.

  • Buyer SDK: create risk session/trace via AGENT_GATEWAY_URL, build X-PAYMENT-SECURE from OpenTelemetry context.
  • Seller SDK: call proxy /x402/verify and /x402/settle with a simple verify_then_settle(...) wrapper.

Fail-fast principles:

  • Non-200 responses raise immediately (HTTPStatusError).
  • Invalid or missing traceparent context raises.
  • Header size limit enforced (X-PAYMENT-SECURE ≤ 4096 bytes).

Install

pip install x402-secure

Quickstart

import os, asyncio
from x402_secure_client import BuyerConfig, BuyerClient

async def main():
    buyer = BuyerClient(BuyerConfig(
        seller_base_url=os.getenv("SELLER_BASE_URL", "http://localhost:8010"),
        agent_gateway_url=os.getenv("AGENT_GATEWAY_URL", "http://localhost:8000"),
        network=os.getenv("NETWORK", "base-sepolia"),
        buyer_private_key=os.getenv("BUYER_PRIVATE_KEY"),
    ))

    # Create risk session + trace (single client!)
    # agent_did: currently wallet address, future: EIP-8004 DID (did:eip8004:chain:contract:tokenId)
    sid = (await buyer.create_risk_session(app_id=None, device={"ua": "oss-example"}))['sid']
    tid = await buyer.store_agent_trace(
        sid=sid,
        task="Buy BTC price",
        params={"symbol": "BTC/USD"},
        environment={"network": os.getenv("NETWORK", "base-sepolia")},
    )

    # Execute payment with trace ID
    res = await buyer.execute_paid_request(
        endpoint="/api/market-data",
        task="Buy BTC price",
        params={"symbol": "BTC/USD"},
        sid=sid,
        tid=tid,
    )
    print(res)

asyncio.run(main())

See examples/ for runnable scripts.

License

Apache-2.0

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

x402_secure-0.1.4.tar.gz (162.5 kB view details)

Uploaded Source

Built Distribution

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

x402_secure-0.1.4-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file x402_secure-0.1.4.tar.gz.

File metadata

  • Download URL: x402_secure-0.1.4.tar.gz
  • Upload date:
  • Size: 162.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for x402_secure-0.1.4.tar.gz
Algorithm Hash digest
SHA256 42c5c412e6b34247ffe4163bb3da0405bd78f5b9acd44634e1de92af132ad52e
MD5 61bd21ae7c8ad1e0dd5ee5605dcaadf6
BLAKE2b-256 944cc1b9d3c82552a09e50b5945cbfd8a895062e3c1f8f9f14f3a96e1c4f650b

See more details on using hashes here.

File details

Details for the file x402_secure-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: x402_secure-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for x402_secure-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6a175ebd7a708d80ef15677606c16eec8843e69c4186c08670eb7fb52fff5a92
MD5 14f1ebe9296d4b7d9d6feb7326ffde72
BLAKE2b-256 f4b045f61b0877e81c1e1239ad997d497520e6dfc39df72cc0c34904fa0badfe

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