block402-core
Core implementation of x402 unlock protocol for autonomous agent payments.
A minimal x402 layer for one-time unlocks. Integrate in minutes with a boxed pay modal, a tiny JS SDK, and REST endpoints. Perfect for AI agents, APIs, dashboards, files, and premium tools.
Contract : coming soon on four.meme
Core implementation of x402 unlock protocol for autonomous agent payments.
HTTP client for x402 protocol with automatic payment session handling.
FastAPI middleware & decorators for protecting routes with x402 unlocks.
LangChain integration to gate tools/chains behind x402 payments.
Add the script: <script src="/sdk/block402.js"></script>, then call block402.init({apiKey: "YOUR_KEY"}) andblock402.unlock("product_123") to open the pay modal.
from fastapi import FastAPI
from block402_fastapi import payment_required
app = FastAPI()
@app.get("/premium-data")
@payment_required(
amount="0.10", # amount in USDC
payment_address="YOUR_WALLET_ADDRESS",
token_mint="USDC_MINT_ADDRESS"
)
async def get_premium_data():
return {"data": "Premium content"}from block402_client import X402AutoClient
from bnb.keypair import Keypair
client = X402AutoClient(wallet_keypair=Keypair())
# Automatically handles 402 and pays
response = await client.fetch(
"https://api.example.com/premium-data"
)
data = response.json()from langchain.chat_models import ChatOpenAI
from block402_langchain import create_x402_agent
from bnb.keypair import Keypair
# Load wallet
keypair = Keypair()
# Create agent with X402 support
agent = create_x402_agent(
wallet_keypair=keypair,
llm=ChatOpenAI(),
max_payment="5.0" # USD-equivalent cap for a single task
)
# Agent can now autonomously pay for API access
response = agent.run(
"Get the latest market data from https://api.example.com/premium-data "
"and summarize the key trends"
)from typing import TypedDict
from langgraph.graph import StateGraph, END
from block402_langgraph import payment_node, check_payment_required
from bnb.keypair import Keypair
class AgentState(TypedDict):
api_url: str
api_response: str
payment_required: bool
payment_completed: bool
wallet_keypair: Keypair
# Build workflow
workflow = StateGraph(AgentState)
def fetch_data(state: AgentState) -> AgentState:
# call the API; if it returns 402, mark it
required = check_payment_required(state["api_url"])
return {**state, "payment_required": required}
# Nodes
workflow.add_node("fetch_data", fetch_data)
workflow.add_node("pay", payment_node) # handles x402 payment & receipt
# Edges
workflow.set_entry_point("fetch_data")
workflow.add_conditional_edges(
"fetch_data",
lambda s: "pay" if s["payment_required"] else END,
{"pay": "fetch_data", END: END}
)
graph = workflow.compile()pip install block402-core
pip install block402-client
pip install block402-fastapi
pip install block402-langchain
pip install block402-langgraphnpm install @block402/core
npm install @block402/client
npm install @block402/express
npm install @block402/nextjs
npm install @block402/langchain
npm install @block402/langgraphAdd unlocks with a single decorator.
Built for autonomous agent workflows.
Payments settle in ~200ms.
No API keys or subscriptions needed.
FastAPI, Express, LangChain, LangGraph.
BNB first, multi-chain ready.
AI Agent requests premium content
Server returns payment request
Agent sends payment to blockchain
Server confirms payment on-chain (~200ms)
Agent retries with payment proof
Server returns premium content
OPEN SOURCE • BUILT FOR BNB