Skip to main content

x402aff - Python

PyPI Python versions License: MIT

The x402aff kit (Python): an installable x402aff package with the one-object Affiliation facade on top. This is the implementation validated end-to-end on Base mainnet.

Install

pip install x402aff                  # from PyPI
pip install 'x402aff[cdp]'           # with the CDP discovery extra

Or from a checkout / straight from git, to track unreleased changes:

pip install ./python                 # from a clone, at the repo root
pip install '.[cdp]'                 # from inside python/, with the CDP extra
pip install 'x402aff[cdp] @ git+https://github.com/MiroShark/x402aff@main#subdirectory=python'

The cdp extra adds cdp-sdk, needed only for the CDP-index discovery path (monitor, aff.scan() / pending() / splits_payload()). Without it the request-time payTo and payout-calldata paths work fine.

Vendoring instead of installing works too - copy python/x402aff/ into your project as a subpackage; the modules import each other relatively, so nothing needs rewriting and none of the generic names (split, monitor, resolver) leak into your top-level namespace.

Use

from x402aff import Affiliation

aff = Affiliation(app_code="bc_yourcode", seller_payout="0xYourWallet")

# on your x402 route:
#   pay_to=aff.pay_to           per-request split, from the X-Builder-Code header
#   extensions=aff.extensions   declares your app code `a`

# release payouts, later (permissionless):
calls, balance = aff.release("bc_alice")

Full integration guide (money path, trust model, wiring, caveats): ../docs/INTEGRATION.md. The TypeScript port lives in ../ts/ and resolves the identical split address.

Modules

File Role
__init__.py The package's public surface (from x402aff import Affiliation, …).
affiliation.py Start here. The Affiliation facade wrapping everything below.
builder_code.py Declare a; decode a/s/w off a settle tx.
resolver.py Builder code → registered payout address (one eth_call).
split.py Builder code + price → the split plan (recipients + bps).
push_split.py The plan → 0xSplits calldata + counterfactual address.
payto.py Request-time payTo resolver. Cached, never raises.
distribute.py The (deploy + distribute) calldata to release a funded split.
monitor.py Which splits hold distributable funds (via CDP's index).
buyer_client.py Buyer-side extension that attaches s (via marked_service_codes).
cdp_sql.py · queries.sql CDP SQL API client + attribution queries.

Develop

pip install -e '.[cdp,dev]'   # editable install with the CDP + test extras
pytest                        # runs tests/ against the x402aff package

Metadata

Release files for x402aff 0.3.0

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

Source distribution (sdist)

Source distribution for x402aff 0.3.0
File Size Uploaded
x402aff-0.3.0.tar.gz 48.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for x402aff 0.3.0
File Interpreter ABI Platform
x402aff-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 89.5 kB

Release files / x402aff-0.3.0.tar.gz

Download URL x402aff-0.3.0.tar.gz
Size 48.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4b1841a049f12b28007479ebc2762339f0892e79c0038fcfb2846905ac01d951
BLAKE2b-256 checksum
How to use checksums
287bb064e116b074fe481474c836e7c8643242959edac422e1bab33743bcf75e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / x402aff-0.3.0-py3-none-any.whl

Download URL x402aff-0.3.0-py3-none-any.whl
Size 41.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9078284e329431acd28ffc5d09059e333ce7ff8133109b118f754d319b1c2986
BLAKE2b-256 checksum
How to use checksums
4d5e673e75f6cb31540cd8cd481f0d1d094e8f214b0dc41c333f212f0ce2a922
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

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