Back to Skill Directory
Development

Bankless Onchain

BYbankless76GRADE B

Query Onchain data, like ERC20 tokens, transaction history, smart contract state.

Config Installation

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "bankless-onchain": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-bankless-onchain"
      ]
    }
  }
}

* Note: Requires restart of Claude Desktop app.

OWN THIS SKILL?

Apply for the Verified Badge to boost trust and rankings.

Claim & Verify ($99)

Adoption Framework for Bankless Onchain

Before installing any skill, define a clear objective and measurable outcome. A useful implementation question is: what workflow becomes faster, safer, or more reliable after this skill is active? If that answer is vague, delay rollout and tighten scope first.

For most teams, a low-risk pattern is preview-first rollout with one owner, one test scenario, and one rollback plan. Capture failures in a structured log so quality decisions are evidence-based. This is especially important for skills that touch file systems, external APIs, or automation chains with downstream side effects.

  • Define success metrics before installation.
  • Validate permission scope against policy boundaries.
  • Run one controlled pilot and document failure categories.
  • Promote only after acceptance checks pass consistently.

Pre-Deployment Review Questions

Use these questions before enabling the skill in shared environments. They reduce surprise incidents and make approval decisions consistent across teams.

  • What data can this skill read, write, or transmit by default?
  • Which failures are recoverable automatically and which require manual stop?
  • Do we have verifiable logs that prove safe behavior under load?
  • Is rollback tested, documented, and assigned to a clear owner?

If any answer is unclear, keep rollout in preview and close the gap before production use.

Editorial Review Snapshot

This listing includes an editorial QA layer in addition to automated rendering. Review status is based on documentation depth, content uniqueness, and operational safety signals from the upstream repository.

  • Last scan date: 2026-01-18
  • README depth: 1300 words
  • Content diversity score: 0.45 (higher is better)
  • Template signal count: 0
  • Index status: Index eligible

Recommendation: Pilot in a bounded environment first. Confirm observability and ownership before promoting to shared workflows.

Skill Implementation Board

Actionable utility module for rollout decisions. Use the inputs below to choose a deployment path, then execute the checklist and record an output note.

Input: Security Grade

B

Input: Findings

0

Input: README Depth

1300 words

Input: Index State

Eligible

Decision TriggerActionExpected Output
Input: risk band moderate, docs strong, findings 0Run a preview pilot with fixed ownership and observability checkpoints.Pilot can start with rollback checklist attached.
Input: page is index-eligibleProceed with external documentation and team onboarding draft.Reusable rollout runbook ready for team adoption.
Input: context tags/scenarios are missingDefine two concrete scenarios before broad rollout.Clear scope definition before further deployment.

Execution Steps

  1. Capture objective, owner, and rollback contact.
  2. Run one preview pilot with fixed test scenario.
  3. Record warning behavior and recovery evidence.
  4. Promote only if pilot output matches expected threshold.

Output Template

skill=bankless-onchain
mode=B
pilot_result=pass|fail
warning_count=0
next_step=rollout|patch|hold

🛡️ Security Analysis

SCANNED: 2026-01-18
SCORE: 80/100

Clean Scan Report

Our static analysis engine detected no common vulnerabilities (RCE, API Leaks, Unbounded FS).

DocumentationREADME.md

Note: The content below is automatically rendered from the repository's README file.

Bankless Onchain MCP Server

License: MIT Version

MCP (Model Context Protocol) server for blockchain data interaction through the Bankless API.

Overview

The Bankless Onchain MCP Server provides a framework for interacting with on-chain data via the Bankless API. It implements the Model Context Protocol (MCP) to allow AI models to access blockchain state and event data in a structured way.

https://github.com/user-attachments/assets/95732dff-ae5f-45a6-928a-1ae17c0ddf9d

Features

The server provides the following onchain data operations:

