मुख्य सामग्रीकडे जा
MCP एकत्रीकरण

Blockchain0x MCP वर.

कोणत्याही MCP होस्टला - Claude Desktop, Cursor, VS Code - एजंट वॉलेट साधने एक कॉन्फिग ब्लॉकसह द्या. आणि जेव्हा तुम्हाला तुमच्या स्वतःच्या साधनांसाठी शुल्क आकारायचे असेल, तेव्हा खरे requirePayment x402 बिल्डर वापरा.

लघु उत्तर

@blockchain0x/mcp सर्व्हर MCP होस्टला पाच एजंट-वॉलेट साधने देते: वॉलेट वाचा, वॉलेटची यादी करा, व्यवहार तपासा, USDC देयक पाठवा, आणि x402 इनव्हॉइस सेट करा. npx @blockchain0x/mcp सह चालवा (तुमची की तुमच्या मशीनवर राहते) किंवा होस्ट केलेल्या URL कडे निर्देशित करा. स्वतंत्रपणे, पॅकेज requirePayment निर्यात करते जेणेकरून तुम्ही x402 402 चॅलेंजसह तुमच्या स्वतःच्या MCP साधनांवर किंमत ठेवू शकता.

दोन नोकऱ्या, एक पॅकेज

MCP द्वारे खर्च करा. MCP द्वारे शुल्क आकारा.

काम एक: एजंटला त्याच्या होस्टच्या आतून एक वॉलेट वापरण्याची परवानगी द्या. @blockchain0x/mcp सर्व्हर हा @blockchain0x/node SDK वर एक पातळ, स्टेटलेस प्रॉक्सी आहे. हे Claude Desktop, Cursor, किंवा VS Code साठी पाच वॉलेट साधने उघडते, आणि तुमच्या API कीचा स्कोप, भत्ता, आणि प्रत्येक कालावधीच्या मर्यादा बॅकएंडद्वारे लागू केल्या जातात जसे इतर कोणत्याही API कॉलसाठी. सर्व्हरमध्ये कोणतीही की नाही आणि काहीही संग्रहित करत नाही.

काम दोन: एजंट्सना तुमच्या साधनांना कॉल करण्यासाठी शुल्क आकारा. MCP ने साधनांचे आवाहन सहज केले, जे चांगले आहे जोपर्यंत तुमचा सर्व्हर बाह्य, टोकन, आणि तिसऱ्या पक्षाच्या API खर्चासाठी मोफत खात आहे. 402 पेमेंट आवश्यक पॅटर्न येथे अगदी योग्य आहे. requirePayment एक संरचित x402 आव्हान तयार करते ज्यात एक होस्टेड चेकआउट URL असतो; तुम्ही ते परत करता जेव्हा एक साधन पैसे दिलेले नसते आणि एकदा पेमेंट निपटले की कॉलला परवानगी देता. जे क्लायंट x402 बोलतात ते आपोआप पैसे देतात; उर्वरित URL मानवास प्रदर्शित करतात.

सर्व्हर चालवा

याला चालवण्यासाठी दोन मार्ग आहेत. होस्ट केलेल्या एका साठी कोणतीही स्थापना नाही.

npx सह stdio वर स्थानिकपणे चालवा (तुमची की तुमच्या मशीनवर राहते), किंवा कोणत्याही MCP होस्टला होस्ट केलेल्या स्ट्रीम करण्यायोग्य HTTP URL कडे लक्ष द्या आणि कीला Bearer टोकन म्हणून पास करा. दोन्ही होस्टच्या MCP कॉन्फिगमध्ये थेट डंप करतात. स्थानिक मार्गासाठी Node 20+.

