Blockchain MCP Server with Ethereum vanity address generation, 4byte lookup, ABI encoding, and multi-chain RPC calls
npm install blockchain-mcp-serverA Model Context Protocol (MCP) based blockchain tools server providing Ethereum vanity address generation and Cast command functionality.
bash
npm install
`$3
`bash
npm run build
`$3
`bash
npm start
`$3
`bash
npm run dev
`Tool Usage Guide
$3
####
generate-vanity-address
Generate Ethereum addresses matching specified conditionsParameters:
-
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 falseExample:
`json
{
"prefix": "1234",
"suffix": "abcd",
"workers": 8,
"caseSensitive": false
}
`####
validate-ethereum-address
Validate Ethereum address validityParameters:
-
address: Ethereum address to validate$3
####
4byte
Get function signatures for the given selectorParameters:
-
selector: 4-byte function selector (hexadecimal)Example:
`json
{
"selector": "0xa9059cbb"
}
`####
4byte-decode
Decode ABI-encoded calldataParameters:
-
calldata: ABI-encoded calldata (hexadecimal)Example:
`json
{
"calldata": "0xa9059cbb000000000000000000000000..."
}
`####
abi-encode
ABI encode function parametersParameters:
-
types: Parameter types array
- values: Parameter values arrayExample:
`json
{
"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 arrayExample:
`json
{
"functionSignature": "transfer(address,uint256)",
"values": ["0x1234567890123456789012345678901234567890", 1000]
}
`####
abi-decode
Decode ABI-encoded dataParameters:
-
types: Parameter types array
- data: Hexadecimal data to decodeExample:
`json
{
"types": ["uint256", "address"],
"data": "0x00000000000000000000000000000000000000000000000000000000000003e8"
}
`$3
####
list-chains
List all supported EVM-compatible chainsParameters: None
####
get-balance
Query address balance on specified chainParameters:
-
chain: Chain identifier (e.g., "ethereum", "polygon", "bsc")
- address: Address to query
- blockTag (optional): Block tag, default "latest"Example:
`json
{
"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:
`json
{
"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 keyExample:
`json
{
"chain": "sepolia",
"to": "0x1234567890123456789012345678901234567890",
"data": "0xa9059cbb000000000000000000000000...",
"value": "0",
"privateKey": "0x..."
}
`Performance Optimization
$3
- 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$3
- 4 hex characters: seconds to minutes
- 5 hex characters: minutes to tens of minutes
- 6 hex characters: hours
- 7+ characters: may take very long timeSupported Blockchain Networks
$3
- 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)$3
- 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:
`bash
npm install -g blockchain-mcp-server
`Or use it with npx:
`bash
npx blockchain-mcp-server
`$3
Add to your MCP client configuration:
`json
{
"mcpServers": {
"blockchain": {
"command": "npx",
"args": ["blockchain-mcp-server"]
}
}
}
``MIT License