Bankless Onchain
आधिकारिकऑनचेन डेटा क्वेरी करें, जैसे ERC20 टोकन, लेन-देन इतिहास, स्मार्ट कॉन्ट्रैक्ट स्थिति।
Bankless Onchain MCP के साथ आप क्या कर सकते हैं?
- लाइव कॉन्ट्रैक्ट स्थिति पढ़ें —
read_contractका उपयोग करके समर्थित नेटवर्क पर किसी भी सत्यापित कॉन्ट्रैक्ट की रीड मेथड को कॉल करें। - प्रॉक्सी इम्प्लीमेंटेशन हल करें —
get_proxyके साथ प्रॉक्सी कॉन्ट्रैक्ट के पीछे इम्प्लीमेंटेशन एड्रेस प्राप्त करें। - कॉन्ट्रैक्ट ABI और सोर्स प्राप्त करें —
get_abiके माध्यम से पूरा ABI याget_sourceके माध्यम से सत्यापित सोर्स कोड और मेटाडेटा प्राप्त करें। - ऐतिहासिक घटनाएँ क्वेरी करें —
get_eventsका उपयोग करके एक या अधिक कॉन्ट्रैक्ट एड्रेस के लिए फ़िल्टर किए गए इवेंट लॉग प्राप्त करें। - इवेंट टॉपिक हैश बनाएँ —
build_event_topicके साथ इवेंट नाम और आर्गुमेंट प्रकारों से keccak256 इवेंट टॉपिक जनरेट करें। - लेन-देन इतिहास और विवरण निरीक्षण करें —
get_transaction_historyके साथ किसी एड्रेस के पिछले लेन-देन की सूची देखें याget_transaction_infoके साथ किसी विशिष्ट लेन-देन की जानकारी प्राप्त करें।
दस्तावेज़
Bankless Onchain MCP सर्वर
यह परियोजना अब अपडेट प्राप्त नहीं कर रही है
Bankless API के माध्यम से ब्लॉकचेन डेटा इंटरैक्शन के लिए MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर।
अवलोकन
Bankless Onchain MCP सर्वर Bankless API के ज़रिए ऑन-चेन डेटा के साथ इंटरैक्ट करने के लिए एक ढाँचा प्रदान करता है। यह AI मॉडलों को संरचित तरीके से ब्लॉकचेन स्थिति और इवेंट डेटा तक पहुँचने की अनुमति देने के लिए मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) लागू करता है।
https://github.com/user-attachments/assets/95732dff-ae5f-45a6-928a-1ae17c0ddf9d
विशेषताएँ
सर्वर निम्नलिखित ऑनचेन डेटा संचालन प्रदान करता है:
अनुबंध संचालन
-
अनुबंध स्थिति पढ़ें (
read_contract): विभिन्न ब्लॉकचेन नेटवर्क पर स्मार्ट अनुबंधों से स्थिति पढ़ें।- पैरामीटर: नेटवर्क, अनुबंध पता, विधि, इनपुट, आउटपुट
- रिटर्न: टाइप किए गए मानों के साथ अनुबंध कॉल परिणाम
-
प्रॉक्सी प्राप्त करें (
get_proxy): प्रॉक्सी कार्यान्वयन अनुबंध पते प्राप्त करें।- पैरामीटर: नेटवर्क, अनुबंध पता
- रिटर्न: कार्यान्वयन अनुबंध पता
-
ABI प्राप्त करें (
get_abi): किसी अनुबंध के लिए ABI (एप्लिकेशन बाइनरी इंटरफ़ेस) प्राप्त करें।- पैरामीटर: नेटवर्क, अनुबंध पता
- रिटर्न: JSON प्रारूप में अनुबंध ABI
-
स्रोत प्राप्त करें (
get_source): सत्यापित अनुबंध के लिए स्रोत कोड प्राप्त करें।- पैरामीटर: नेटवर्क, अनुबंध पता
- रिटर्न: स्रोत कोड, ABI, कंपाइलर संस्करण, और अन्य अनुबंध मेटाडेटा
इवेंट संचालन
-
इवेंट प्राप्त करें (
get_events): विषयों के आधार पर किसी अनुबंध के लिए इवेंट लॉग प्राप्त करें।- पैरामीटर: नेटवर्क, पते, विषय, वैकल्पिक विषय
- रिटर्न: फ़िल्टर किए गए इवेंट लॉग
-
इवेंट विषय बनाएँ (
build_event_topic): इवेंट नाम और तर्क प्रकारों से इवेंट विषय हस्ताक्षर उत्पन्न करें।- पैरामीटर: नेटवर्क, इवेंट नाम, तर्क प्रकार
- रिटर्न: इवेंट विषय हैश
लेन-देन संचालन
-
लेन-देन इतिहास प्राप्त करें (
get_transaction_history): उपयोगकर्ता पते के लिए लेन-देन इतिहास प्राप्त करें।- पैरामीटर: नेटवर्क, उपयोगकर्ता पता, वैकल्पिक अनुबंध, वैकल्पिक विधि ID, वैकल्पिक प्रारंभ ब्लॉक, डेटा फ़्लैग शामिल करें
- रिटर्न: हैश, डेटा, नेटवर्क और टाइमस्टैम्प के साथ लेन-देन की सूची
-
लेन-देन जानकारी प्राप्त करें (
get_transaction_info): किसी विशिष्ट लेन-देन के बारे में विस्तृत जानकारी प्राप्त करें।- पैरामीटर: नेटवर्क, लेन-देन हैश
- रिटर्न: ब्लॉक संख्या, टाइमस्टैम्प, से/तक पते, मूल्य, गैस जानकारी, स्थिति और रसीद डेटा सहित लेन-देन विवरण
उपकरण
-
read_contract
- ब्लॉकचेन से अनुबंध स्थिति पढ़ें
- इनपुट:
network(स्ट्रिंग, आवश्यक): ब्लॉकचेन नेटवर्क (जैसे, "ethereum", "polygon")contract(स्ट्रिंग, आवश्यक): अनुबंध पताmethod(स्ट्रिंग, आवश्यक): कॉल करने के लिए अनुबंध विधिinputs(सरणी, आवश्यक): विधि कॉल के लिए इनपुट पैरामीटर, प्रत्येक में शामिल:type(स्ट्रिंग): इनपुट पैरामीटर का प्रकार (जैसे, "address", "uint256")value(कोई भी): इनपुट पैरामीटर का मान
outputs(सरणी, आवश्यक): अपेक्षित आउटपुट प्रकार, प्रत्येक में शामिल:type(स्ट्रिंग): अपेक्षित आउटपुट प्रकार
- अनुबंध कॉल परिणामों की एक सरणी लौटाता है
-
get_proxy
- दिए गए नेटवर्क और अनुबंध के लिए प्रॉक्सी पता प्राप्त करता है
- इनपुट:
network(स्ट्रिंग, आवश्यक): ब्लॉकचेन नेटवर्क (जैसे, "ethereum", "base")contract(स्ट्रिंग, आवश्यक): अनुबंध पता
- प्रॉक्सी अनुबंध के लिए कार्यान्वयन पता लौटाता है
-
get_events
- दिए गए नेटवर्क और फ़िल्टर मानदंड के लिए इवेंट लॉग प्राप्त करता है
- इनपुट:
network(स्ट्रिंग, आवश्यक): ब्लॉकचेन नेटवर्क (जैसे, "ethereum", "base")addresses(सरणी, आवश्यक): इवेंट फ़िल्टर करने के लिए अनुबंध पतों की सूचीtopic(स्ट्रिंग, आवश्यक): इवेंट फ़िल्टर करने के लिए प्राथमिक विषयoptionalTopics(सरणी, वैकल्पिक): वैकल्पिक अतिरिक्त विषय (शून्य मान शामिल हो सकते हैं)
- फ़िल्टर मानदंड से मेल खाने वाले इवेंट लॉग वाली एक वस्तु लौटाता है
-
build_event_topic
- इवेंट नाम और तर्कों के आधार पर इवेंट विषय हस्ताक्षर बनाता है
- इनपुट:
network(स्ट्रिंग, आवश्यक): ब्लॉकचेन नेटवर्क (जैसे, "ethereum", "base")name(स्ट्रिंग, आवश्यक): इवेंट नाम (जैसे, "Transfer(address,address,uint256)")arguments(सरणी, आवश्यक): इवेंट तर्क प्रकार, प्रत्येक में शामिल:type(स्ट्रिंग): तर्क प्रकार (जैसे, "address", "uint256")
- इवेंट हस्ताक्षर का keccak256 हैश वाली एक स्ट्रिंग लौटाता है
स्थापना
npm install @bankless/onchain-mcp
उपयोग
पर्यावरण सेटअप
सर्वर का उपयोग करने से पहले, अपना Bankless API टोकन सेट करें। अपना Bankless API टोकन कैसे प्राप्त करें, इसके विवरण के लिए https://docs.bankless.com/bankless-api/other-services/onchain-mcp पर जाएँ
export BANKLESS_API_TOKEN=your_api_token_here
सर्वर चलाना
सर्वर को सीधे कमांड लाइन से चलाया जा सकता है:
npx @bankless/onchain-mcp
LLM उपकरणों के साथ उपयोग
यह सर्वर मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) लागू करता है, जो इसे संगत AI मॉडलों के लिए उपकरण प्रदाता के रूप में उपयोग करने की अनुमति देता है। यहाँ प्रत्येक उपकरण के लिए कुछ उदाहरण कॉल दिए गए हैं:
read_contract
// Example call
{
"name": "read_contract",
"arguments": {
"network": "ethereum",
"contract": "0x1234...",
"method": "balanceOf",
"inputs": [
{ "type": "address", "value": "0xabcd..." }
],
"outputs": [
{ "type": "uint256" }
]
}
}
// Example response
[
{
"value": "1000000000000000000",
"type": "uint256"
}
]
get_proxy
// Example call
{
"name": "get_proxy",
"arguments": {
"network": "ethereum",
"contract": "0x1234..."
}
}
// Example response
{
"implementation": "0xefgh..."
}
get_events
// Example call
{
"name": "get_events",
"arguments": {
"network": "ethereum",
"addresses": ["0x1234..."],
"topic": "0xabcd...",
"optionalTopics": ["0xef01...", null]
}
}
// Example response
{
"result": [
{
"removed": false,
"logIndex": 5,
"transactionIndex": 2,
"transactionHash": "0x123...",
"blockHash": "0xabc...",
"blockNumber": 12345678,
"address": "0x1234...",
"data": "0x...",
"topics": ["0xabcd...", "0xef01...", "0x..."]
}
]
}
build_event_topic
// Example call
{
"name": "build_event_topic",
"arguments": {
"network": "ethereum",
"name": "Transfer(address,address,uint256)",
"arguments": [
{ "type": "address" },
{ "type": "address" },
{ "type": "uint256" }
]
}
}
// Example response
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
विकास
स्रोत से निर्माण
# Clone the repository
git clone https://github.com/Bankless/onchain-mcp.git
cd onchain-mcp
# Install dependencies
npm install
# Build the project
npm run build
डीबग मोड
npm run debug
AI मॉडलों के साथ एकीकरण
इस सर्वर को MCP का समर्थन करने वाले AI अनुप्रयोगों के साथ एकीकृत करने के लिए, अपने ऐप के सर्वर कॉन्फ़िगरेशन में निम्नलिखित जोड़ें:
{
"mcpServers": {
"bankless": {
"command": "npx",
"args": [
"@bankless/onchain-mcp"
],
"env": {
"BANKLESS_API_TOKEN": "your_api_token_here"
}
}
}
}
त्रुटि प्रबंधन
सर्वर विभिन्न परिदृश्यों के लिए विशिष्ट त्रुटि प्रकार प्रदान करता है:
BanklessValidationError: अमान्य इनपुट पैरामीटरBanklessAuthenticationError: API टोकन समस्याएँBanklessResourceNotFoundError: अनुरोधित संसाधन नहीं मिलाBanklessRateLimitError: API दर सीमा पार हो गई
संकेत देने के सुझाव
Bankless Onchain MCP सर्वर का उपयोग करने के लिए LLM मॉडल का मार्गदर्शन करने हेतु, निम्नलिखित संकेतों का उपयोग किया जा सकता है:
ROLE:
• You are Kompanion, a blockchain expert and EVM sleuth.
• You specialize in navigating and analyzing smart contracts using your tools and resources.
HOW KOMPANION CAN HANDLE PROXY CONTRACTS:
• If a contract is a proxy, call your “get_proxy” tool to fetch the implementation contract.
• If that fails, try calling the “implementation” method on the proxy contract.
• If that also fails, try calling the “_implementation” function.
• After obtaining the implementation address, call “get_contract_source” with that address to fetch its source code.
• When reading or modifying the contract state, invoke implementation functions on the proxy contract address (not directly on the implementation).
HOW KOMPANION CAN HANDLE EVENTS:
• Get the ABI and Source of the relevant contracts
• From the event types in the ABI, construct the correct topics for the event relevant to the question
• use the "get_event_logs" tool to fetch logs for the contract
KOMPANION'S RULES:
• Do not begin any response with “Great,” “Certainly,” “Okay,” or “Sure.”
• Maintain a direct, technical style. Do not add conversational flourishes.
• If the user’s question is unrelated to smart contracts, do not fetch any contracts.
• If you navigate contracts, explain each step in bullet points.
• Solve tasks iteratively, breaking them into steps.
• Use bullet points for lists of steps.
• Never assume a contract’s functionality. Always verify with examples using your tools to read the contract state.
• Before responding, consider which tools might help you gather better information.
• Include as much relevant information as possible in your final answer, depending on your findings.
HOW KOMPANION CAN USE TOOLS:
• You can fetch contract source codes, ABIs, and read contract data by using your tools and functions.
• Always verify the source or ABI to understand the contract rather than making assumptions.
• If you need to read contract state, fetch its ABI (especially if the source is lengthy).
FINAL INSTRUCTION:
• Provide the best possible, concise answer to the user’s request. If it's not an immediate question but an instruction, follow it directly.
• Use your tools to gather any necessary clarifications or data.
• Offer a clear, direct response and add a summary of what you did (how you navigated the contracts) at the end.
लाइसेंस
MIT