npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

blockchain-mcp-server

v1.0.2

Published

Blockchain MCP Server with Ethereum vanity address generation, 4byte lookup, ABI encoding, and multi-chain RPC calls

Readme

Blockchain MCP Server

A Model Context Protocol (MCP) based blockchain tools server providing Ethereum vanity address generation and Cast command functionality.

Features

1. Ethereum Vanity Address Generation

  • 🎯 Support for specifying address prefix and suffix
  • ⚡ Multi-threaded concurrent computation for optimized performance
  • 📊 Real-time generation statistics display
  • ✅ Address validity verification

2. Cast Command Tools

  • 🔍 4byte: Get function signatures from function selectors
  • 🔧 4byte-decode: Decode ABI-encoded calldata
  • 📦 abi-encode: ABI encode function parameters
  • 🔄 abi-decode: ABI decode data

3. RPC Service

  • 📞 static-call: Make static calls on any EVM-compatible chain (read-only)
  • 💸 send-transaction: Send transactions to smart contracts (requires private key)
  • 💰 get-balance: Query address balance
  • 🔗 list-chains: List supported chains

Installation and Usage

Install Dependencies

npm install

Build Project

npm run build

Run Server

npm start

Development Mode

npm run dev

Tool Usage Guide

Vanity Address Generation

generate-vanity-address

Generate Ethereum addresses matching specified conditions

Parameters:

  • prefix (optional): Address prefix, excluding 0x
  • suffix (optional): Address suffix
  • workers (optional): Number of concurrent threads, default 4, max 16
  • caseSensitive (optional): Whether case-sensitive, default false

Example:

{
  "prefix": "1234",
  "suffix": "abcd",
  "workers": 8,
  "caseSensitive": false
}

validate-ethereum-address

Validate Ethereum address validity

Parameters:

  • address: Ethereum address to validate

Cast Command Tools

4byte

Get function signatures for the given selector

Parameters:

  • selector: 4-byte function selector (hexadecimal)

Example:

{
  "selector": "0xa9059cbb"
}

4byte-decode

Decode ABI-encoded calldata

Parameters:

  • calldata: ABI-encoded calldata (hexadecimal)

Example:

{
  "calldata": "0xa9059cbb000000000000000000000000..."
}

abi-encode

ABI encode function parameters

Parameters:

  • types: Parameter types array
  • values: Parameter values array

Example:

{
  "types": ["uint256", "address", "bool"],
  "values": [1000, "0x1234567890123456789012345678901234567890", true]
}

abi-encode-with-signature

Complete function call ABI encoding (with function selector)

Parameters:

  • functionSignature: Function signature
  • values: Parameter values array

Example:

{
  "functionSignature": "transfer(address,uint256)",
  "values": ["0x1234567890123456789012345678901234567890", 1000]
}

abi-decode

Decode ABI-encoded data

Parameters:

  • types: Parameter types array
  • data: Hexadecimal data to decode

Example:

{
  "types": ["uint256", "address"],
  "data": "0x00000000000000000000000000000000000000000000000000000000000003e8"
}

RPC Service Tools

list-chains

List all supported EVM-compatible chains

Parameters: None

get-balance

Query address balance on specified chain

Parameters:

  • chain: Chain identifier (e.g., "ethereum", "polygon", "bsc")
  • address: Address to query
  • blockTag (optional): Block tag, default "latest"

Example:

{
  "chain": "ethereum",
  "address": "0x1234567890123456789012345678901234567890"
}

static-call

Make static calls to smart contracts (read-only operations)

Parameters:

  • chain: Chain identifier
  • to: Contract address
  • data: ABI-encoded function call data
  • blockTag (optional): Block tag, default "latest"

Example:

{
  "chain": "ethereum",
  "to": "0xA0b86a33E6441068C73f4Ea6cB24b80b52bF97F4",
  "data": "0x70a08231000000000000000000000000123456789012345678901234567890123456789"
}

send-transaction

Send transactions to smart contracts (requires private key)

Parameters:

  • chain: Chain identifier
  • to: Contract address
  • data: ABI-encoded function call data
  • value (optional): ETH amount to send (wei)
  • gasLimit (optional): Gas limit
  • gasPrice (optional): Gas price (wei)
  • privateKey: Sender's private key

Example:

{
  "chain": "sepolia",
  "to": "0x1234567890123456789012345678901234567890",
  "data": "0xa9059cbb000000000000000000000000...",
  "value": "0",
  "privateKey": "0x..."
}

Performance Optimization

Vanity Address Generation Performance Tips

  • Shorter prefixes generate faster
  • Suffixes are slightly easier than prefixes
  • Recommended to use 4-8 worker threads for optimal performance
  • Avoid specifying both long prefix and long suffix simultaneously

Expected Generation Time

  • 4 hex characters: seconds to minutes
  • 5 hex characters: minutes to tens of minutes
  • 6 hex characters: hours
  • 7+ characters: may take very long time

Supported Blockchain Networks

Mainnet

  • Ethereum: ethereum (Chain ID: 1)
  • Polygon: polygon (Chain ID: 137)
  • BSC: bsc (Chain ID: 56)
  • Arbitrum: arbitrum (Chain ID: 42161)
  • Optimism: optimism (Chain ID: 10)
  • Avalanche: avalanche (Chain ID: 43114)
  • Fantom: fantom (Chain ID: 250)

Testnet

  • Sepolia: sepolia (Chain ID: 11155111)

All networks use public RPC endpoints to ensure stability and accessibility.

Tech Stack

  • TypeScript: Type-safe JavaScript
  • MCP SDK: Model Context Protocol implementation
  • Ethers.js: Ethereum library
  • Node.js Worker Threads: Multi-threaded concurrent computation
  • 4byte.directory API: Function signature database

Security Considerations

⚠️ Important Notes:

  • Generated private keys have complete control over assets
  • Always keep private keys secure and never share them with anyone
  • Recommend generating important addresses in offline environments
  • This tool is for learning and testing purposes only

Installation via NPM

You can install this MCP server globally:

npm install -g blockchain-mcp-server

Or use it with npx:

npx blockchain-mcp-server

MCP Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "blockchain": {
      "command": "npx",
      "args": ["blockchain-mcp-server"]
    }
  }
}

License

MIT License