| name | algorand-x402-python |
| description | Builds x402 HTTP-native payment applications on Algorand using Python. Covers clients (httpx, requests), servers (FastAPI, Flask), facilitators, Bazaar discovery, and the x402-avm library. Use when implementing x402 payment flows in Python, creating payment-gated APIs, building x402 facilitators, or integrating the x402-avm package. |
x402 on Algorand - Python
Build x402 HTTP-native payment applications on Algorand with Python. Use the reference files below for detailed guidance on each component.
Python Quick Start
The x402-avm package on PyPI bundles core protocol, AVM mechanism, HTTP clients, and server middleware. Pick the extras you need:
pip install "x402-avm[avm]"
pip install "x402-avm[fastapi,avm]"
pip install "x402-avm[flask,avm]"
pip install "x402-avm[httpx,avm]"
pip install "x402-avm[requests,avm]"
pip install "x402-avm[extensions,avm]"
pip install "x402-avm[all]"
Distribution name is x402-avm but the import root is x402 (not x402_avm).
Register AVM Scheme
Every component registers the AVM exact scheme unconditionally — no environment variable guards:
from x402 import x402Client
from x402.mechanisms.avm.exact import ExactAvmScheme
client = x402Client()
client.register("algorand:*", ExactAvmScheme(signer=my_signer))
from x402.server import x402ResourceServer
from x402.mechanisms.avm.exact import ExactAvmServerScheme
server = x402ResourceServer()
server.register("algorand:*", ExactAvmServerScheme())
from x402 import x402Facilitator
from x402.mechanisms.avm.exact import ExactAvmFacilitatorScheme
facilitator = x402Facilitator()
facilitator.register("algorand:*", ExactAvmFacilitatorScheme(signer=my_signer))
The register_exact_avm_client/server/facilitator helpers from x402.mechanisms.avm.exact are also valid.
Python algosdk Encoding
Python algosdk's msgpack_decode() expects base64 strings, msgpack_encode() returns base64 strings. Boundary conversion: msgpack_decode(base64.b64encode(raw_bytes).decode()) / base64.b64decode(msgpack_encode(obj)).
Reference Guide
Navigate to the appropriate reference based on your task. Each topic has three files:
{name}.md — Step-by-step implementation guide
{name}-reference.md — API details and type signatures
{name}-examples.md — Complete, runnable code samples
Explaining x402 for Python
Understand the x402-avm Python package structure, extras installation ([avm], [fastapi], [flask], [httpx], [requests], [extensions], [all]), signer protocols, async vs sync variants, and algosdk encoding boundaries.
Building Clients
Build HTTP clients with httpx (async) or requests (sync) that automatically handle 402 payments. Covers wrapHttpxWithPayment, wrapRequestsWithPayment, ClientAvmSigner for payment signing.
Building Servers
Build payment-protected servers with FastAPI (async) or Flask (sync) middleware. Covers route pricing, PaymentMiddlewareASGI, Flask PaymentMiddleware, and multi-network support.
Building Facilitators and Bazaar Discovery
Build facilitator services that verify and settle Algorand payments on-chain. Covers FacilitatorAvmSigner protocol, register_exact_avm_facilitator, FastAPI facilitator endpoints (/verify, /settle, /supported), and Bazaar discovery extension for automatic cataloging and indexing of payment-gated APIs (declare_discovery_extension, extract_discovery_info, bazaar_resource_server_extension).
Low-Level SDK Usage
Use x402-avm core components and AVM mechanism directly for custom integrations. Covers x402Client, x402ResourceServer, x402Facilitator, AVM signer protocols, constants, utilities, transaction encoding, and fee abstraction.
Python Package Quick Reference
One PyPI distribution (x402-avm) provides everything via extras. Import root is x402.
| Install spec | Purpose |
|---|
x402-avm[avm] | Core protocol + Algorand SDK (py-algorand-sdk) |
x402-avm[httpx,avm] | Async HTTP client wrapper (httpx) with automatic 402 payment handling |
x402-avm[requests,avm] | Sync HTTP client wrapper (requests) with automatic 402 payment handling |
x402-avm[fastapi,avm] | FastAPI async payment middleware |
x402-avm[flask,avm] | Flask sync payment middleware |
x402-avm[extensions,avm] | Bazaar discovery extension |
x402-avm[all] | All extras (EVM, SVM, AVM, all servers and clients, extensions) |
How to Use This Skill
- Start here to understand which reference you need
- Read the
{name}.md file for step-by-step implementation guidance
- Consult
{name}-reference.md for API details
- Use
{name}-examples.md for complete, runnable code samples