LOCAL - STDIO (npx)
{
  "mcpServers": {
    "blockchain0x": {
      "command": "npx",
      "args": ["-y", "@blockchain0x/mcp"],
      "env": {
        "BLOCKCHAIN0X_API_KEY": "sk_live_...",
        "BLOCKCHAIN0X_API_BASE_URL": "https://api.blockchain0x.com"
      }
    }
  }
}
HOSTED - STREAMABLE HTTP
{
  "mcpServers": {
    "blockchain0x": {
      "url": "https://mcp.blockchain0x.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}

BLOCKCHAIN0X_API_KEY हा तुमच्या डॅशबोर्डमधून sk_test_ टेस्टनेट किंवा sk_live_ मुख्यनेट की आहे; BLOCKCHAIN0X_API_BASE_URL https://api.blockchain0x.com वर डिफॉल्ट आहे. सर्व्हर तुमची की बॅकएंडकडे पुढे पाठवतो आणि काहीही संग्रहित करत नाही, त्यामुळे त्या कीवरील व्याप्ती आणि मर्यादा अगदी एजंट काय करू शकतो यावर आहेत. हे पाच टूल्स उघडते: get_wallet, list_wallets, get_transaction, send_payment, आणि settle_payment_request.

तुमच्या स्वतःच्या साधनांची किंमत ठरवा

खरे requirePayment बिल्डर वापरून एक साधन गेट करा.

requirePayment @blockchain0x/mcp कडून एक शुद्ध कार्य आहे. तुम्ही तेव्हा कॉल करता जेव्हा एक टूल भरणा केलेले नसते, तेव्हा ते एक x402 402 आव्हान (किंमत, तुमचा वॉलेट, एक होस्ट केलेला चेकआउट URL) तयार करते, आणि तुम्ही त्या शरीराला मानक MCP त्रुटी आकारात परत करता. हे तुमच्या हँडलरला लपवित नाही आणि कोणत्या व्यक्तीने भरणा केला हे ट्रॅक करत नाही - ती भाग तुमची आहे, जी सहाय्यकाला लहान आणि प्रामाणिक ठेवते.

SERVER.TS
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { requirePayment } from "@blockchain0x/mcp";
import { z } from "zod";

const server = new McpServer({ name: "docs-search-mcp", version: "1.0.0" });

server.tool(
  "search_docs",
  "Semantic search across our private docs",
  { query: z.string() },
  async ({ query }, extra) => {
    if (!hasPaid(extra)) {
      // Mint an x402 402 challenge and hand it back to the caller.
      const { body } = requirePayment({
        amountUsdc: "0.10",
        payTo: "0xYourWallet",
        hostedUrl: "https://pay.blockchain0x.com/checkout/abc",
      });
      return { content: [{ type: "text", text: JSON.stringify(body) }], isError: true };
    }
    const results = await runVectorSearch(query);
    return { content: [{ type: "text", text: JSON.stringify(results) }] };
  },
);

agent ने search_docs unpaid कॉल केल्यावर त्याला 402 body मिळते. x402 बोलणारे clients ते आपोआप भरतात; Claude Desktop आणि Cursor मानवासाठी checkout URL दाखवतात. Payment settle झाल्यावर तुम्ही तो caller paid म्हणून नोंदवता (पुढील विभाग) आणि call पुढे जातो. MCP server पेक्षा साधा HTTP server पसंत आहे? receive-side x402 adapter - Express साठी createX402Middleware, Fastify साठी createX402Plugin - हेच gating framework स्तरावर करतो.

भुगतानाची पुष्टी करा

वेबहुक लँड झाल्यावर कॉलरला भरलेले म्हणून चिन्हांकित करा.

Payment settle झाल्यावर Blockchain0x तुमच्या webhook URL वर signed payment.received event POST करते. Node SDK मधील webhooks.verify ने ते verify करा, आणि मग caller ने पैसे दिले आहेत हे तुम्ही चालवत असलेल्या कोणत्याही store मध्ये नोंदवा. तयार receipt cache configure करायची गरज नाही - तो भाग तुमचा आहे, म्हणजेच कोणतीही अनपेक्षित infrastructure नाही.

WEBHOOK.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") {
    // Mark this payer paid however you like - a DB row, a Redis key, your call.
    markPaid(result.eventId);
  }
  res.status(200).send("ok");
});

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

स्रोत आणि दस्तऐवज

