मुख्य सामग्रीकडे जा
LANGCHAIN इंटिग्रेशन

LangChain पेमेंट इंटिग्रेशन.

कोणत्याही LangChain एजंटसाठी USDC पेमेंट्स जोडा. वास्तविक Python पॅकेज त्याला वॉलेट टूल्स देते - पाठवा, निपटारा करा, आणि वाचा - काही ओळींमध्ये.

लघु उत्तर

Blockchain0x एक खरे Python package, , देते जे LangChain agent ला native wallet tools पुरवते: Base वर USDC पाठवा, on-chain proof सह invoice settle करा, आणि wallets व transactions वाचा. ते install करा, set करा, कॉल करा, आणि tools तुमच्या agent कडे द्या. TypeScript मध्ये? npm adapter नाही - x402 client ला LangChain.js tool मध्ये wrap करा.

WRAPPER का अस्तित्वात आहे

Blockchain0x HTTP API वर एक पातळ स्तर.

blockchain0x-langchain मधील प्रत्येक टूल अधिकृत blockchain0x कोर SDK वर एक पातळ रॅपर आहे. पुनः कार्यान्वित केलेले REST किंवा x402 लॉजिक नाही, की देखभाल नाही: अडॅप्टर तुमची API की बॅकएंडकडे पुढे पाठवतो आणि स्वतःचा कोणताही गुप्त ठेवत नाही. create_blockchain0x_toolset(client) LangChain ला पाच टूल्स देते - एक पेमेंट पाठवा, एक इनव्हॉईस वसुली करा, एक वॉलेट वाचा, वॉलेटची यादी करा, एक व्यवहार वाचा - प्रत्येक आधीच टाइप केलेला आणि स्कोप केलेला आहे.

तुम्हाला हवे असल्यास raw API किंवा core SDK थेटही call करू शकता. adapter हा सर्वात कमी अडथळ्याचा मार्ग आहे; API हीच contract आहे. blockchain0x-langchain ला तो support करत असलेल्या langchain-core range वरच pin करा, दोन्हींच्या latest आवृत्त्यांच्या मागे धावू नका.

इंस्टॉलेशन

एक स्थापना. एक वातावरणीय चल. तयार.

पॅकेजला Python 3.9 किंवा नवीनतम आवश्यक आहे. हे मुख्य blockchain0x SDK आणि langchain-core यांना अवलंबन म्हणून आणते; काहीही जोडण्याची आवश्यकता नाही.

इंस्टॉल करा
pip install blockchain0x-langchain
पर्यावरण चल
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

BLOCKCHAIN0X_API_KEY हे तुमच्या Blockchain0x डॅशबोर्डमधील sk_test_ testnet किंवा sk_live_ mainnet की आहे. adapter ला लागणारे तेच एकमेव variable आहे; तो की backend कडे forward करतो आणि स्वतःकडे कोणतेही secret ठेवत नाही. खाली दाखवलेल्या webhook handler साठी तुम्ही BLOCKCHAIN0X_WEBHOOK_SECRET देखील set करता, जो webhook तयार करताना किंवा rotate करताना डॅशबोर्ड एकदाच परत देतो.

पूर्ण एजंट उदाहरण

भुगतान समर्थनासह कार्यरत LangChain एजंट.

खाली एक संपूर्ण LangChain एजंट आहे Python मध्ये. create_blockchain0x_toolset वॉलेट टूल्स परत करते, create_react_agent त्यांना ReAct लूपमध्ये जोडते, आणि मॉडेल प्रॉम्प्टमधून योग्य टूल निवडते. BLOCKCHAIN0X_API_KEY सेट करा, ते चालवा, आणि एजंट Base वर USDC हलवू आणि वाचू शकतो.

AGENT.PY
from blockchain0x import Client
from blockchain0x_langchain import create_blockchain0x_toolset
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent

client = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment
tools = create_blockchain0x_toolset(client)

llm = ChatOpenAI(model="gpt-4o")
agent = create_react_agent(llm, tools)

result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": "Pay 0.01 USDC from my agent to 0xRecipient for the dataset.",
    }],
})

Run it with the prompt above and the model picks the send-payment tool, the SDK submits the transfer on Base, and you get a transaction hash back. amount_wei is USDC base units (6 decimals), so 0.01 USDC is the string "10000". A sk_test_ key keeps you on Base Sepolia until you switch to sk_live_. Heads up: payments.create can answer 503 until the chain adapter is wired for your network.

वेबहुक हाताळणी

वापरकर्ता पैसे दिल्यानंतर काय होते.

