Skip to content

hypeprinter007-stack/x402-agent-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x402 Agent Kit

Pay for any API with USDC. The x402 payment SDK for AI agents.

No API keys. No accounts. No KYC. Just a Base wallet with USDC.

Install

pip install x402-agent-kit

Quickstart

import asyncio
from x402_agent_kit import SignalFuse

sf = SignalFuse(wallet_key="0xYOUR_PRIVATE_KEY")
signal = asyncio.run(sf.get_signal("BTC"))
print(signal)

That's it. The client handles x402 payment negotiation automatically -- it intercepts the 402 response, signs a USDC payment on Base, and retries.

Use with any x402 API

PayableClient works with any x402-enabled endpoint, not just SignalFuse:

from x402_agent_kit import PayableClient

client = PayableClient("0xYOUR_PRIVATE_KEY")

# Any x402 API -- the client handles payment automatically
resp = await client.get("https://some-x402-api.com/data")
print(resp.json())

# Or use a base URL
client = PayableClient("0xKEY", base_url="https://some-x402-api.com")
resp = await client.get("/data")

SignalFuse

SignalFuse is a trading signal API built on x402. The SignalFuse class is a convenience wrapper:

sf = SignalFuse(wallet_key="0xKEY")

signal = await sf.get_signal("ETH")     # Latest signal for ETH
regime = await sf.get_regime()           # Macro regime classification
sentiment = await sf.get_sentiment("SOL")  # Sentiment data
batch = await sf.get_batch(["BTC", "ETH", "SOL"])  # Multiple symbols

Framework Examples

CrewAI

from crewai import Agent
from crewai.tools import BaseTool
from x402_agent_kit import SignalFuse
import asyncio

class SignalFuseTool(BaseTool):
    name: str = "signalfuse_signal"
    description: str = "Fetch a trading signal for a crypto symbol via x402."
    wallet_key: str

    def _run(self, symbol: str) -> dict:
        sf = SignalFuse(wallet_key=self.wallet_key)
        return asyncio.run(sf.get_signal(symbol))

tool = SignalFuseTool(wallet_key="0xKEY")
agent = Agent(role="Trader", goal="Find signals", tools=[tool])

See examples/crewai_tool.py for the full example.

LangChain

from langchain_core.tools import BaseTool
from x402_agent_kit import SignalFuse
import asyncio

class SignalFuseTool(BaseTool):
    name: str = "signalfuse_signal"
    description: str = "Fetch a trading signal for a crypto symbol via x402."
    wallet_key: str

    def _run(self, symbol: str) -> dict:
        sf = SignalFuse(wallet_key=self.wallet_key)
        return asyncio.run(sf.get_signal(symbol))

tool = SignalFuseTool(wallet_key="0xKEY")

See examples/langchain_tool.py for the full example.

Why x402?

x402 is a payment protocol built on HTTP status code 402 (Payment Required). When a server returns 402, the client automatically signs a USDC payment on Base and retries the request. The server verifies the payment and returns data.

This means:

  • No API keys -- your wallet IS your identity
  • No accounts -- no signup forms, no email verification
  • No KYC -- permissionless access to any x402 API
  • Pay per request -- no subscriptions, no tiers, no overage charges
  • Works everywhere -- any HTTP client that supports x402

Compare this to traditional API payment flows (Stripe, MoonPay, etc.) where you need to create an account, add a payment method, manage API keys, handle webhooks for billing events, and deal with subscription tiers. With x402, your agent just needs a wallet with USDC.

Links

License

MIT

About

Pay for any API with USDC on Base. The x402 client SDK for AI agents.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages