Lightning Faucet MCP Server
ทางการมอบกระเป๋าเงิน Bitcoin ที่รองรับการชำระเงินผ่าน Lightning Network ให้กับ AI agents
เอกสาร
Lightning Wallet
มอบกระเป๋า Bitcoin ให้กับเอเจนต์ AI ของคุณ เซิร์ฟเวอร์ MCP + CLI ทำงานร่วมกับ Claude Code, OpenClaw, Cursor และเฟรมเวิร์กเอเจนต์ใดๆ
มีอะไรใหม่ใน v1.4
- เครื่องมือ
update_operator/lw set-email- ตั้งค่าอีเมลผู้ดำเนินการจากไคลเอนต์ MCP หรือ CLI; ลิงก์ยืนยันจะถูกส่งไปยังอีเมลของคุณ - เครื่องมือ
claim_promo/lw claim-promo- รับโปรโมชั่นติดตั้งฟรี sats โดยตรงจากเอเจนต์ของคุณ ข้อกำหนด: อีเมลที่ยืนยันแล้ว + บัญชีผู้ดำเนินการที่มีอายุอย่างน้อย 3 ชั่วโมง get_infoทำงานก่อนการลงทะเบียน - ข้อมูลบริการไม่ต้องใช้คีย์ API อีกต่อไป
ฟรี 100 sats สำหรับผู้ดำเนินการใหม่
lw register --email [email protected](หรือเครื่องมือ MCPregister_operatorพร้อมอีเมล)- คลิกลิงก์ยืนยันที่เราส่งทางอีเมล
- หลังจากบัญชีของคุณมีอายุ 3 ชั่วโมง:
lw claim-promo(หรือเครื่องมือ MCPclaim_promo)
หนึ่งโบนัสต่อผู้ดำเนินการหนึ่งคน เฉพาะ 100 การติดตั้งแรกเท่านั้น ไม่ต้องฝากเงิน
มีอะไรใหม่ใน v1.3
v1.3.0 - รองรับ L402 protocol v0 ตามสเปคล่าสุดของ Lightning Labs
- L402 Protocol v0 - อัปเดตรูปแบบส่วนหัว:
version="0", token=, เข้ากันได้ย้อนหลังกับmacaroon= - การค้นพบปลายทาง -
.well-known/l402.jsonบน lightningfaucet.com และ certvera.com - เข้ากันได้ย้อนหลัง - จัดการรูปแบบส่วนหัว L402 ทั้งเก่าและใหม่จากบริการใดๆ
มีอะไรใหม่ใน v1.1
v1.1.0 - รองรับ X402 protocol (USDC บน Base) เป็นทางเลือกสำรองอัตโนมัติควบคู่กับ L402 (Lightning)
- รองรับ X402 - ชำระเงิน USDC อัตโนมัติบน Base เมื่อไม่มี L402
- ตรวจจับโปรโตคอลอัตโนมัติ -
pay_l402_apiจัดการทั้ง L402 และ X402 ได้อย่างราบรื่น - Webhooks - การแจ้งเตือนแบบเรียลไทม์สำหรับการชำระเงินและเหตุการณ์
- Keysend - ส่งการชำระเงินโดยไม่ต้องมีใบแจ้งหนี้โดยใช้ pubkey ของโหนด
- ถอดรหัสใบแจ้งหนี้ - ถอดรหัสใบแจ้งหนี้ BOLT11 ก่อนชำระเงิน
- การวิเคราะห์เอเจนต์ - ติดตามรูปแบบการใช้จ่ายและการใช้งาน
- ส่งออกธุรกรรม - ส่งออกประวัติในรูปแบบ JSON หรือ CSV
- การจัดการงบประมาณ - ดูสถานะงบประมาณโดยละเอียดและตั้งค่าขีดจำกัด
- วงจรชีวิตเอเจนต์ - ปิดใช้งาน เปิดใช้งานใหม่ และลบเอเจนต์
- กู้คืนบัญชี - กู้คืนบัญชีและหมุนเวียนคีย์ API
- โอนระหว่างเอเจนต์ - ย้ายเงินระหว่างเอเจนต์ของคุณ
ทำไมต้อง Lightning Wallet MCP?
- ชำระเงินทันที - ธุรกรรม Lightning Network เสร็จสิ้นในหน่วยมิลลิวินาที
- รองรับ L402 + X402 Protocol - เข้าถึง API แบบชำระเงินใดๆ โดยอัตโนมัติ (Lightning หรือ USDC)
- ลำดับชั้นผู้ดำเนินการ/เอเจนต์ - จัดการหลายเอเจนต์พร้อมขีดจำกัดการใช้จ่าย
- ไม่มีความเสี่ยงจากการฝากทรัพย์สิน - แต่ละเอเจนต์มีเงินแยกต่างหากภายใต้การดูแลของผู้ดำเนินการ
- พร้อมสำหรับการใช้งานจริง - โครงสร้างพื้นฐานที่ผ่านการทดสอบอย่างหนัก ขับเคลื่อนธุรกรรมจริง
- การแจ้งเตือนผ่าน Webhook - รับการแจ้งเตือนทันทีเมื่อมีการชำระเงินเข้ามา
- การตรวจสอบได้เต็มรูปแบบ - การวิเคราะห์ การส่งออก และการติดตามสถานะโดยละเอียด
สองวิธีในการใช้งาน
CLI (เฟรมเวิร์กเอเจนต์ใดๆ)
สำหรับเอเจนต์ที่ใช้ CLI เป็นหลัก (OpenClaw, Pi, KiloCode หรือเอเจนต์ใดๆ ที่เข้าถึง Bash ได้):
npm install -g lightning-wallet-mcp
สิ่งนี้จะติดตั้งคำสั่ง lw:
# 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
ผลลัพธ์เป็น JSON โดยค่าเริ่มต้น (ไปป์ไปยัง jq) ใช้ --human สำหรับผลลัพธ์ที่อ่านง่าย
รัน lw help สำหรับคำสั่งทั้งหมด
เซิร์ฟเวอร์ MCP (Claude Code, Cursor, Windsurf)
สำหรับไคลเอนต์ MCP ดั้งเดิม กำหนดค่าเป็นเซิร์ฟเวอร์ MCP:
ตัวเลือก A: ลงทะเบียนด้วยตนเอง
{
"mcpServers": {
"lightning-wallet": {
"command": "npx",
"args": ["lightning-wallet-mcp"]
}
}
}
จากนั้นถาม Claude: "Register a new Lightning Wallet operator account"
ตัวเลือก B: คีย์ API ที่กำหนดค่าไว้ล่วงหน้า
- รับคีย์ API ที่ lightningfaucet.com/ai-agents
- กำหนดค่า Claude Code (
~/.claude/settings.json):
{
"mcpServers": {
"lightning-wallet": {
"command": "npx",
"args": ["lightning-wallet-mcp"],
"env": {
"LIGHTNING_WALLET_API_KEY": "your-api-key-here"
}
}
}
}
การอ้างอิงเครื่องมือ
ข้อมูลบริการ
| เครื่องมือ | คำอธิบาย |
|---|---|
get_info | รับสถานะบริการ เวอร์ชัน และคุณสมบัติที่รองรับ |
decode_invoice | ถอดรหัสใบแจ้งหนี้ BOLT11 เพื่อดูจำนวนเงิน ปลายทาง และวันหมดอายุ |
บริบทและข้อมูลประจำตัว
| เครื่องมือ | คำอธิบาย |
|---|---|
whoami | รับบริบทปัจจุบัน - แสดงว่ากำลังดำเนินการในฐานะผู้ดำเนินการหรือเอเจนต์ |
check_balance | ตรวจสอบยอดคงเหลือ Lightning ปัจจุบันในหน่วย satoshis |
get_rate_limits | ตรวจสอบสถานะขีดจำกัดอัตราปัจจุบันและคำขอที่เหลืออยู่ |
การชำระเงิน (ต้องใช้คีย์เอเจนต์)
| เครื่องมือ | คำอธิบาย |
|---|---|
pay_l402_api | เข้าถึง API แบบชำระเงิน (L402/X402) - ตรวจจับโปรโตคอลอัตโนมัติและชำระเงิน |
pay_invoice | ชำระใบแจ้งหนี้ Lightning BOLT11 ใดๆ |
keysend | ส่งการชำระเงินโดยตรงไปยัง pubkey ของโหนด (ไม่ต้องมีใบแจ้งหนี้) |
pay_lightning_address | ชำระเงินไปยัง Lightning address (รูปแบบ [email protected]) |
create_invoice | สร้างใบแจ้งหนี้เพื่อรับการชำระเงิน |
get_invoice_status | ตรวจสอบว่าใบแจ้งหนี้ได้รับการชำระเงินแล้วหรือไม่ |
get_transactions | ดูประวัติธุรกรรม |
LNURL (ต้องใช้คีย์เอเจนต์)
| เครื่องมือ | คำอธิบาย |
|---|---|
lnurl_auth | รับรองความถูกต้องกับบริการโดยใช้ LNURL-auth protocol |
claim_lnurl_withdraw | รับเงินจากลิงก์ LNURL-withdraw |
การจัดการผู้ดำเนินการ
| เครื่องมือ | คำอธิบาย |
|---|---|
register_operator | สร้างบัญชีผู้ดำเนินการใหม่ |
recover_account | กู้คืนบัญชีโดยใช้รหัสกู้คืน |
rotate_api_key | สร้างคีย์ API ใหม่ (คูลดาวน์ 60 นาทีสำหรับการถอน) |
get_deposit_invoice | สร้างใบแจ้งหนี้เพื่อเติมเงินเข้าบัญชีผู้ดำเนินการ |
withdraw | ถอนเงินไปยังปลายทาง Lightning ภายนอก |
set_operator_key | สลับไปใช้ข้อมูลประจำตัวผู้ดำเนินการ |
update_operator- ตั้งค่าอีเมลผู้ดำเนินการ (ส่งลิงก์ยืนยัน) และ/หรือชื่อclaim_promo- รับโปรโมชั่นติดตั้งฟรี sats (อีเมลที่ยืนยันแล้ว + บัญชี 3 ชั่วโมง)
การจัดการเอเจนต์
| เครื่องมือ | คำอธิบาย |
|---|---|
create_agent | สร้างเอเจนต์ภายใต้ผู้ดำเนินการ |
list_agents | แสดงรายการเอเจนต์ทั้งหมดภายใต้ผู้ดำเนินการ |
fund_agent | โอน sats จากผู้ดำเนินการไปยังเอเจนต์ |
transfer_to_agent | โอน sats ระหว่างเอเจนต์หรือจากผู้ดำเนินการไปยังเอเจนต์ |
sweep_agent | กวาดเงินจากเอเจนต์กลับไปยังผู้ดำเนินการ |
deactivate_agent | ปิดใช้งานเอเจนต์ชั่วคราว |
reactivate_agent | เปิดใช้งานเอเจนต์ที่ถูกปิดใช้งานอีกครั้ง |
delete_agent | ลบเอเจนต์อย่างถาวร (คืนยอดคงเหลือให้ผู้ดำเนินการ) |
get_budget_status | รับขีดจำกัดงบประมาณและการใช้จ่ายของเอเจนต์ |
set_budget | ตั้งค่าหรืออัปเดตขีดจำกัดการใช้จ่ายของเอเจนต์ |
set_agent_credentials | สลับไปใช้ข้อมูลประจำตัวเอเจนต์ |
Webhooks
| เครื่องมือ | คำอธิบาย |
|---|---|
register_webhook | ลงทะเบียน URL เพื่อรับการแจ้งเตือนเหตุการณ์ |
list_webhooks | แสดงรายการ webhooks ที่ลงทะเบียนทั้งหมด |
delete_webhook | ลบ webhook |
test_webhook | ส่งเหตุการณ์ทดสอบเพื่อตรวจสอบการเชื่อมต่อ webhook |
เหตุการณ์ Webhook:
invoice_paid- ได้รับการชำระเงินบนใบแจ้งหนี้payment_completed- การชำระเงินขาออกสำเร็จpayment_failed- การชำระเงินขาออกล้มเหลวbalance_low- ยอดคงเหลือลดลงต่ำกว่าเกณฑ์budget_warning- ใช้ไป 80% ของงบประมาณtest- เหตุการณ์ทดสอบด้วยตนเอง
การอ้างอิง CLI
คำสั่งทั้งหมดส่งออก JSON ไปยัง stdout ข้อผิดพลาดไปยัง stderr พร้อมรหัสออก 1
| คำสั่ง | คำอธิบาย |
|---|---|
lw register [--name "name"] | สร้างบัญชีผู้ดำเนินการ พิมพ์คีย์ API |
lw whoami | ข้อมูลประจำตัวปัจจุบัน (ผู้ดำเนินการหรือเอเจนต์) |
lw balance | ยอดคงเหลือใน satoshis |
lw info | สถานะบริการและความสามารถ |
lw deposit <amount> | สร้างใบแจ้งหนี้การฝากเงิน |
lw withdraw <invoice> | ถอนไปยังกระเป๋าเงินภายนอก |
lw pay <invoice> | ชำระใบแจ้งหนี้ BOLT11 [--max-fee <sats>] |
lw pay-api <url> | ชำระ API L402/X402 [--method GET] [--body "{}"] [--max-sats 1000] |
lw decode <invoice> | ถอดรหัสใบแจ้งหนี้ BOLT11 |
lw create-agent <name> | สร้างเอเจนต์ [--budget <sats>] |
lw fund-agent <id> <amount> | โอน sats ไปยังเอเจนต์ |
lw list-agents | แสดงรายการเอเจนต์ทั้งหมด |
lw transactions | ธุรกรรมล่าสุด [--limit 10] [--offset 0] |
lw help | แสดงคำสั่งทั้งหมด |
ตัวอย่างเวิร์กโฟลว์เอเจนต์ (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
โปรโตคอล API แบบชำระเงิน: L402 + X402
Lightning Wallet MCP รองรับโปรโตคอลการชำระเงิน HTTP 402 สองแบบ:
- L402 (หลัก) - การชำระเงิน Lightning Network โปรโตคอลจ่ายต่อคำขอแบบดั้งเดิม
- X402 (สำรอง) - USDC บน Base (โปรโตคอลของ Coinbase) ตรวจจับอัตโนมัติเมื่อไม่มี L402
เมื่อคุณเรียก pay_l402_api เซิร์ฟเวอร์จะตรวจจับโดยอัตโนมัติว่า API ใช้โปรโตคอลใด L402 จะมีลำดับความสำคัญก่อนเสมอหากมีส่วนหัวทั้งสอง เอเจนต์จะชำระเป็น sats เสมอไม่ว่าจะใช้โปรโตคอลใด — จำนวน X402 จะถูกแปลงตามอัตราตลาด
L402 Protocol
L402 protocol (เดิมคือ LSAT) ช่วยให้ API สามารถเรียกเก็บเงินต่อคำขอโดยใช้ Lightning เมื่อคุณเรียกปลายทางที่ป้องกันด้วย L402:
- เซิร์ฟเวอร์ส่งคืน HTTP 402 พร้อมใบแจ้งหนี้ Lightning
- Lightning Faucet ชำระใบแจ้งหนี้โดยอัตโนมัติ
- คำขอเสร็จสมบูรณ์ด้วยเนื้อหาที่ชำระเงินแล้ว
X402 Protocol (Coinbase)
X402 ใช้ USDC บน Base สำหรับการชำระเงิน API โฟลว์นี้โปร่งใสต่อเอเจนต์:
- เซิร์ฟเวอร์ส่งคืน HTTP 402 พร้อมส่วนหัว
PAYMENT-REQUIRED - Lightning Faucet แปลงจำนวน USDC เป็น sats หักจากยอดคงเหลือเอเจนต์
- ลงนามการอนุญาต EIP-712 และลองใหม่ด้วยส่วนหัว
PAYMENT-SIGNATURE - คำขอเสร็จสมบูรณ์ — เอเจนต์เห็นรูปแบบการตอบกลับเหมือนกับ L402
การตอบกลับรวมถึง payment_protocol: "x402" และ usdc_amount เพื่อให้เอเจนต์ทราบว่าใช้โปรโตคอลใด
ทะเบียน L402 API
เราดูแลไดเรกทอรีของ API ที่เปิดใช้งาน L402 ที่ lightningfaucet.com/l402-registry - เหมาะสำหรับการทดสอบเอเจนต์ของคุณ
L402 API สาธิต
ลองใช้ปลายทางเหล่านี้เพื่อทดสอบการชำระเงิน L402:
# 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" })
ดู L402 API Registry สำหรับปลายทางและทรัพยากรเพิ่มเติม
ตัวอย่างเวิร์กโฟลว์ที่สมบูรณ์
// 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
ส่งการชำระเงินโดยตรงไปยังโหนด Lightning โดยไม่ต้องมีใบแจ้งหนี้:
// Send 100 sats to a node with an optional message
keysend({
destination: "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
amount_sats: 100,
message: "Hello from my AI agent!"
})
การถอดรหัสใบแจ้งหนี้
ตรวจสอบรายละเอียดใบแจ้งหนี้ก่อนชำระเงิน:
decode_invoice({ invoice: "lnbc1000n1..." })
// Returns: {
// amount_sats: 1000,
// description: "Test payment",
// destination: "03abc...",
// expires_at: "2026-01-16T12:00:00Z",
// is_expired: false
// }
รายละเอียดเครื่องมือ
get_info
รับสถานะบริการและความสามารถ
{
"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
รับบริบทการดำเนินงานปัจจุบัน
ส่งคืนสำหรับผู้ดำเนินการ:
{
"type": "operator",
"id": 123,
"name": "My Company",
"balance_sats": 50000,
"agent_count": 3
}
ส่งคืนสำหรับเอเจนต์:
{
"type": "agent",
"id": 456,
"name": "Research Bot",
"balance_sats": 1000,
"budget_limit_sats": 5000,
"operator_id": 123
}
pay_l402_api
เข้าถึง API แบบชำระเงินพร้อมการชำระเงินอัตโนมัติ รองรับทั้ง L402 (Lightning) และ X402 (USDC บน Base) โปรโตคอลถูกตรวจจับอัตโนมัติจากส่วนหัวการตอบกลับ 402
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| url | string | ใช่ | URL ที่จะร้องขอ |
| method | string | ไม่ | HTTP method (GET, POST, PUT, DELETE) ค่าเริ่มต้น: GET |
| body | string | ไม่ | เนื้อหาคำขอสำหรับ POST/PUT |
| max_payment_sats | number | ไม่ | จำนวนเงินสูงสุดที่ชำระ ค่าเริ่มต้น: 1000 |
keysend
ส่งการชำระเงินไปยังโหนดโดยไม่ต้องมีใบแจ้งหนี้
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| destination | string | ใช่ | public key ของโหนดเป้าหมาย (66 ตัวอักษร hex) |
| amount_sats | number | ใช่ | จำนวนเงินใน satoshis |
| message | string | ไม่ | ข้อความเพิ่มเติม (สูงสุด 1000 ตัวอักษร) |
register_webhook
ลงทะเบียน URL เพื่อรับการแจ้งเตือนการชำระเงิน
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| url | string | ใช่ | URL HTTPS เพื่อรับ webhooks |
| events | array | ไม่ | ประเภทเหตุการณ์ที่จะสมัคร ค่าเริ่มต้น: ["invoice_paid"] |
ส่งคืน: Webhook ID และ HMAC secret สำหรับการตรวจสอบลายเซ็น
สถาปัตยกรรม
┌─────────────────────────────────────────────────────────┐
│ 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 │
│ Pay Invoice Payments Payments │
└─────────────────────────────────────────────────────────┘
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย
- อย่าคอมมิตคีย์ API - ใช้ตัวแปรสภาพแวดล้อม
- ตั้งค่าขีดจำกัดงบประมาณ - ป้องกันการใช้จ่ายที่ควบคุมไม่ได้
- ใช้คีย์เอเจนต์สำหรับการชำระเงิน - รักษาคีย์ผู้ดำเนินการให้ปลอดภัย
- ตรวจสอบลายเซ็น webhook - ใช้ secret ที่ส่งคืนระหว่างการลงทะเบียน
- ตรวจสอบธุรกรรม - ใช้
get_transactionsเพื่อตรวจสอบกิจกรรม - รหัสกู้คืน - จัดเก็บอย่างปลอดภัย จำเป็นหากคีย์ API สูญหาย
- การหมุนเวียนคีย์ - หมุนเวียนคีย์เป็นระยะโดยใช้
rotate_api_key
ความปลอดภัยของ Webhook
Webhooks รวมลายเซ็น HMAC-SHA256 สำหรับการตรวจสอบ:
import hmac
import hashlib
def verify_webhook(payload, signature, secret):
expected = hmac.new(
secret.encode(),
payload.encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected)
ตรวจสอบส่วนหัว X-Webhook-Signature กับ payload
Pre-Payment Policy Hook
ฮุกแบบไม่ผูกกับผู้ขายรายใดรายหนึ่งช่วยให้ปลายทางนโยบายภายนอก อนุญาตหรือปฏิเสธการชำระเงินก่อนที่จะดำเนินการ โดยค่าเริ่มต้นจะปิดใช้งาน — เมื่อ PRE_PAYMENT_HOOK_URL ไม่ได้ถูกตั้งค่า พฤติกรรมจะเป็นเหมือนเดิมทุกประการ เมื่อตั้งค่าแล้ว ทุกการชำระเงินขาออก (pay_l402_api, pay_invoice, keysend, pay_lightning_address) จะถูกตรวจสอบกับปลายทางของคุณก่อน การปฏิเสธจะยกเลิกการชำระเงินก่อนที่เงินจะเคลื่อนย้าย
สิ่งนี้มีประโยชน์สำหรับนโยบายการใช้จ่าย เวิร์กโฟลว์การอนุมัติ การตรวจสอบการปฏิบัติตามกฎระเบียบ หรือชั้นการอนุญาตภายนอกใดๆ โปรโตคอลฮุกเป็นแบบทั่วไป ดังนั้นบริการใดๆ ที่ปฏิบัติตามสัญญาคำขอ/การตอบกลับด้านล่างสามารถเชื่อมต่อได้โดยการกำหนดค่าเท่านั้น
การกำหนดค่า
| ตัวแปรสภาพแวดล้อม | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
PRE_PAYMENT_HOOK_URL | (ไม่ได้ตั้งค่า) | ปลายทางนโยบายที่จะ POST ข้อเสนอการชำระเงินแต่ละรายการไปยัง การไม่ตั้งค่าจะปิดใช้งานฮุกทั้งหมด |
PRE_PAYMENT_HOOK_TIMEOUT_MS | 3000 | ระยะหมดเวลาต่อคำขอในหน่วยมิลลิวินาที |
PRE_PAYMENT_HOOK_FAIL_MODE | closed | closed ปฏิเสธการชำระเงินหากฮุกเกิดข้อผิดพลาดหรือหมดเวลา open อนุญาตให้ดำเนินการต่อ ค่าเริ่มต้นคือปิดเมื่อล้มเหลว |
{
"mcpServers": {
"lightning-wallet": {
"command": "npx",
"args": ["lightning-wallet-mcp"],
"env": {
"LIGHTNING_WALLET_API_KEY": "your-api-key",
"PRE_PAYMENT_HOOK_URL": "https://your-policy-endpoint.example/hook"
}
}
}
}
คำขอฮุก (POST จากไคลเอนต์)
ข้อเสนออธิบายเฉพาะการชำระเงินที่เสนอ — ไม่รวมคีย์ API กระเป๋าเงินของคุณ
{
"proposal_id": "f7e1…",
"agent_id": 42,
"protocol": "l402",
"destination_or_url": "https://api.example/paid-endpoint",
"amount_sats": null,
"max_payment_sats": 1000,
"method": "GET",
"ts": "2026-06-06T18:00:00.000Z"
}
protocol เป็นหนึ่งใน l402, x402, bolt11, keysend, lnaddress amount_sats คือจำนวนเงินที่แน่นอนเมื่อทราบ ณ เวลาฮุก: สำหรับ keysend และ lnaddress คือจำนวนเงินที่ร้องขอ และสำหรับ bolt11 จะถูกถอดรหัสภายในจากใบแจ้งหนี้ (ไม่มีการเรียก API เพิ่มเติม) สำหรับ l402/x402 จะเป็น null เนื่องจากจำนวนเงินถูกกำหนดโดยความท้าทายการชำระเงิน ณ เวลาดำเนินการ — ในกรณีนี้ฮุกจะบังคับใช้ max_payment_sats (เพดานที่ได้รับอนุญาตจากเอเจนต์) ล่วงหน้า และจำนวนเงินที่ชำระจริงจะพร้อมใช้งานภายหลังผ่าน webhooks max_payment_sats คือเพดานที่ได้รับอนุญาตจากเอเจนต์เมื่อมีผลบังคับใช้
สิ่งที่ออกจากกระเป๋าเงินอย่างแน่นอน เฉพาะแปดฟิลด์ข้างต้นเท่านั้นที่ถูกส่งไปยังปลายทางฮุกของคุณ: proposal_id, agent_id, protocol, destination_or_url, amount_sats, max_payment_sats, method, ts คีย์ API กระเป๋าเงินและข้อมูลประจำตัวอื่นๆ จะ ไม่ ถูกรวมอยู่ด้วย
ขอบเขตความครอบคลุม ฮุกควบคุมทุกการใช้จ่ายที่เริ่มต้นโดยเอเจนต์: pay_l402_api, pay_invoice, keysend, pay_lightning_address และ Nostr zaps การจัดการเงินทุนในขอบเขตผู้ดำเนินการ (การถอน การเติมเงินให้เอเจนต์ การโอนระหว่างเอเจนต์) ถูกตั้งใจให้ ไม่ ถูกควบคุม — สิ่งเหล่านั้นเป็นการกระทำของผู้ดำเนินการ ไม่ใช่การใช้จ่ายของเอเจนต์
การตอบกลับฮุก (ปลายทางของคุณส่งกลับ)
{ "decision": "allow" }
{ "decision": "deny", "reason": { "code": "over_limit", "message": "Exceeds per-transaction limit" } }
allow→ การชำระเงินดำเนินการต่อdeny→ การชำระเงินถูกยกเลิกและเครื่องมือส่งกลับข้อผิดพลาดPolicyDeniedที่แสดงreason.message- ฟิลด์
attestationที่เป็นตัวเลือก (JSON ใดๆ) ถูกปฏิบัติเป็นข้อมูลทึบโดยไคลเอนต์ — มันถูกบันทึกลง stderr และถูกละเว้นนอกเหนือจากนั้น เพื่อให้บริการนโยบายสามารถส่งกลับการตัดสินใจที่ลงนามสำหรับการตรวจสอบภายหลังได้
เมื่อฮุกเกิดข้อผิดพลาด หมดเวลา หรือการตอบกลับที่ไม่รู้จัก PRE_PAYMENT_HOOK_FAIL_MODE จะถูกนำมาใช้ (ปฏิเสธโดยค่าเริ่มต้น)
ราคา
Lightning Faucet คิดค่าธรรมเนียมแพลตฟอร์ม 2% (ขั้นต่ำ 1 sat) สำหรับการชำระเงินขาออก:
- การชำระเงิน L402: ค่าธรรมเนียมแพลตฟอร์ม 2% + ค่าธรรมเนียมเส้นทาง Lightning
- การชำระเงิน X402: ค่าธรรมเนียมแพลตฟอร์ม 2% + ส่วนต่างอัตราแลกเปลี่ยน 1% (การแปลง USDC เป็น sats)
- การชำระเงินใบแจ้งหนี้: ค่าธรรมเนียมแพลตฟอร์ม 2% + ค่าธรรมเนียมเส้นทาง Lightning
- การชำระเงิน Keysend: ค่าธรรมเนียมแพลตฟอร์ม 2% + ค่าธรรมเนียมเส้นทาง Lightning
- การถอนของผู้ดำเนินการ: ค่าธรรมเนียมแพลตฟอร์ม 2% + ค่าธรรมเนียมเส้นทาง Lightning
- การโอนภายในข้ามผู้ดำเนินการ: ค่าธรรมเนียมแพลตฟอร์ม 2% (ไม่มีค่าธรรมเนียมเส้นทาง)
- การโอนเอเจนต์ผู้ดำเนินการเดียวกัน: ฟรี
- การฝากเงิน: ฟรี
- การรับชำระเงิน: ฟรี
- Webhooks: ฟรี
การตอบกลับการชำระเงินทั้งหมดรวม platform_fee_sats, routing_fee_sats และ total_cost เพื่อความโปร่งใสเต็มรูปแบบ
บันทึกการเปลี่ยนแปลง
v1.1.0 (2026-02-16)
- อินเทอร์เฟซ CLI: คำสั่ง
lwใหม่สำหรับเอเจนต์ที่ใช้ CLI เป็นหลัก (OpenClaw, Pi, KiloCode, เอเจนต์ Bash ใดๆ) - แพ็คเกจเดียวกัน สองอินเทอร์เฟซ:
npm install -g lightning-wallet-mcpให้ทั้งเซิร์ฟเวอร์ MCP และ CLI - เอาต์พุต JSON-first: คำสั่ง CLI ทั้งหมดส่งออก JSON ไปยัง stdout ข้อผิดพลาดไปยัง stderr
- การสนับสนุน X402: การถอยกลับอัตโนมัติเป็น X402 (USDC บน Base) เมื่อ L402 ไม่พร้อมใช้งาน
- การตรวจจับโปรโตคอลอัตโนมัติ:
pay_l402_apiตรวจจับ L402 หรือ X402 จากส่วนหัวการตอบกลับ 402 - ฟิลด์การตอบกลับ:
payment_protocolและusdc_amountถูกรวมเมื่อใช้ X402 - อัตราแลกเปลี่ยน: การแปลง BTC/USD แบบเรียลไทม์ผ่าน CoinGecko พร้อมแคช 5 นาที
v1.0.3 (2026-02-05)
- ค่าธรรมเนียมแพลตฟอร์ม: ค่าธรรมเนียม 2% (ขั้นต่ำ 1 sat) สำหรับการชำระเงินขาออกและการโอนข้ามผู้ดำเนินการทั้งหมด
- ความโปร่งใสของค่าธรรมเนียม: การตอบกลับการชำระเงินทั้งหมดตอนนี้รวม
platform_fee_sats,routing_fee_satsและtotal_cost - การโอนเอเจนต์ผู้ดำเนินการเดียวกันยังคงฟรี
v1.0.0 (2026-02-04)
- เปลี่ยนชื่อแบรนด์ จาก
lightning-faucet-mcpเป็นlightning-wallet-mcp - เปลี่ยนชื่อตัวแปรสภาพแวดล้อม:
LIGHTNING_FAUCET_API_KEY→LIGHTNING_WALLET_API_KEY - เครื่องมือทั้งหมด 37 รายการทดสอบเต็มรูปแบบและพร้อมสำหรับการใช้งานจริง
- ไม่มีการเปลี่ยนแปลง API ที่ส่งผลกระทบ - เพียงแค่ชื่อแพ็คเกจ
รุ่นก่อนหน้า (ในชื่อ lightning-faucet-mcp)
ดู บันทึกการเปลี่ยนแปลง lightning-faucet-mcp สำหรับประวัติ v1.6.0 ถึง v2.0.7
- การชำระเงินและใบแจ้งหนี้พื้นฐาน
การสาธิต: การทดลองทฤษฎีเกมของเอเจนต์ AI
เราทำการทดลองทางเศรษฐกิจ 100 รอบกับเอเจนต์ AI 16 ตัว (Claude 8 ตัว, GPT-4o 8 ตัว) โดยใช้ Bitcoin จริงบน Lightning เอเจนต์สามารถซื้อขาย สร้างพันธมิตร ลงทุน และแข่งขัน — ทั้งหมดขับเคลื่อนโดยเซิร์ฟเวอร์ MCP นี้
ผลลัพธ์: เอเจนต์ทำธุรกรรม Lightning จริง 2,839 รายการ เอเจนต์ Claude ครองตลาดผ่านการซื้อขายเชิงรุกตั้งแต่เนิ่นๆ ในขณะที่เอเจนต์ GPT-4o ใช้กลยุทธ์อนุรักษ์นิยม
- ที่เก็บการทดลอง: github.com/pfergi42/lf-game-theory
- โพสต์บล็อก: lightningfaucet.com/blog/ai-game-theory
การสนับสนุน
- เอกสารประกอบ: lightningfaucet.com/ai-agents/docs
- การสาธิต: lightningfaucet.com/ai-agents/demo
- ปัญหา: github.com/lightningfaucet/lightning-wallet-mcp/issues
- อีเมล: [email protected]
ใบอนุญาต
ใบอนุญาต MIT - ดู LICENSE สำหรับรายละเอียด
สร้างด้วย Bitcoin | Lightning Faucet