तुमच्या agent चा webhook URL (जो Blockchain0x dashboard मध्ये सेट केलेला आहे) payment settle झाल्यावर POST प्राप्त करतो. webhook verify helper Node SDK मध्ये आहे, त्यामुळे agent Python असला तरी हा handler TypeScript असतो. खाली एक Express handler आहे जो signature तपासतो आणि paid work चालवतो. कोणत्याही HTTP framework मध्ये तोच pattern वापरा.

WEBHOOK-HANDLER.TS
import express from "express";
import { webhooks } from "@blockchain0x/node";

const app = express();
// Capture the RAW body. The HMAC is over the exact bytes on the wire.
app.use(express.raw({ type: "application/json" }));

app.post("/webhooks/payment", (req, res) => {
  const result = webhooks.verify({
    headers: req.headers,
    rawBody: req.body, // Buffer, raw bytes
    secret: process.env.BLOCKCHAIN0X_WEBHOOK_SECRET!,
  });
  if (!result.ok) return res.status(400).json({ code: result.code });

  if (result.eventType === "payment.received") {
    // USDC landed in your agent wallet - do the paid work
  }
  res.status(200).send("ok");
});

webhooks.verify HMAC-SHA256 सतत वेळेत करते आणि एक भिन्न युनियन परत करते, त्यामुळे तुम्ही result.ok वर शाखा करता, कोणतीही प्रयत्न/पकड नाही आणि result.eventType वाचता. कच्चा शरीर वाचा, पार्स केलेली प्रत नाही: पार्सिंग नंतर पुन्हा-सिरियलायझिंग सिग्नेचर तोडते. पाठवलेले इव्हेंट्स आहेत payment.received, payment.sent, wallet.deployed, आणि webhook.test; तुमच्या एजंटवर एक इनबाउंड चार्ज आहे payment.received.

TYPESCRIPT? X402 क्लायंट लपवा

कोणताही npm LangChain अडॅप्टर नाही. येथे प्रामाणिक रेसिपी आहे.

शिप केलेला LangChain अडॅप्टर फक्त Python आहे. npm वर LangChain अडॅप्टर नाही. TypeScript LangChain किंवा LangGraph एजंटसाठी, तुम्ही वास्तविक x402 क्लायंटला LangChain.js साधनात स्वतः लपवता. हे काही ओळी आहेत, आणि हे एक समर्पित अडॅप्टरच्या अंतर्गत काय करेल तेच आहे.

PAY-TOOL.TS
import { createClient } from "@blockchain0x/node";
import { createX402Client } from "@blockchain0x/x402/client";
import { tool } from "@langchain/core/tools";
import { z } from "zod";

const sdk = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! });
const fetchWithPay = createX402Client({ sdk });

// There is no npm LangChain adapter. Wrap the x402 client in a LangChain.js tool.
export const payAndFetch = tool(
  async ({ url }) => (await fetchWithPay(url)).text(),
  {
    name: "pay_and_fetch",
    description: "Fetch a URL, answering any x402 payment challenge automatically",
    schema: z.object({ url: z.string().url() }),
  },
);

Source आणि testnet examples the Python SDK repo येथे आहेत; SDK support matrix the docs येथे आहे. Python smoke example Base Sepolia वर प्रत्यक्ष $0.01 USDC transfer पाठवतो, आणि तोच send-payment action वापरतो जो LangChain tool wrap करते.

सामान्य अडथळे

पहिल्या एकत्रीकरणावर त्रास देणाऱ्या पाच गोष्टी.

हे आमच्या समर्थन इनबॉक्समधून येतात. त्यापैकी कोणतीही डील-ब्रेकर्स नाहीत, परंतु त्यांच्याबद्दल आधीच माहिती असणे प्रत्येकाला एक तास विचार करण्यास वाचवते.

PITFALL 1

रक्कम USDC बेस युनिट्स आहेत, स्ट्रिंग्स म्हणून

The payment tools take amount_wei: a string of USDC base units, not a float and not a dollar figure. USDC has 6 decimals, so 0.01 USDC is "10000" and 5 USDC is "5000000". Always pass a string; large integers lose precision as JSON numbers. Send "5.00" and you will either get a validation error or move a millionth of what you meant.

PITFALL 2

इनव्हॉइस साधन निपटते, ते तयार करत नाही

blockchain0x_settle_invoice एक विद्यमान पेमेंट विनंती ऑन-चेन पुराव्यासह निपजवते. ताज्या चलनाची इनव्हॉइस किंवा होस्ट केलेला चेकआउट लिंक तयार करणारे कोणतेही टूल नाही: पेमेंट विनंत्या डॅशबोर्डमध्ये तयार केल्या जातात, आणि मुख्य SDK फक्त निपटारा उघडतो. जर तुम्ही अपेक्षा केली की एजंट तात्काळ देयक लिंक तयार करेल, तर ती अशी नाही. बँडमधून विनंती तयार करा, मग एजंटला ते निपजवू द्या.