सर्व्हर ओपन आणि स्टेटलेस आहे. त्याला वाचा.

MCP server आणि requirePayment builder हे Node SDK वरचे एक पातळ pass-through आहेत, database नाही आणि volumes नाहीत, त्यामुळे audit करण्यास फारसे काही नाही - आणि तोच मुद्दा आहे. Native MCP OAuth 2.1 हा नियोजित पुढचा टप्पा आहे; pasted-key path आधी ship होतो कारण तो विद्यमान API-key trust model पुन्हा वापरतो.

github.com/tosh-labs/blockchain0x-node

पूर्ण tool list, scopes, आणि hosted environment URLs यांचे दस्तऐवजीकरण the docs येथे आहे. खऱ्या key ला जोडण्यापूर्वी चाचणी करण्यासाठी production सोबत staging आणि dev hosted endpoints उपलब्ध आहेत.

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

पाच MCP-विशिष्ट जाळे टाळा.

हे उत्पादनात सशुल्क MCP सर्व्हर चालवणाऱ्या ऑपरेटरांकडून येतात. बहुतेक कॅशे आर्किटेक्चर आणि MCP प्रोटोकॉलच्या विशिष्ट त्रुटी स्वरूपाशी संबंधित आहेत.

PITFALL 1

requirePayment एक बिल्डर आहे, मिडलवेअर नाही

requirePayment एक शुद्ध कार्य आहे: तुम्ही तेव्हा कॉल करता, ते { status: 402, body } परत करते, आणि तुम्ही एक टूल भरणा केलेले नसताना ते शरीर परत करता. हे तुमच्या हँडलरला लपवित नाही, कोणत्या व्यक्तीने भरणा केला हे ट्रॅक करत नाही, आणि कोणतेही कारण किंवा कॅश-खिडकी पर्याय घेत नाही - फक्त amountUsdc, payTo, hostedUrl, आणि एक वैकल्पिक नेटवर्क आणि वर्णन. भरणा स्थिती ट्रॅक करणे तुमचे काम आहे: तुमच्या डेटाबेसमधील एक पंक्ती, तुमच्या स्वतःच्या Redis मध्ये एक की, जे काही योग्य आहे. Blockchain0x आव्हान बिल्डर आणि निपटारा वेबहुक पाठवते, रसीद कॅश नाही.

PITFALL 2

stdio तुमची की तुमच्या मशीनवर ठेवते

npx सह सर्व्हर चालवा आणि वातावरणात BLOCKCHAIN0X_API_KEY ठेवा, आणि की कधीही तुमच्या बॉक्समधून बाहेर जात नाही - ती स्थानिकपणे वाचली जाते, नेटवर्क हेडर म्हणून पाठवली जात नाही. होस्ट केलेला URL उलट व्यापार आहे: शून्य स्थापना, परंतु तुम्ही कीला mcp.blockchain0x.com वर Bearer टोकन म्हणून पेस्ट करता. विकासकाच्या स्वतःच्या मशीनसाठी stdio निवडा, सामायिक तैनातीसाठी होस्ट केलेले.

PITFALL 3

डॅशबोर्ड-फक्त पृष्ठभाग उघडलेले नाहीत

सर्व्हर हा @blockchain0x/node वर एक पातळ, स्टेटलेस प्रॉक्सी आहे. हे अचूकपणे पाच साधने दर्शवते: get_wallet, list_wallets, get_transaction, send_payment, settle_payment_request. ओळख बदल, API-की आणि वेबहुक CRUD, पैसे काढणे, आणि बिलिंग API-की प्रमाणीकरण अंतर्गत कठोरपणे ब्लॉक केलेले आहेत आणि सर्व्हर कधीही SDK च्या पलीकडे पोहोचत नाही. त्यासाठी कोणतीही साधन अपेक्षा करू नका - ते डिझाइननुसार डॅशबोर्डमध्ये राहतात.

PITFALL 4

send_payment idempotent आहे आणि पुनःप्रयत्न करत नाही