Contract Operations

  • Read Contract State (read_contract): Read state from smart contracts on various blockchain networks.

    • Parameters: network, contract address, method, inputs, outputs
    • Returns: Contract call results with typed values
  • Get Proxy (get_proxy): Retrieve proxy implementation contract addresses.

    • Parameters: network, contract address
    • Returns: Implementation contract address
  • Get ABI (get_abi): Fetch the ABI (Application Binary Interface) for a contract.

    • Parameters: network, contract address
    • Returns: Contract ABI in JSON format
  • Get Source (get_source): Retrieve the source code for a verified contract.

    • Parameters: network, contract address
    • Returns: Source code, ABI, compiler version, and other contract metadata

Event Operations

  • Get Events (get_events): Fetch event logs for a contract based on topics.

    • Parameters: network, addresses, topic, optional topics
    • Returns: Filtered event logs
  • Build Event Topic (build_event_topic): Generate an event topic signature from event name and argument types.

    • Parameters: network, event name, argument types
    • Returns: Event topic hash

Transaction Operations

  • Get Transaction History (get_transaction_history): Retrieve transaction history for a user address.

    • Parameters: network, user address, optional contract, optional method ID, optional start block, include data flag
    • Returns: List of transactions with hash, data, network, and timestamp
  • Get Transaction Info (get_transaction_info): Get detailed information about a specific transaction.

    • Parameters: network, transaction hash
    • Returns: Transaction details including block number, timestamp, from/to addresses, value, gas info, status, and receipt data

Tools

  • read_contract

    • Read contract state from a blockchain
    • Input:
      • network (string, required): The blockchain network (e.g., "ethereum", "polygon")
      • contract (string, required): The contract address
      • method (string, required): The contract method to call
      • inputs (array, required): Input parameters for the method call, each containing:
        • type (string): The type of the input parameter (e.g., "address", "uint256")
        • value (any): The value of the input parameter
      • outputs (array, required): Expected output types, each containing:
        • type (string): The expected output type
    • Returns an array of contract call results
  • get_proxy

    • Gets the proxy address for a given network and contract
    • Input:
      • network (string, required): The blockchain network (e.g., "ethereum", "base")
      • contract (string, required): The contract address
    • Returns the implementation address for the proxy contract
  • get_events

    • Fetches event logs for a given network and filter criteria
    • Input:
      • network (string, required): The blockchain network (e.g., "ethereum", "base")
      • addresses (array, required): List of contract addresses to filter events
      • topic (string, required): Primary topic to filter events
      • optionalTopics (array, optional): Optional additional topics (can include null values)
    • Returns an object containing event logs matching the filter criteria
  • build_event_topic

    • Builds an event topic signature based on event name and arguments
    • Input:
      • network (string, required): The blockchain network (e.g., "ethereum", "base")
      • name (string, required): Event name (e.g., "Transfer(address,address,uint256)")
      • arguments (array, required): Event arguments types, each containing:
        • type (string): The argument type (e.g., "address", "uint256")
    • Returns a string containing the keccak256 hash of the event signature

Installation

npm install @bankless/onchain-mcp

Usage

Environment Setup

Before using the server, set your Bankless API token. For details on how to obtain your Bankless API token, head to https://docs.bankless.com/bankless-api/other-services/onchain-mcp

export BANKLESS_API_TOKEN=your_api_token_here

Running the Server

The server can be run directly from the command line:

npx @bankless/onchain-mcp

Usage with LLM Tools

This server implements the Model Context Protocol (MCP), which allows it to be used as a tool provider for compatible AI models. Here are some example calls for each tool:

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"

Development

Building from Source

# 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

Debug Mode

npm run debug

Integration with AI Models

To integrate this server with AI applications that support MCP, add the following to your app's server configuration:

{
  "mcpServers": {
    "bankless": {
      "command": "npx",
      "args": [
        "@bankless/onchain-mcp"
      ],
      "env": {
        "BANKLESS_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Error Handling

The server provides specific error types for different scenarios:

  • BanklessValidationError: Invalid input parameters
  • BanklessAuthenticationError: API token issues
  • BanklessResourceNotFoundError: Requested resource not found
  • BanklessRateLimitError: API rate limit exceeded

Prompting Tips

In order to guide an LLM model to use the Bankless Onchain MCP Server, the following prompts can be used:

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 ans

...(truncated)