PITFALL 3

कच्च्या शरीराच्या विरोधात वेबहुक सत्यापित करा

Webhooks तुमच्या URL वर POST करतात, आणि तो URL ज्याला कळतो तो कोणीही junk POST करू शकतो. Event वर विश्वास ठेवण्यापूर्वी RAW request bytes वर @blockchain0x/node मधील webhooks.verify चालवा. आधी JSON parse केल्यास HMAC जुळणार नाही, कारण signature आली तशीच अचूक bytes कव्हर करते. हा HMAC-SHA256 आहे, 300-second replay window सह. हे वगळणे ही production मधील सर्वात सामान्य चूक आहे.

PITFALL 4

send_payment लवकर 503 उत्तर देऊ शकते

payments.create, जे blockchain0x_send_payment लपवते, डिफॉल्टने पुनःप्रयत्न करत नाही आणि तुमच्या नेटवर्कसाठी चेन अडॅप्टर वायर्ड होईपर्यंत 503 परत करू शकते. त्रुटीवर पुनःप्रयत्न लूपमध्ये टूलवर LLM हॅमर करू देऊ नका: हे टोकन जाळते आणि तुमच्या हेतूच्या लॉगला गोंधळात टाकते. अंतर्निहित idempotency कीवर झुकून रहा, अपयश दर्शवा, पुढे जा.

PITFALL 5

langchain-core आवृत्ती जुळवा

blockchain0x-langchain 0.1.x हे langchain-core >=0.2,<0.4 ला target करते. जर तुम्ही adapter support करत असलेल्या core पेक्षा नवीन core वापरत असाल, तर दोन्हींच्या latest आवृत्त्यांच्या मागे न धावता जुळणारी जोडी pin करा. support matrix docs मध्ये आहे.

वारंवार विचारले जाते

तीन LangChain-विशिष्ट प्रश्न.

माझा एजंट USDC प्राप्त करू शकतो का, फक्त ते पाठवू शकत नाही?

हो, दोन मार्ग आहेत. Passively: तुमच्या agent कडे wallet address आणि public page असते, त्यामुळे कोणीही त्याला पैसे देऊ शकते आणि chain settle झाल्यावर payment.received webhook trigger होतो. Actively: blockchain0x_settle_invoice dashboard मध्ये तुम्ही तयार केलेला payment request settle करते आणि on-chain proof नोंदवते. agent मधून नवीन invoice किंवा hosted link तयार करणारे tool नाही. Request dashboard मध्ये तयार करा, agent ला ते settle करू द्या. बरीच setups दोन्ही वापरतात: tips साठी public page, आणि विशिष्ट invoices साठी settle tool.

हे LangGraph सह कार्य करते का?

होय. create_blockchain0x_toolset standard LangChain tools परत करते, त्यामुळे त्या create_react_agent (वर दाखवलेले), AgentExecutor, किंवा messages हाताळणाऱ्या कोणत्याही LangGraph node मध्ये थेट बसतात, आणि checkpointing तसेच human-in-the-loop सोबत compose होतात. ही Python बाजू आहे. जर तुमचा LangGraph agent TypeScript मध्ये असेल, तर npm adapter नाही: createX402Client (किंवा @blockchain0x/node client) ला LangChain.js tool मध्ये wrap करा, वरच्या TypeScript recipe प्रमाणे.

कोणत्या chains आणि tokens समर्थित आहेत?

Base मुख्यनेट (sk_live_ की) आणि Base Sepolia टेस्टनेट (sk_test_ की), 6 दशांशांसह USDC मध्ये निपटले. आज संपूर्ण लाइव्ह पृष्ठभाग: एक चेन कुटुंब, एक टोकन. इतर चेन रोडमॅपवर आहेत, चालू केलेले नाहीत, म्हणून त्यांच्याभोवती डिझाइन करू नका. की प्रीफिक्स तुमच्यासाठी नेटवर्क निवडतो, आणि एक sk_test_ की मुख्यनेट फंड हलवू शकत नाही, जे तुम्हाला बांधताना आवश्यक असलेले गार्डरेल आहे.

आपल्या LangChain एजंटमध्ये पेमेंट प्लग करा.

pip install पासून तुमच्या पहिल्या सशुल्क विनंतीपर्यंत काही मिनिटांत. सुरू करण्यासाठी मोफत.