x402 payment transport for the Anthropic Python SDK
Project description
x402-anthropic-python
x402 payment transport for the Anthropic Python SDK.
Wrap the standard anthropic.Anthropic client with a crypto wallet. When the server responds with HTTP 402, the library automatically signs a USDC payment and retries — zero code changes needed. Follows the pattern introduced by qntx/x402-openai-python.
Install
pip install "x402-anthropic[evm]" # EVM (Base, Ethereum)
pip install "x402-anthropic[svm]" # SVM (Solana)
pip install "x402-anthropic[all]" # all chains
Quick start
from x402_anthropic import X402Anthropic, EVMWallet
wallet = EVMWallet(private_key="0x...")
client = X402Anthropic(wallet=wallet, base_url="https://your-x402-gateway.example.com")
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)
Swap EVMWallet for SVMWallet to pay on Solana — the API is identical.
Usage
Async + streaming
from x402_anthropic import AsyncX402Anthropic, EVMWallet
import asyncio
async def main():
wallet = EVMWallet(private_key="0x...")
async with AsyncX402Anthropic(wallet=wallet, base_url="...") as client:
async with client.messages.stream(...) as stream:
async for text in stream.text_stream:
print(text, end="", flush=True)
asyncio.run(main())
Payment policies
from x402 import preferNetwork, maxAmount
client = X402Anthropic(
wallet=wallet,
policies=[preferNetwork("eip155:8453"), maxAmount(1_000_000)], # Base, max $1 USDC
base_url="...",
)
API reference
X402Anthropic / AsyncX402Anthropic
Drop-in replacement for anthropic.Anthropic / anthropic.AsyncAnthropic.
| Parameter | Type | Description |
|---|---|---|
wallet |
Wallet |
Wallet adapter for signing payments |
policies |
list[Policy] |
Payment policies (chain preference, amount cap) |
base_url |
str |
Gateway URL (required — points at your x402 server) |
All standard Anthropic kwargs (timeout, max_retries, api_key, …) are forwarded.
Wallet adapters
| Class | Chain | Extra |
|---|---|---|
EVMWallet(private_key=…) |
Base, Ethereum, any EVM | x402-anthropic[evm] |
SVMWallet(private_key=…) |
Solana | x402-anthropic[svm] |
Implement the Wallet base class to add a new chain.
Low-level transports
X402Transport / AsyncX402Transport — httpx transports for manual wiring:
import httpx
from x402_anthropic._transport import X402Transport
x402_http = wallet.build_sync()
transport = X402Transport(x402_http, httpx.HTTPTransport())
client = httpx.Client(transport=transport)
Examples
EVM_PRIVATE_KEY="0x..." python examples/basic.py
EVM_PRIVATE_KEY="0x..." python examples/streaming.py
Related
- qntx/x402-openai-python — OpenAI SDK equivalent
- coinbase/x402 — x402 protocol spec and reference implementation
- @x402/fetch — TypeScript equivalent
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file x402_anthropic-0.1.2.tar.gz.
File metadata
- Download URL: x402_anthropic-0.1.2.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e77e3cf9fbb76aa6fa03266d0d0c9d464cc9cf8037c6f4637727c5be1b4532fc
|
|
| MD5 |
4ade31449eaf92dc7a05f49e3060dafe
|
|
| BLAKE2b-256 |
6d20858908c4de4fd3614119014474faa9f6f17c8e90abccfb2adcdbbabe6db5
|
File details
Details for the file x402_anthropic-0.1.2-py3-none-any.whl.
File metadata
- Download URL: x402_anthropic-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3629ed8149e4854c11ebc8f177727cd5ad07d1f0ead64e81c7f594fdfe44adf2
|
|
| MD5 |
0d83ace98faabbc7d155968404a42699
|
|
| BLAKE2b-256 |
6e5e743a2e33358598b9bc6bf6a35ea73774250681c353722708064137879160
|