Skip to main content

Pay-per-request access to any service for AI agents, over the open x402 protocol. Declare an intent, discover a provider, and settle on-chain with a single signature.

Project description

agent-intent-x402

Pay-per-request access to any service, for AI agents — over the open x402 protocol.

Declare what you want, discover who provides it, and pay for the request on-chain with a single signature. No accounts, no API keys, no platform lock-in. Your agent carries a wallet; the service quotes a price with HTTP 402 Payment Required; the client signs and settles. Because payment speaks the open x402 standard, the same client works against any compliant gateway.

pip install agent-intent-x402

Quick start

Give the client a wallet and it settles 402 challenges automatically — sign the payment, retry the request, return the result.

from agent_intent_x402 import AIPClient, Wallet, IntentType

wallet = Wallet(private_key="0x...")   # your agent's EVM key

with AIPClient(wallet=wallet, endpoint="https://api.example.com") as client:
    # Resolve an intent to the best-ranked provider. If the gateway
    # answers 402, the wallet pays and the call transparently retries.
    result = client.resolve(
        IntentType.CHAT_COMPLETION,
        constraints={"max_price_usd": 0.01},
        preferences={"optimize_for": "cost"},
    )
    best = result.best_match
    print(f"{best.provider_id} · {best.model} · score={best.score}")

The private key can also be supplied via the AIP_WALLET_KEY environment variable, in which case Wallet() needs no arguments.

How payment works

x402 turns HTTP 402 Payment Required into a usable payment step:

  1. The client makes a normal request.
  2. If payment is due, the gateway replies 402 with the accepted terms (amount, asset, recipient, network) in the body.
  3. The wallet signs an EIP-3009 TransferWithAuthorization for those exact terms — an EIP-712 typed signature, no gas, no on-chain transaction from your side.
  4. The client retries with a PAYMENT-SIGNATURE header. The gateway verifies and settles on-chain, then serves the response.

Payments default to USDC on Base (eip155:8453); the network and asset come from the gateway's 402 terms, so the wallet always signs exactly what it is asked to pay.

Resolve, then execute

resolve returns ranked matches so you can inspect price and score before committing. execute resolves and runs the intent in one call, proxying the provider response back:

response = client.execute(
    IntentType.CHAT_COMPLETION,
    payload={"messages": [{"role": "user", "content": "Hello"}]},
    preferences={"optimize_for": "quality"},
)

Natural-language intents

Let the gateway interpret a free-form request. It may resolve directly or reply with a clarifying question for a multi-turn exchange:

reply = client.resolve_natural("I need to transcribe an audio file cheaply")
if reply.get("status") == "clarify":
    print(reply["message"])   # follow-up question
else:
    print(reply["matches"])   # resolved providers

Discovery

# Every intent type the gateway understands.
client.list_intent_types()

# Providers available for a given intent.
client.discover(intent_type=IntentType.IMAGE_GENERATION)

# The full provider catalogue.
client.list_providers()

Intent types

chat_completion, image_generation, video_generation, text_to_speech, web_search, knowledge_search, prompt_optimization, document_processing, utility, code_execution, data_analysis, translation, code_generation.

Errors

All exceptions derive from AIPError:

  • AIPConnectionError — the request never reached the gateway.
  • AIPAuthError401/403, missing or invalid credentials.
  • AIPPaymentRequiredError402, payment required and no wallet was configured (or the payment was rejected).
  • AIPAPIError — any other non-2xx response (status_code, detail, body).

WalletError is raised when a 402 challenge cannot be signed (missing key, malformed terms).

Protocol

The intent wire format and endpoint contract are defined in the Agent Intent Protocol specification. The payment layer follows the open x402 protocol.

License

MIT

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

agent_intent_x402-0.2.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

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

agent_intent_x402-0.2.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file agent_intent_x402-0.2.0.tar.gz.

File metadata

  • Download URL: agent_intent_x402-0.2.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for agent_intent_x402-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5219a90a49b88050baed5b1e4a2425d342d11945552a534d6c9f3757c1dbdafd
MD5 bd04a1d73af39d1364f3f086975edc15
BLAKE2b-256 c5a46221f0ad875df85242d5b818d8b050f81994673034acde44b7c3936359cf

See more details on using hashes here.

File details

Details for the file agent_intent_x402-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_intent_x402-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55c8b2a3cbc38fbfb81ee657433b6a587d8efd04e67f2471d7b5d7d9812bf22c
MD5 0ae8dbe3b1a3f114aef53715e0ad081d
BLAKE2b-256 73fb1b945aded8204ef1e56d33237a913e96e99e604f467f8abbd2062978df4c

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