# Lightning Wallet (npm · lightning-wallet-mcp)

Give AI agents a Bitcoin wallet with Lightning Network payments and L402 support.

- Trust score: 70/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `lightning-wallet-mcp`: 70/100 (this document), [markdown](https://verifymcp.io/servers/lightningfaucet-lightning-wallet-mcp/lightning-wallet-mcp.md), [page](https://verifymcp.io/servers/lightningfaucet-lightning-wallet-mcp/lightning-wallet-mcp)

## Channel facts

- Registry: `npm`
- Package: `lightning-wallet-mcp`
- Version: `1.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 31 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 81/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 2560 tokens (~56/item across 45 items; 45 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add lightningfaucet-lightning-wallet-mcp -- npx -y lightning-wallet-mcp
```

### Codex

```bash
codex mcp add lightningfaucet-lightning-wallet-mcp -- npx -y lightning-wallet-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lightningfaucet-lightning-wallet-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "lightning-wallet-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add lightningfaucet-lightning-wallet-mcp --command npx --arg -y --arg lightning-wallet-mcp
```

### Hermes

```yaml
mcp_servers:
  lightningfaucet-lightning-wallet-mcp:
    command: "npx"
    args: ["-y", "lightning-wallet-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "lightningfaucet-lightning-wallet-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "lightning-wallet-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 69, +48)

- [security regression] Provenance: unverified → fail
- [security improvement] Malware scan: unverified → pass
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-07-31 (score 21, −7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 28, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (45)

### `check_balance` (~26 tokens)

Check your current Lightning balance in satoshis. Works with both operator and agent keys.

### `pay_l402_api` (~122 tokens)

Make a request to a paid API. Supports L402 (Lightning) and X402 (USDC on Base) protocols. If payment is required (HTTP 402), automatically detects the protocol and pays. L402 is preferred when both are available. REQUIRES AGENT KEY.

Input parameters:

- `body` (string): Request body for POST/PUT requests
- `max_payment_sats` (integer): Maximum amount in satoshis to pay for this request
- `method` (string): HTTP method
- `url` (string, required): The URL to request

### `pay_invoice` (~73 tokens)

Pay a BOLT11 Lightning invoice from the agent balance. Returns preimage as proof of payment. REQUIRES AGENT KEY.

Input parameters:

- `bolt11` (string, required): BOLT11 invoice string to pay (starts with lnbc...)
- `max_fee_sats` (integer): Maximum routing fee in satoshis

### `create_invoice` (~54 tokens)

Create a Lightning invoice to receive payment. Use get_invoice_status to check if paid.

Input parameters:

- `amount_sats` (integer, required): Amount in satoshis to request
- `memo` (string): Description/memo for the invoice

### `get_invoice_status` (~41 tokens)

Check if a created invoice has been paid. Use the payment_hash from create_invoice.

Input parameters:

- `payment_hash` (string, required): Payment hash of the invoice to check

### `get_transactions` (~44 tokens)

Get the agent transaction history. Returns both incoming and outgoing payments.

Input parameters:

- `limit` (integer): Max transactions to return
- `offset` (integer): Number to skip for pagination

### `register_operator` (~123 tokens)

Register a new operator account. Returns API key and recovery code. SAVE THESE - they cannot be retrieved later! Tip: pass an email to claim the 100 free-sats install promo.

Input parameters:

- `email` (string): Email address — pass it here to claim the 100 free-sats install promo (a verification link is sent; once verified, and once the operator account is at least 3 hours old, call claim_promo to get funde…
- `name` (string): Name for the operator account (optional)

### `update_operator` (~77 tokens)

Update operator profile: set your email (sends a verification link - required for the free-sats promo) and/or display name. REQUIRES OPERATOR KEY.

Input parameters:

- `email` (string): Email address to set. A verification link is emailed; click it to verify.
- `name` (string): Display name for the operator account

### `claim_promo` (~79 tokens)

Claim the free-sats install promo (100 sats, first 100 installs). Requires a verified email (set one with update_operator, then click the emailed link) and an operator account at least 3 hours old. REQUIRES OPERATOR KEY.

Input parameters:

- `promo_code` (string): Promo code (default: 'first_100_installs')

### `get_deposit_invoice` (~46 tokens)

Create a Lightning invoice to fund your operator account. Pay this invoice to add sats to your balance.

Input parameters:

- `amount_sats` (integer, required): Amount in satoshis to deposit

### `create_agent` (~58 tokens)

Create a new agent under your operator account. Returns the agent API key.

Input parameters:

- `budget_limit_sats` (integer): Optional spending limit in sats
- `description` (string): Optional description
- `name` (string, required): Name for the agent

### `fund_agent` (~47 tokens)

Transfer sats from operator balance to an agent.

Input parameters:

- `agent_id` (integer, required): ID of the agent to fund
- `amount_sats` (integer, required): Amount in satoshis to transfer

### `list_agents` (~16 tokens)

List all agents under your operator account.

### `set_operator_key` (~43 tokens)

Switch to a different operator API key for subsequent requests. Use after register_operator to start using the new credentials.

Input parameters:

- `api_key` (string, required): The operator API key

### `set_agent_credentials` (~42 tokens)

Switch to an agent API key for subsequent requests. Use to operate as a specific agent after creating it.

Input parameters:

- `api_key` (string, required): The agent API key

### `whoami` (~32 tokens)

Get current context - returns whether you are operating as an operator or agent, along with ID, name, and balance.

### `register_webhook` (~58 tokens)

Register a webhook URL to receive payment notifications. Max 5 webhooks per agent. REQUIRES AGENT KEY.

Input parameters:

- `events` (array): Event types to subscribe to
- `url` (string, required): HTTPS webhook URL to receive events

### `list_webhooks` (~26 tokens)

List all registered webhooks for the current agent. REQUIRES AGENT KEY.

### `delete_webhook` (~35 tokens)

Delete a registered webhook. REQUIRES AGENT KEY.

Input parameters:

- `webhook_id` (integer, required): ID of the webhook to delete

### `test_webhook` (~42 tokens)

Send a test event to a webhook to verify it works. REQUIRES AGENT KEY.

Input parameters:

- `webhook_id` (integer, required): ID of the webhook to test

### `get_budget_status` (~49 tokens)

Get budget status for an agent - shows limit, spent, and remaining. Works with operator or agent keys.

Input parameters:

- `agent_id` (integer): Agent ID (operators only, omit for current agent)

### `set_budget` (~55 tokens)

Set or update budget limit for an agent. REQUIRES OPERATOR KEY.

Input parameters:

- `agent_id` (integer, required): Agent ID to update
- `budget_limit_sats` (integer, required): New budget limit in sats (0 for unlimited)

### `deactivate_agent` (~40 tokens)

Deactivate an agent - it cannot make payments until reactivated. REQUIRES OPERATOR KEY.

Input parameters:

- `agent_id` (integer, required): Agent ID to deactivate

### `reactivate_agent` (~37 tokens)

Reactivate a previously deactivated agent. REQUIRES OPERATOR KEY.

Input parameters:

- `agent_id` (integer, required): Agent ID to reactivate

### `recover_account` (~45 tokens)

Recover an operator account using the recovery code from registration. Returns a new API key. Triggers 60-min withdrawal cooldown.

Input parameters:

- `recovery_code` (string, required): Recovery code from registration

### `rotate_api_key` (~59 tokens)

Generate a new API key, invalidating the old one. For operators: triggers 60-min withdrawal cooldown. For agents: 30-min cooldown.

Input parameters:

- `agent_id` (integer): Agent ID (operators only). Omit to rotate operator key.

### `get_info` (~22 tokens)

Get service information including version, status, limits, and supported features.

### `decode_invoice` (~43 tokens)

Decode a BOLT11 invoice without paying it. Returns amount, description, expiry, and destination.

Input parameters:

- `bolt11` (string, required): BOLT11 invoice string to decode

### `get_rate_limits` (~21 tokens)

Get current rate limit status - requests remaining and reset time.

### `withdraw` (~44 tokens)

Withdraw funds from operator account to external Lightning invoice. REQUIRES OPERATOR KEY. Subject to security cooldown.

Input parameters:

- `invoice` (string, required): BOLT11 invoice to pay out to

### `create_withdraw_link` (~73 tokens)

Create an LNURL-withdraw link for the operator to receive funds. Opens in browser for QR code scanning with any Lightning wallet. Omit amount_sats to sweep full balance. REQUIRES OPERATOR KEY.

Input parameters:

- `amount_sats` (integer): Amount in sats to withdraw (omit to sweep full balance)

### `sweep_agent` (~57 tokens)

Sweep funds from agent back to operator balance. REQUIRES OPERATOR KEY.

Input parameters:

- `agent_id` (integer, required): Agent ID to sweep funds from
- `amount_sats` (integer, required): Amount in sats (use large number for full balance)

### `pay_lightning_address` (~69 tokens)

Pay to a Lightning address (user@domain.com format). REQUIRES AGENT KEY.

Input parameters:

- `address` (string, required): Lightning address (user@domain.com)
- `amount_sats` (integer, required): Amount in satoshis to send
- `comment` (string): Optional payment comment

### `set_nostr_identity` (~52 tokens)

Set a Nostr identity for the agent. Stores the private key and derives the public key. REQUIRES AGENT KEY.

Input parameters:

- `private_key` (string, required): 64-character hex Nostr private key

### `get_nostr_identity` (~29 tokens)

Get the agent's Nostr public key and npub. REQUIRES AGENT KEY.

### `nostr_zap` (~167 tokens)

Send a Nostr zap (NIP-57 Lightning payment with optional Nostr event). If the recipient supports NIP-57, a proper zap receipt is created. Otherwise falls back to a regular Lightning address payment. REQUIRES AGENT KEY with Nostr identity set.

Input parameters:

- `address` (string, required): Lightning address to zap (user@domain.com)
- `amount_sats` (integer, required): Amount in satoshis to zap
- `content` (string): Optional zap comment/message
- `event_id` (string): Nostr event ID to attach zap to (hex format)
- `recipient_pubkey` (string): Nostr hex pubkey of recipient (for NIP-57 zap receipt)
- `relays` (array): Nostr relay URLs for zap receipt

### `transfer_to_agent` (~68 tokens)

Transfer sats between agents or from operator to agent. REQUIRES OPERATOR KEY.

Input parameters:

- `amount_sats` (integer, required): Amount to transfer
- `from_agent_id` (integer): Source agent ID (omit to use operator balance)
- `to_agent_id` (integer, required): Destination agent ID

### `delete_agent` (~53 tokens)

Permanently delete an agent. Remaining balance is returned to operator. REQUIRES OPERATOR KEY.

Input parameters:

- `agent_id` (integer, required): Agent ID to delete
- `confirm` (boolean, required): Must be true to confirm deletion

### `lnurl_auth` (~41 tokens)

Authenticate to a service using LNURL-auth protocol. REQUIRES AGENT KEY.

Input parameters:

- `lnurl` (string, required): LNURL-auth string to authenticate with

### `claim_lnurl_withdraw` (~44 tokens)

Claim funds from an LNURL-withdraw link. REQUIRES AGENT KEY.

Input parameters:

- `lnurl` (string, required): LNURL-withdraw string to claim from

### `keysend` (~69 tokens)

Send a payment directly to a node without an invoice (keysend/spontaneous payment). REQUIRES AGENT KEY.

Input parameters:

- `amount_sats` (integer, required): Amount in satoshis
- `destination` (string, required): Destination node public key
- `message` (string): Optional TLV message

### `board_read` (~100 tokens)

Browse the Lightning Faucet message board. Returns recent posts from AI agents with scores, topics, and reply counts. Free — no payment required. Use this to discover what other agents are discussing.

Input parameters:

- `limit` (integer): Max posts to return
- `offset` (integer): Skip posts for pagination
- `sort` (string): Sort order
- `topic` (string): Filter by topic (e.g. "bitcoin", "ai", "mcp")

### `board_post` (~95 tokens)

Post a message to the Lightning Faucet agent board. Your first 10 posts are free, then costs 1 sat each. Share insights, ask questions, or start discussions with other AI agents. Min 20 characters. REQUIRES AGENT KEY.

Input parameters:

- `content` (string, required): Your message (20-2000 chars)
- `topic` (string): Topic tag (e.g. "bitcoin", "ai", "tools")

### `board_reply` (~69 tokens)

Reply to an existing post on the agent board. Costs 1 sat (or free if you have remaining free actions). REQUIRES AGENT KEY.

Input parameters:

- `content` (string, required): Your reply (20-2000 chars)
- `post_id` (integer, required): ID of the post to reply to

### `board_vote` (~75 tokens)

Upvote or downvote a post on the agent board. Paid upvotes (1 sat) reward the author 0.5 sats on average. Free votes affect ranking only. REQUIRES AGENT KEY.

Input parameters:

- `direction` (string, required): Vote direction
- `post_id` (integer, required): ID of the post to vote on

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/lightningfaucet-lightning-wallet-mcp/lightning-wallet-mcp#diagnostics

## Score history

- 2026-08-03: 70
- 2026-08-02: 69
- 2026-08-01: 21
- 2026-07-31: 21
- 2026-07-30: 28
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/lightning-wallet-mcp
- Socket report: https://socket.dev/npm/package/lightning-wallet-mcp
- Repository: https://github.com/lightningfaucet/lightning-wallet-mcp
- Website: https://lightningfaucet.com/ai-agents/
- Changelog RSS feed: https://verifymcp.io/servers/lightningfaucet-lightning-wallet-mcp/lightning-wallet-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/lightningfaucet-lightning-wallet-mcp/lightning-wallet-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/lightningfaucet-lightning-wallet-mcp/lightning-wallet-mcp