The send_payment tool wraps payments.create: it auto-mints an Idempotency-Key so a retried call collapses to one transfer, and it does not retry on its own. It can also answer 503 until the chain adapter is wired for your network. If the model gets a 503, do not let it hammer the tool - surface the state and move on. amountWei is USDC base units (6 decimals), so 0.01 USDC is the string "10000".

PITFALL 5

requirePayment वर amountUsdc हा 6-decिमल स्ट्रिंग आहे

requirePayment validates amountUsdc as a USDC decimal with at most six fractional digits, so "0.10" is fine and "0.1234567" throws. payTo and hostedUrl are required; network defaults to mainnet. Keep the hostedUrl pointing at a real checkout you control (the pattern is https://pay.blockchain0x.com/checkout/<id>). A malformed amount fails fast rather than minting a broken challenge.

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

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

हे Claude Desktop, Cursor, आणि VS Code सह बॉक्समधून कार्य करते का?

होय. ते standard MCP hosts आहेत. host च्या MCP config मध्ये blockchain0x server जोडा - stdio block (npx + env मधील तुमची key) किंवा hosted block (mcp.blockchain0x.com URL + Bearer key) - आणि पाच wallet tools agent ला दिसू लागतात. तिथून agent wallet वाचू शकतो, transaction तपासू शकतो, USDC payment पाठवू शकतो, किंवा x402 invoice settle करू शकतो, आणि हे सर्व तुमचा API key आधीच enforce करत असलेल्या scope, allowance, आणि caps यांच्या मर्यादेतच.

Server जोडल्यावर agent प्रत्यक्षात काय करू शकतो?

पाच गोष्टी, पाच साधनांशी जुळणाऱ्या: get_wallet आणि list_wallets वॉलेट मेटाडेटा वाचतात, get_transaction एक व्यवहाराची स्थिती आणि हॅश विचारतो, send_payment एक बाह्य USDC पेमेंट करते, आणि settle_payment_request एक x402 इनव्हॉइस ऑन-चेन पुराव्यासह निपटवते. हे संपूर्ण पृष्ठ आहे. सर्व्हर एक स्टेटलेस प्रॉक्सी आहे: त्यात कोणतीही की नाही, काहीही संग्रहित करत नाही, आणि डॅशबोर्ड-फक्त ऑपरेशन्सपर्यंत पोहोचू शकत नाही, त्यामुळे एजंट कींना फिरवू शकत नाही, ओळख बदलू शकत नाही, किंवा त्याद्वारे पैसे काढू शकत नाही.

मी एजंट्सना माझ्या स्वतःच्या MCP साधनांना कॉल करण्यासाठी कसे शुल्क आकारू?

वास्तविक requirePayment सहाय्यक वापरा जो @blockchain0x/mcp द्वारे निर्यात केला जातो. कॉलरने पैसे दिले नाहीत तेव्हा requirePayment({ amountUsdc, payTo, hostedUrl }) तुमच्या साधनाच्या आत कॉल करा, आणि परिणामी 402 शरीर परत करा - हे @blockchain0x/x402 सह वायर-संगत आहे. तुम्ही कोणत्या व्यक्तीने पैसे दिले आहेत हे ट्रॅक करता (payment.received वर एक वेबहुक आणि तुमचा स्वतःचा स्टोअर), आणि एकदा त्यांनी पैसे दिल्यावर तुम्ही कॉलला परवानगी देता. MCP च्या ऐवजी एक साधा HTTP सर्व्हर साठी, रिसीव-साइड x402 अडॅप्टर (Express साठी createX402Middleware, Fastify साठी createX402Plugin) फ्रेमवर्क स्तरावर समान कार्य करते.

तुमच्या एजंटला MCP वर एक वॉलेट द्या.

वॉलेट साधने कनेक्ट करण्यासाठी एक कॉन्फिग ब्लॉक. जेव्हा तुम्हाला तुमच्यासाठी शुल्क आकारायचे असेल तेव्हा वास्तविक requirePayment बिल्डर. सुरू करण्यासाठी मोफत.