உங்கள் AI முகவரிக்கு பணங்களை எவ்வாறு சேர்க்க வேண்டும்.
createClient ஐ @blockchain0x/node (அல்லது Python கிளையண்ட்) இல் இருந்து ஒரு முகவரை உருவாக்கவும், payments.create உடன் USDC கட்டணத்தை அனுப்பவும், மற்றும் webhooks.verify உடன் கையொப்பம் செய்யப்பட்ட webhook ஐ உறுதிப்படுத்தவும். செலவீன கட்டுப்பாடுகள் டாஷ்போர்டில் அமைக்கப்பட்டுள்ளன மற்றும் API இல் வாசிக்கக்கூடியவை. முகவர் தனிப்பட்ட விசைகளை நேரடியாக தொடுவதில்லை. பதிவு செய்யும் முதல் USDC கட்டணம் Base இல், TypeScript அல்லது Python இல், பத்து நிமிடங்களுக்கு கீழே.
நீங்கள் தொடங்குவதற்கு முன்.
- ஒரு Blockchain0x கணக்கு (இலவச பதிவு).
- டாஷ்போர்டில் இருந்து ஒரு API விசை (இந்த வழிகாட்டிக்காக
sk_test_விசையைப் பயன்படுத்தவும்; நீங்கள் பின்னர்sk_live_க்கு மாறுவீர்கள்). - Node.js 20+ அல்லது Python 3.11+ உங்கள் முகவர் இயக்கத்தில்.
- எந்த கட்டமைப்பில் உருவாக்கப்பட்ட முகவர் - LangChain, CrewAI, AutoGen, LlamaIndex, OpenAI Agents SDK, MCP, அல்லது சாதாரண SDK குறியீடு. வழிமுறைகள் கட்டமைப்பு சார்பற்றவை.
- வெளியிடப்பட்ட இணையத்திலிருந்து வலைப்பூவைப் பெற HTTPS முடிவுப் புள்ளி (ngrok அல்லது ஒரு வெளியீட்டு முன்னணி மேம்பாட்டுக்காக சரியானது).
முகவர் சுயவிவரத்தை உருவாக்கவும்.
முகவர் சுயவிவரம் உங்கள் முகவர் அனுப்பும் அல்லது பெறும் ஒவ்வொரு செலுத்தலின் பின்னணி அடையாளமாகும். இது கையிருப்பு முகவரி, பொது பக்கம், உறுதிப்படுத்தல் அடிக்கோடுகள் மற்றும் (பின்னர்) செலவுப் கொள்கையை கொண்டுள்ளது. ஒவ்வொரு தர்க்கமான முகவருக்கும் ஒன்றை உருவாக்கவும்.
import { createClient } from "@blockchain0x/node";
const client = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! }); // sk_test_ / sk_live_
const agent = await client.agents.create({ name: "research-bot" });
console.log(agent.id); // "agt_..."
// Public page: https://wallet.blockchain0x.com/a/{slug}from blockchain0x import Client
client = Client() # reads BLOCKCHAIN0X_API_KEY from the environment
agent = client.agents.create(body={"name": "research-bot"})
print(agent["id"]) # "agt_..."
# Public page: https://wallet.blockchain0x.com/a/{slug}After this call, the agent has a public page at https://wallet.blockchain0x.com/a/<slug> that any counterparty (human or agent) can hover for verification info. See the agent payment identity glossary entry for what that page exposes.
ஒரு பணம் செலுத்தவும்.
payments.create sends USDC from the agent wallet. amountWei is base units (USDC has 6 decimals), so 0.01 USDC is the string "10000". The SDK auto-stamps an Idempotency-Key, and the call can return 503 until the chain adapter is wired for your network. To RECEIVE instead, settle an invoice you created in the dashboard with paymentRequests.settle - see the payment API page.
// Send a USDC payment from the agent wallet. amountWei is base units
// (USDC has 6 decimals): "10000" is 0.01 USDC. payments.create auto-stamps an
// Idempotency-Key and can return 503 until the chain adapter is wired.
const tx = await client.payments.create({
agentId: agent.id,
to: "0xRecipient",
amountWei: "10000",
});
console.log(tx); // the submitted transfer# amountWei is USDC base units (6 decimals): "10000" is 0.01 USDC.
tx = client.payments.create(body={
"agentId": agent["id"],
"to": "0xRecipient",
"amountWei": "10000",
})
print(tx) # the submitted transferwebhook ஐ கையாளுங்கள்.
வெப்கோக்கள் நீங்கள் ஒரு பணம் செலுத்தியது என்பதை கண்டுபிடிக்கும் வழியாக இருக்கின்றன. Node இல், @blockchain0x/node இல் இருந்து webhooks.verify HMAC சரிபார்ப்பைச் செய்கிறது மற்றும் ஒரு வேறுபட்ட ஒன்றை திருப்புகிறது; மற்ற மொழிகளில், மூல உடலின் மீது ஒரே HMAC ஐ கணக்கிடவும். நிகழ்வு வகை (உள்ளீட்டிற்கான payment.received) இல் கிளை செய்யவும், 2xx ஐ விரைவாக பதிலளிக்கவும், 2xx இன் பின்னால் எதுவும் அதிகமாக இருந்தால் குவியுங்கள், எனவே விநியோகம் காலாவதியாகாது.
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 - deliver the work, fulfil the order, etc.
void deliver(result.eventId);
}
res.status(200).send("ok");
});import hmac, hashlib, os, time
from flask import Flask, request, abort
app = Flask(__name__)
SECRET = os.environ["BLOCKCHAIN0X_WEBHOOK_SECRET"].encode()
@app.post("/webhooks/payment")
def webhook():
raw = request.get_data() # RAW bytes - do not parse first
sig = request.headers.get("X-Blockchain0x-Signature", "")
ts = request.headers.get("X-Blockchain0x-Timestamp", "")
parts = dict(p.split("=", 1) for p in sig.split(",") if "=" in p)
t, v1 = parts.get("t", ts), parts.get("v1", sig)
want = hmac.new(SECRET, t.encode() + b"." + raw, hashlib.sha256).hexdigest()
if not hmac.compare_digest(want, v1) or abs(time.time() - int(t)) > 300:
abort(401)
if request.headers.get("X-Blockchain0x-Event-Type") == "payment.received":
deliver(request.get_json()) # USDC landed
return ("ok", 200)டாஷ்போர்டில் செலவுப் கட்டுப்பாடுகளை அமைக்கவும்.
உங்கள் எஜெண்ட் மட்டும் பெறுமானால், நீங்கள் இதை தவிர்க்கலாம். இது செலுத்தினால், ஒரு செலவுக்கான அனுமதியை அமைக்கவும் - ஒரு காலக்கட்டத்திற்கு அனுமதி மற்றும் ஒரு பரிமாற்றத்திற்கு வரம்பு - டாஷ்போர்ட்டில். இது ஒவ்வொரு செலுத்தலிலும் பின்னணி மூலம் அமல்படுத்தப்படுகிறது, எனவே இது எஜெண்ட் பக்கம் விதிகள் எப்போது முடியாது என்பதற்கான முறையில் முன் உள்நுழைவுகளைத் தாங்குகிறது. ஒரு அனுமதியை மாற்றும் API அல்லது SDK அழைப்பு இல்லை (எஜெண்டின் சொந்த விசை அதன் வரம்பை விரிவாக்க முடியாது); API வாசிக்க மட்டுமே, எனவே உங்கள் குறியீடு தற்போதைய மதிப்புகளைப் பெறலாம்.
curl https://api.blockchain0x.com/v1/agents/agt_123/spend-permissions \
-H "Authorization: Bearer $BLOCKCHAIN0X_API_KEY"{
"allowance_wei": "5000000",
"per_tx_wei": "1000000",
"period_seconds": 86400,
"revoked_at": null
}Base Sepolia இல் முழு ஓட்டத்தை சோதிக்கவும்.
sk_live_ விசைகளை மாற்றுவதற்கு முன், sk_test_ உடன் முழு பாதையை முடுக்குங்கள். ஒரு சோதனை விசை Base Sepolia இல் அனைத்தையும் வைத்திருக்கிறது, அங்கு நீங்கள் பொதுவான நீர்வீழ்ச்சியிலிருந்து பணப்பையை நிதியுதவி செய்கிறீர்கள் மற்றும் பதிலளிக்கும் வடிவங்கள் நேரடியாக பொருந்துகின்றன. விசை முன்னணி நெட்வொர்க்கை தேர்ந்தெடுக்கிறது, எனவே ஒரு சோதனை விசை mainnet நிதிகளை நகர்த்த முடியாது.
மூன்று நிலைகளை பயிற்சி செய்யுங்கள்: payment.received ஐ செயல்படுத்தும் ஒரு சந்தோஷமான பாதை செலுத்தல், தவறான விநியோகம் (webhook ஐ ஒரு மரண URL க்கு குறிக்கவும், பின்னர் transactions.get மூலம் பரிமாற்றத்தைப் பெறுவதன் மூலம் ஒத்திசைக்கவும்), மற்றும் ஒரு webhook மறுபரிசீலனை (முதல் முறையில் 500 ஐ திரும்பக் கொடுக்கவும், இரண்டாவது முறையில் 200 ஐ, மற்றும் உங்கள் கையாளி idempotent என்பதை உறுதிப்படுத்தவும்). மூன்றும் சோதனையில் கடந்து விட்டால், விசையை மாற்றி அனுப்புங்கள்.
குழுக்களுக்கு ஒரு வாரம் செலவாகும் ஐந்து தவறுகள்.
வெப்ஹுக் கையெழுத்து சரிபார்ப்பை தவிர்க்கிறது
நீங்கள் /webhooks/payment க்கு எந்த POST ஐ அதிகாரப்பூர்வமாக ஏற்றுக்கொண்டால், ஒரு தாக்குதலாளர் போலி செலுத்தல் நிகழ்வுகளை உருவாக்கலாம் மற்றும் உங்கள் எஜெண்டை இலவசமாக வேலை வழங்குவதற்கு ஏமாற்றலாம். எப்போதும் HMAC-ஐ webhook ரகசியத்துடன் சரிபார்க்கவும், நிலையான நேர ஒப்பீட்டைப் பயன்படுத்தவும். முதல் கம்ப்யூட்டர் எப்போதும் காணாமல் போன சரிபார்ப்பு ஆக இருக்கிறது.
ஒரு தனித்துவமான உறுதிப்படுத்தும் நிகழ்வு இருப்பதாகக் கருதுகிறேன்
அனுப்பிய நிகழ்வுகள் payment.received, payment.sent, wallet.deployed, மற்றும் webhook.test ஆகும் - தனி உறுதிப்படுத்தல் நிகழ்வு இல்லை. payment.received என்பது பரிமாற்றம் ஒரு பிளாக்கில் இருக்கும் போது செயல்படுகிறது. பெரும்பாலான வேலைக்கு, அது நீங்கள் வழங்க வேண்டும் என்பதற்கான உங்கள் சிக்னல் ஆகும். விலை உயர்ந்த அல்லது திருப்பமுடியாத ஏதாவது ஒன்றுக்காக, transactions.get உடன் பரிமாற்றத்தை கண்காணிக்கவும் மற்றும் செயல்படுவதற்கு முன்பு உங்கள் சொந்த உறுதிப்படுத்தல் அளவுகோலை பயன்படுத்தவும்; இல்லாத நிகழ்வுக்காக காத்திருக்க வேண்டாம்.
Webhook கையாளிகளில் எந்த idempotency இல்லை
Webhook கையாளிகள் 2xx பதில்களை மீண்டும் முயற்சிக்கின்றன, மற்றும் ஒரே நிகழ்வு சுமையில் பல முறை வரும். உங்கள் கையாளுநர் அடிப்படையில் இருக்க வேண்டும்: நீங்கள் ஏற்கனவே செயல்படுத்திய நிகழ்வு அடையாளங்களின் ஒரு சிறிய அட்டவணையை வைத்திருங்கள் மற்றும் நகல்களை தவிர்க்கவும். இல்லையெனில், ஒரு தற்காலிகமான பிளிப் ஒரே வேலை இரண்டு முறை வழங்கும் மற்றும் நீங்கள் இரட்டை நிறைவேற்றங்களை பிழைத்திருத்துவதற்கு மணிநேரங்கள் செலவிடுவீர்கள்.
சோதனை மற்றும் நேரடி API விசைகளை கலக்குதல்
சோதனை விசைகள் (sk_test_) சாண்ட்பாக்ஸை அடிக்கின்றன மற்றும் Base Sepolia ஐப் பயன்படுத்துகின்றன; நேரடி விசைகள் (sk_live_) உற்பத்தியை அடிக்கின்றன மற்றும் Base mainnet ஐப் பயன்படுத்துகின்றன. சூழல் அமைப்புகளில் அவற்றைப் கலக்குவது 'dev இல் வேலை செய்கிறது, prod இல் தோல்வி' டிக்கெட்டுகளின் பெரும்பாலான காரணமாகும். உங்கள் இயக்க நேரம் சூழல் மற்றும் விசை முன்னணி பொருந்தவில்லை என்றால் ஆரம்பத்தில் கடுமையான தோல்வி.
காணாமல் போன webhook ஐ தவறான பணமாகக் கருதுதல்
தவறு நிகழ்வு இல்லை, மற்றும் ஒரு webhook தவறவிடப்படலாம் (உங்கள் முடிவுக்கு கீழே இருந்தது, ஒரு விநியோகம் விழுந்தது). 'நிதிகளை காத்திருக்கிறேன்' சுற்றில் முகவரியை சிக்கிய நிலையில் விடாதீர்கள். சமன்வயம் செய்யுங்கள்: உண்மையான நிலையை அறிய transactions.get உடன் பரிமாற்றத்தைப் பெறுங்கள், மற்றும் எந்த காத்திருக்கும் ஓட்டத்திற்கும் ஒரு நேரம் முடிவை அமைக்கவும், எனவே ஒரு விட்டுவிடப்பட்ட பணம் பிடிக்கப்பட்ட வளங்களை விடுவிக்கிறது, என்றும் தொலைக்காமல்.
ஒரு முறை நீங்கள் உங்கள் முதல் கட்டணம் பெற்றால்.
அடிப்படை பணம் செலுத்துதல் செயல்படுத்தப்பட்டால், அதிகமாக செலுத்தும் பின்விளைவுகள் செலவுக்கான கட்டுப்பாடுகள் (எனவே முகவர் பட்ஜெட்டுடன் ஓட முடியாது), வெப்கோக் உறுதிப்படுத்தல் (எனவே பணம் சுமை கீழ் அமைதியாக விழாது), மற்றும் அடையாள சரிபார்ப்பு (எனவே எதிர்காலக் கூட்டாளிகள் முகவரியின் பொது பக்கத்தை நம்புகிறார்கள்).
உரை ஊடுருவலைத் தாண்டும் முகவர் செலவுகளை கட்டுப்படுத்தவும்
உருப்படியாளர்கள் அதிகமாக கேட்கும் webhook மாதிரிகள்
GitHub மற்றும் மண்டலம் உறுதிப்படுத்தல் அடையாளங்களைப் பெறுங்கள்
முழு API குறிப்பு docs.blockchain0x.com இல் உள்ளது. ஒரே API களுக்கான தயாரிப்பு மேற்பரப்பு: கட்டண API.