AgentStack
MCP verified MIT Self-run

Lightning Wallet Mcp

mcp-lightningfaucet-lightning-wallet-mcp · by lightningfaucet

MCP Server for Lightning Faucet - Give your AI agent a Bitcoin wallet

No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add mcp-lightningfaucet-lightning-wallet-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Lightning Wallet Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Lightning Wallet

[](https://www.npmjs.com/package/lightning-wallet-mcp) [](https://opensource.org/licenses/MIT) [](https://glama.ai/mcp/servers/lightningfaucet/lightning-wallet-mcp)

Give your AI agent a Bitcoin wallet. MCP server + CLI. Works with Claude Code, OpenClaw, Cursor, and any agent framework.

What's New in v1.4

  • update_operator tool / lw set-email - set your operator email from the MCP client or CLI; a verification link is emailed to you.
  • claim_promo tool / lw claim-promo - claim the free-sats install promo directly from your agent. Requirements: verified email + operator account at least 3 hours old.
  • get_info works before registration - service info no longer requires an API key.

Free 100 sats for new operators

  1. lw register --email you@example.com (or the register_operator MCP tool with an email)
  2. Click the verification link we email you
  3. After your account is 3 hours old: lw claim-promo (or the claim_promo MCP tool)

One bonus per operator, first 100 installs only, no deposit required.

What's New in v1.3

v1.3.0 - L402 protocol v0 support per the latest Lightning Labs spec.

  • L402 Protocol v0 - Updated header format: version="0", token=, backward compatible with macaroon=
  • Endpoint Discovery - .well-known/l402.json on lightningfaucet.com and certvera.com
  • Backward Compatible - Handles both old and new L402 header formats from any service

What's New in v1.1

v1.1.0 - X402 protocol support (USDC on Base) as automatic fallback alongside L402 (Lightning).

  • X402 Support - Automatic USDC payments on Base when L402 isn't available
  • Protocol Auto-Detection - pay_l402_api seamlessly handles both L402 and X402
  • Webhooks - Real-time notifications for payments and events
  • Keysend - Send payments without invoices using node pubkeys
  • Invoice Decoding - Decode BOLT11 invoices before paying
  • Agent Analytics - Track spending patterns and usage
  • Transaction Export - Export history in JSON or CSV format
  • Budget Management - Get detailed budget status and set limits
  • Agent Lifecycle - Deactivate, reactivate, and delete agents
  • Account Recovery - Recover accounts and rotate API keys
  • Agent-to-Agent Transfers - Move funds between your agents

Why Lightning Wallet MCP?

  • Instant Payments - Lightning Network transactions settle in milliseconds
  • L402 + X402 Protocol Support - Access any paid API automatically (Lightning or USDC)
  • Operator/Agent Hierarchy - Manage multiple agents with spending limits
  • No Custody Risk - Each agent has isolated funds with operator oversight
  • Production Ready - Battle-tested infrastructure powering real transactions
  • Webhook Notifications - Get notified instantly when payments arrive
  • Full Observability - Analytics, exports, and detailed status tracking

Two Ways to Use

CLI (Any Agent Framework)

For CLI-first agents (OpenClaw, Pi, KiloCode, or any agent with Bash access):

npm install -g lightning-wallet-mcp

This installs the lw command:

# Register and save your API key
export LIGHTNING_WALLET_API_KEY=$(lw register --name "My Bot" | jq -r '.api_key')

# Check balance
lw balance | jq '.balance_sats'

# Pay an L402 API
lw pay-api "https://lightningfaucet.com/api/l402/fortune"

# Create and fund an agent
lw create-agent "Research Bot" --budget 5000
lw fund-agent 1 1000

# Check identity
lw whoami

Output is JSON by default (pipe to jq). Use --human for readable output.

Run lw help for all commands.

MCP Server (Claude Code, Cursor, Windsurf)

For MCP-native clients, configure as an MCP server:

Option A: Self-Registration

{
  "mcpServers": {
    "lightning-wallet": {
      "command": "npx",
      "args": ["lightning-wallet-mcp"]
    }
  }
}

Then ask Claude: "Register a new Lightning Wallet operator account"

Option B: Pre-configured API Key

  1. Get an API key at lightningfaucet.com/ai-agents
  2. Configure Claude Code (~/.claude/settings.json):
{
  "mcpServers": {
    "lightning-wallet": {
      "command": "npx",
      "args": ["lightning-wallet-mcp"],
      "env": {
        "LIGHTNING_WALLET_API_KEY": "your-api-key-here"
      }
    }
  }
}

Tools Reference

Service Info

| Tool | Description | |------|-------------| | get_info | Get service status, version, and supported features | | decode_invoice | Decode a BOLT11 invoice to see amount, destination, and expiry |

Context & Identity

| Tool | Description | |------|-------------| | whoami | Get current context - shows if operating as operator or agent | | check_balance | Check current Lightning balance in satoshis | | get_rate_limits | Check current rate limit status and requests remaining |

Payments (Agent Key Required)

| Tool | Description | |------|-------------| | pay_l402_api | Access paid APIs (L402/X402) - auto-detects protocol and pays | | pay_invoice | Pay any BOLT11 Lightning invoice | | keysend | Send payment directly to a node pubkey (no invoice needed) | | pay_lightning_address | Pay to a Lightning address (user@domain.com format) | | create_invoice | Generate invoice to receive payments | | get_invoice_status | Check if an invoice has been paid | | get_transactions | View transaction history |

LNURL (Agent Key Required)

| Tool | Description | |------|-------------| | lnurl_auth | Authenticate to a service using LNURL-auth protocol | | claim_lnurl_withdraw | Claim funds from an LNURL-withdraw link |

Operator Management

| Tool | Description | |------|-------------| | register_operator | Create new operator account | | recover_account | Recover account using recovery code | | rotate_api_key | Generate a new API key (60-min cooldown on withdrawals) | | get_deposit_invoice | Create invoice to fund operator account | | withdraw | Withdraw funds to external Lightning destination | | set_operator_key | Switch to operator credentials |

  • update_operator - set operator email (sends verification link) and/or name
  • claim_promo - claim the free-sats install promo (verified email + 3h account)

Agent Management

| Tool | Description | |------|-------------| | create_agent | Create agent under operator | | list_agents | List all agents under operator | | fund_agent | Transfer sats from operator to agent | | transfer_to_agent | Transfer sats between agents or from operator to agent | | sweep_agent | Sweep funds from agent back to operator | | deactivate_agent | Temporarily disable an agent | | reactivate_agent | Re-enable a deactivated agent | | delete_agent | Permanently delete an agent (returns balance to operator) | | get_budget_status | Get agent's budget limit and spending | | set_budget | Set or update agent's spending limit | | set_agent_credentials | Switch to agent credentials |

Webhooks

| Tool | Description | |------|-------------| | register_webhook | Register a URL to receive event notifications | | list_webhooks | List all registered webhooks | | delete_webhook | Delete a webhook | | test_webhook | Send a test event to verify webhook connectivity |

Webhook Events:

  • invoice_paid - Payment received on an invoice
  • payment_completed - Outgoing payment succeeded
  • payment_failed - Outgoing payment failed
  • balance_low - Balance dropped below threshold
  • budget_warning - 80% of budget consumed
  • test - Manual test event

CLI Reference

All commands output JSON to stdout. Errors go to stderr with exit code 1.

| Command | Description | |---------|-------------| | lw register [--name "name"] | Create operator account, prints API key | | lw whoami | Current identity (operator or agent) | | lw balance | Balance in satoshis | | lw info | Service status and capabilities | | lw deposit | Generate deposit invoice | | lw withdraw | Withdraw to external wallet | | lw pay | Pay BOLT11 invoice [--max-fee ] | | lw pay-api | Pay L402/X402 API [--method GET] [--body "{}"] [--max-sats 1000] | | lw decode | Decode BOLT11 invoice | | lw create-agent | Create agent [--budget ] | | lw fund-agent | Transfer sats to agent | | lw list-agents | List all agents | | lw transactions | Recent transactions [--limit 10] [--offset 0] | | lw help | Show all commands |

Agent Workflow Example (Bash)

# 1. Register (one-time)
export LIGHTNING_WALLET_API_KEY=$(lw register --name "My Agent" | jq -r '.api_key')

# 2. Fund the account (pay the invoice with any Lightning wallet)
lw deposit 10000 | jq -r '.bolt11'

# 3. Create an agent with a budget
AGENT=$(lw create-agent "Worker" --budget 5000)
AGENT_ID=$(echo $AGENT | jq -r '.agent_id')
AGENT_KEY=$(echo $AGENT | jq -r '.agent_api_key')

# 4. Fund the agent
lw fund-agent $AGENT_ID 2000

# 5. Switch to agent context and make payments
export LIGHTNING_WALLET_API_KEY=$AGENT_KEY
lw pay-api "https://api.example.com/data" --max-sats 100

# 6. Check what happened
lw transactions --limit 5

Paid API Protocols: L402 + X402

Lightning Wallet MCP supports two HTTP 402 payment protocols:

  • L402 (primary) - Lightning Network payments. The original pay-per-request protocol.
  • X402 (fallback) - USDC on Base (Coinbase's protocol). Auto-detected when L402 isn't available.

When you call pay_l402_api, the server automatically detects which protocol the API uses. L402 always takes priority if both headers are present. Agents always pay in sats regardless of protocol — X402 amounts are converted at market rate.

L402 Protocol

The L402 protocol (formerly LSAT) enables APIs to charge per-request using Lightning. When you call an L402-protected endpoint:

  1. Server returns HTTP 402 with a Lightning invoice
  2. Lightning Faucet pays the invoice automatically
  3. Request completes with the paid content

X402 Protocol (Coinbase)

X402 uses USDC on Base for API payments. The flow is transparent to agents:

  1. Server returns HTTP 402 with PAYMENT-REQUIRED header
  2. Lightning Faucet converts USDC amount to sats, debits agent balance
  3. Signs an EIP-712 authorization and retries with PAYMENT-SIGNATURE header
  4. Request completes — agent sees the same response format as L402

The response includes payment_protocol: "x402" and usdc_amount so agents know which protocol was used.

L402 API Registry

We maintain a directory of L402-enabled APIs at lightningfaucet.com/l402-registry - perfect for testing your agents.

Demo L402 APIs

Try these endpoints to test L402 payments:

# Get a fortune (costs ~10-50 sats)
pay_l402_api({ url: "https://lightningfaucet.com/api/l402/fortune" })

# Get a joke (costs ~10-50 sats)
pay_l402_api({ url: "https://lightningfaucet.com/api/l402/joke" })

# Get an inspirational quote (costs ~10-50 sats)
pay_l402_api({ url: "https://lightningfaucet.com/api/l402/quote" })

See the L402 API Registry for more endpoints and resources.

Complete Workflow Example

// 1. Register as operator (if no API key configured)
register_operator({ name: "My AI Company" })
// Returns: { api_key: "lf_abc...", recovery_code: "xyz...", operator_id: 123 }

// 2. Activate the operator key
set_operator_key({ api_key: "lf_abc..." })

// 3. Check who you are
whoami()
// Returns: { type: "operator", id: 123, name: "My AI Company", balance_sats: 0 }

// 4. Fund your operator account
get_deposit_invoice({ amount_sats: 10000 })
// Pay this invoice with any Lightning wallet

// 5. Create an agent with budget limit
create_agent({ name: "Research Assistant", budget_limit_sats: 5000 })
// Returns: { agent_id: 456, agent_api_key: "agent_def..." }

// 6. Fund the agent
fund_agent({ agent_id: 456, amount_sats: 1000 })

// 7. Set up a webhook for payment notifications
register_webhook({
  url: "https://your-server.com/webhooks/lightning",
  events: ["invoice_paid", "payment_completed"]
})
// Returns: { webhook_id: 1, secret: "..." }  <- Save this secret!

// 8. Switch to agent mode for payments
set_agent_credentials({ api_key: "agent_def..." })

// 9. Check budget status
get_budget_status()
// Returns: { budget_limit_sats: 5000, total_spent_sats: 0, remaining_sats: 5000 }

// 10. Make payments!
pay_l402_api({ url: "https://api.example.com/premium-data" })

Keysend Payments

Send payments directly to a Lightning node without needing an invoice:

// Send 100 sats to a node with an optional message
keysend({
  destination: "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
  amount_sats: 100,
  message: "Hello from my AI agent!"
})

Invoice Decoding

Check invoice details before paying:

decode_invoice({ invoice: "lnbc1000n1..." })
// Returns: {
//   amount_sats: 1000,
//   description: "Test payment",
//   destination: "03abc...",
//   expires_at: "2026-01-16T12:00:00Z",
//   is_expired: false
// }

Tool Details

get_info

Get service status and capabilities.

{
  "success": true,
  "version": "1.0.1",
  "api_version": "1.0",
  "status": "operational",
  "max_payment_sats": 1000000,
  "min_payment_sats": 1,
  "supported_features": ["l402", "x402", "webhooks", "lightning_address", "keysend"]
}

whoami

Get current operating context.

Returns for Operator:

{
  "type": "operator",
  "id": 123,
  "name": "My Company",
  "balance_sats": 50000,
  "agent_count": 3
}

Returns for Agent:

{
  "type": "agent",
  "id": 456,
  "name": "Research Bot",
  "balance_sats": 1000,
  "budget_limit_sats": 5000,
  "operator_id": 123
}

payl402api

Access paid APIs with automatic payment. Supports both L402 (Lightning) and X402 (USDC on Base) protocols. Protocol is auto-detected from the 402 response headers.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | url | string | Yes | The URL to request | | method | string | No | HTTP method (GET, POST, PUT, DELETE). Default: GET | | body | string | No | Request body for POST/PUT | | maxpaymentsats | number | No | Maximum payment amount. Default: 1000 |

keysend

Send payment to a node without an invoice.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | destination | string | Yes | Target node public key (66 hex chars) | | amount_sats | number | Yes | Amount in satoshis | | message | string | No | Optional message (max 1000 chars) |

register_webhook

Register a URL to receive payment notifications.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | url | string | Yes | HTTPS URL to receive webhooks | | events | array | No | Event types to subscribe to. Default: ["invoice_paid"] |

Returns: Webhook ID and HMAC secret for signature verification.

Architecture

┌─────────────────────────────────────────────────────────┐
│                    OPERATOR                              │
│  • Holds main funds                                      │
│  • Creates and manages agents                            │
│  • Sets spending limits                                  │
│  • Receives webhook notifications                        │
│  • Can recover account with recovery code                │
├─────────────────────────────────────────────────────────┤
│     AGENT 1          AGENT 2          AGENT 3           │
│   ┌─────────┐      ┌─────────┐      ┌─────────┐        │
│   │ 1000 sat│      │ 5000 sat│      │ 2500 sat│        │
│   │ Budget: │      │ Budget: │      │ Budget: │        │
│   │ 5000    │      │ 10000   │      │ Unlimited│        │
│   └─────────┘      └─────────┘      └─────────┘        │
│       │                │                │               │
│   L402 APIs        Keysend          Receive

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [lightningfaucet](https://github.com/lightningfaucet)
- **Source:** [lightningfaucet/lightning-wallet-mcp](https://github.com/lightningfaucet/lightning-wallet-mcp)
- **License:** MIT
- **Homepage:** https://lightningfaucet.com/ai-agents/

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.