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 🙏

© 2026 – Pkg Stats / Ryan Hefner

kaspa-mcp

v0.1.3

Published

MCP server for Kaspa transactions

Readme

Kaspa MCP

MCP server for sending KAS on the Kaspa blockDAG.

About Kaspa

Kaspa is a fast, scalable Layer-1 cryptocurrency built on proof-of-work (PoW) and powered by the GHOSTDAG protocol — a novel consensus mechanism that extends Nakamoto's original design. Unlike traditional blockchains that discard competing blocks, GHOSTDAG allows parallel blocks to coexist and orders them within a Directed Acyclic Graph (blockDAG), enabling high throughput while preserving decentralization and security.

Key Features:

  • 10 blocks per second with sub-second finality (Crescendo upgrade, May 2025)
  • Proof of Work using kHeavyHash algorithm
  • Fair launch - no premine, no ICO, no token allocations
  • Decentralized - runs on standard hardware

Installation

npm install
npm run build

Configuration

Set these environment variables:

| Variable | Required | Description | |----------|----------|-------------| | KASPA_MNEMONIC | Yes* | BIP39 mnemonic phrase (24 words) | | KASPA_PRIVATE_KEY | Yes* | Hex-encoded private key (alternative to mnemonic) | | KASPA_NETWORK | No | Network: mainnet, testnet-10, testnet-11. Defaults to mainnet | | KASPA_ACCOUNT_INDEX | No | BIP44 account index when using mnemonic. Defaults to 0 |

*Either KASPA_MNEMONIC or KASPA_PRIVATE_KEY must be set.

Usage with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "kaspa": {
      "command": "npx",
      "args": ["kaspa-mcp"],
      "env": {
        "KASPA_MNEMONIC": "your twenty four word mnemonic phrase here ...",
        "KASPA_NETWORK": "mainnet"
      }
    }
  }
}

Tools

get_my_address

Get the Kaspa address derived from your configured private key or mnemonic.

Returns: { address: string }

get_balance

Get balance for a Kaspa address.

Parameters:

  • address (optional): Address to check. Defaults to your wallet address.

Returns: { address: string, balance: string, utxoCount: number }

get_fee_estimate

Get current fee estimates from the network.

Returns: { priorityFee: string, normalFee: string, lowFee: string }

send_kaspa

Send KAS tokens to a recipient.

Parameters:

  • to: Recipient Kaspa address (must match wallet network)
  • amount: Amount in KAS as string (e.g., "10.5", max 8 decimal places)
  • priorityFee (optional): Priority fee in sompi

Returns: { txId: string, fee: string }

Validations:

  • Address format and network prefix validation
  • Amount must be a valid positive decimal number
  • Maximum 8 decimal places (1 sompi = 0.00000001 KAS)
  • Insufficient balance check before broadcast

get_transaction

Get transaction details including inputs and outputs.

Parameters:

  • txId: Transaction ID

Returns:

{
  txId: string,
  accepted: boolean,
  blockHash?: string,
  blockTime?: number,
  inputs: Array<{ transactionId: string, index: number }>,
  outputs: Array<{ index: number, amount: string, address: string }>
}

Example

Demo of kaspa-mcp in Claude Code

Test Prompts

Try these prompts to verify your MCP is working:

"What is my Kaspa address?"
"How much KAS do I have?"
"What are the current network fees?"
"Send 5 KAS to kaspa:qz..."

The MCP will:

  1. Validate the recipient address matches your network
  2. Check your balance is sufficient
  3. Build the transaction with KIP-9 compliant fees
  4. Sign with your private key
  5. Broadcast to the network via public nodes
  6. Return the transaction ID

Technical Details

  • Uses kaspa-wasm for cryptographic operations
  • Connects to public nodes via Resolver for automatic node discovery
  • Implements BIP44 derivation path m/44'/111111'/account' for mnemonic wallets
  • Transaction building uses Generator for KIP-9 compliant UTXO management

Security

  • Private keys and mnemonics are only used locally for signing
  • Keys are never sent to any external service
  • Error messages are sanitized to prevent secret leakage
  • All transactions require explicit user action via MCP tools

Networks

| Network | Address Prefix | API Endpoint | |---------|---------------|--------------| | mainnet | kaspa: | api.kaspa.org | | testnet-10 | kaspatest: | api-tn10.kaspa.org | | testnet-11 | kaspatest: | api-tn11.kaspa.org |

License

ISC