Skip to main content

x402-trinity

Let a Python process pay for things by itself — with hard spending limits, no hosted wallet service, and no changes to the code doing the fetching.

Standard library only. No dependencies, at all.

pip install x402-trinity

Why

When a script hits a paid resource it gets 402 Payment Required. Without something to handle that, the request simply fails.

x402-trinity handles it: reads the challenge, checks it against limits you set, signs, retries. All of it locally — no hosted wallet service, no third-party API, and the key never leaves your process.

Gas exists but the payer doesn't pay it — under EIP-3009 the facilitator submits the transfer, so the wallet only ever needs USDC.

Use

import os
from x402_trinity import X402Client, Policy

client = X402Client(
    private_key=os.environ["X402_PRIVATE_KEY"],
    policy=Policy(
        max_amount_per_request=5000,      # 0.005 USDC per call   (REQUIRED)
        total_budget=1_000_000,           # 1.00 USDC lifetime    (REQUIRED)
        allow_hosts=["api.example.com"],
    ),
)

body = client.urlopen("https://api.example.com/data").read()

Or as a decorator, so payment-unaware code just works:

from x402_trinity import x402_telemetry, Policy

@x402_telemetry(private_key=KEY, policy=Policy(max_amount_per_request=5000,
                                               total_budget=1_000_000))
def harvest():
    return urllib.request.urlopen("https://sensor.local/v1/lidar").read()

Inside the decorated function urllib.request.urlopen pays 402s automatically. Existing code is untouched.

Scope

Buyer only. To charge for a resource, use the TypeScript seller in the same project.

Base mainnet + USDC. Other EVM chains work by passing custom_chains to X402Client. Check any entry against the deployed contract first: call DOMAIN_SEPARATOR() and confirm it equals what this library computes. A wrong name or version produces a signature that looks valid and the contract rejects.

Limits are not optional

max_amount_per_request and total_budget are required arguments. An auto-payer without caps is a money leak controlled by whoever runs the server on the other end. Set allow_hosts and nothing else can be paid, however convincing the challenge looks.

Before you use it with real money

This software signs payment authorizations. You are responsible for the funds in any wallet you configure it with, for the limits you set, and for the behaviour of any autonomous process you connect to it. Use a dedicated wallet holding only what you would accept losing.

License

Business Source License 1.1 — source-available, converts to MIT on 2029-08-25. See the LICENSE file in the repository.

Metadata

Release files for x402-trinity 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for x402-trinity 0.2.1
File Size Uploaded
x402_trinity-0.2.1.tar.gz 20.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for x402-trinity 0.2.1
File Interpreter ABI Platform
x402_trinity-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 40.9 kB

Release files / x402_trinity-0.2.1.tar.gz

Download URL x402_trinity-0.2.1.tar.gz
Size 20.8 kB
Tags Source
SHA-256 checksum
How to use checksums
86dc81d7166dcf4469060166fcd1c9a5a4589800d88cfa69101a8756844bd3f4
BLAKE2b-256 checksum
How to use checksums
ab42adfdb98ecbfbc43eb0180418db05f83f675373f286187e93b6958bedf721
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / x402_trinity-0.2.1-py3-none-any.whl

Download URL x402_trinity-0.2.1-py3-none-any.whl
Size 20.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7eebcf5609de909d43a04afbf5ee18aa5e7c2dd51ff6245a44e62282a082375a
BLAKE2b-256 checksum
How to use checksums
584b019c94f25d025cacca21e1cefe7f56ab6c64339b29d739f7405130c3dc72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release history Release notifications | RSS feed

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page