关于 l402-kit
l402-kit 提供用于 L402 API 的支付中间件和 Agent 客户端,支持比特币闪电网络支付,并兼容 x402。其 MCP 服务让兼容的 Agent 可通过该支付流程调用收费 API。
主要功能
- 01为 API 处理 L402 支付
- 02验证比特币闪电网络发票
- 03支持会话预算的 Agent 客户端
- 04重放防护与限时 macaroon
- 05提供 TypeScript、Python、Go、Rust SDK
适用场景
- 01按 API 调用次数收取 sats
- 02让 Agent 支付以访问受保护的 API
- 03提供数据前验证闪电网络支付
- 04在支持的服务端运行环境中接入 L402
MCP 相关
MCP 服务向兼容的 Agent 提供 l402-kit,使其能够调用受 L402 保护的 API。README 还说明其兼容 x402。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要获取的 URL(http 或 https)。 |
| body | string | 否 | 字符串形式的请求正文(POST/PUT 请求用)。 |
| method | string | 否 | HTTP 方法 — GET、POST、PUT、DELETE、PATCH。默认值:GET |
| headers | object | 否 | 以键值对形式提供的额外 HTTP 请求标头 |
详细介绍
l402-kit
为任意 API 添加按次付费的 Bitcoin Lightning 支付。只需 3 行代码。
▶ 观看端到端演示 — 安装 → 402 → 支付 → 200 OK
实时使用情况
| SDK | 版本 | 下载量 |
|---|---|---|
| 📦 TypeScript · npmjs.com/package/l402-kit | ||
| 🐍 Python · pypi.org/project/l402kit | ||
| 🦀 Rust · crates.io/crates/l402kit | ||
| 🔌 VS Code Extension · marketplace | ||
| 🦫 Go · pkg.go.dev |
🌍 支持 11 种语言 — 点击展开
🇺🇸 通过比特币闪电网络为你的 API 收费。只需 3 行代码。 🇧🇷 Monetize sua API com Bitcoin Lightning. 3 linhas de código. 🇪🇸 Monetiza tu API con Bitcoin Lightning. 3 líneas de código. 🇨🇳 用 3 行代码,通过比特币闪电网络收费。 🇮🇳 अपने API को Bitcoin Lightning से 3 लाइनों में मोनेटाइज़ करें। 🇸🇦 اكسب من API الخاص بك عبر Bitcoin Lightning. 3 أسطر فقط. 🇫🇷 Monétisez votre API en Bitcoin Lightning. 3 lignes de code. 🇩🇪 Monetarisiere deine API mit Bitcoin Lightning. 3 Zeilen Code. 🇷🇺 Монетизируй свой API через Bitcoin Lightning. 3 строки кода. 🇯🇵 Bitcoin LightningでAPIを3行で収益化。 🇮🇹 Monetizza la tua API con Bitcoin Lightning. 3 righe di codice.
📖 官方文档: 🇺🇸 · 🇧🇷 · 🇪🇸 · 🇨🇳 · 🇮🇳 · 🇸🇦 · 🇫🇷 · 🇩🇪 · 🇷🇺 · 🇯🇵 · 🇮🇹
安装
npm install l402-kit # TypeScript / Node.js / Express
pip install l402kit # Python / FastAPI / Flask
go get github.com/shinydapps/l402-kit/[email protected] # Go / net/http / Chi / Gin
cargo add l402kit # Rust / axum
AI Agent / 大模型: 查看
llms.txt获取机器可读的说明。 Agent 发现:/.well-known/agent.json·/.well-known/l402.json
面向 AI Agent
l402-kit 是自主 Agent 的支付层。Agent 无需人工干预即可为 API 付费。
系统提示词片段 — 将其添加到任意 Agent,即可启用 L402 支付:
You have access to paid APIs via the L402 protocol.
When you call an API that returns HTTP 402, use the L402Client from l402-kit
to pay automatically with Bitcoin Lightning.
Budget limit: {BUDGET_SATS} sats per session. Never exceed this limit.
Agent SDK 快速入门:
import { l402Client, buildWallet } from "l402-kit/agent";
const client = l402Client({
wallet: buildWallet(process.env), // auto-detects BLINK_API_KEY or ALBY_TOKEN
budgetSats: 1000,
});
const data = await client.fetch("https://api.example.com/paid-endpoint");
MCP 服务(适用于 Claude Desktop、Cursor 和任何兼容 MCP 的 Agent):
{
"mcpServers": {
"l402-kit": {
"command": "npx",
"args": ["l402-kit-mcp"],
"env": { "BLINK_API_KEY": "your-key" }
}
}
}
兼容: LangChain · OpenAI Agents · CrewAI · Vercel AI SDK · AutoGPT · 任意 MCP 客户端
协议支持: 兼容 L402(Bitcoin Lightning)· x402(USDC/Coinbase)
工作原理
1. Client calls your API
↓
2. API returns HTTP 402 + BOLT11 invoice + macaroon
↓
3. Client pays (any Lightning wallet, < 1 second, any country)
↓
4. Client sends Authorization: L402 <macaroon>:<preimage>
↓
5. API verifies SHA256(preimage) == paymentHash ✓
↓
6. HTTP 200 OK + your data
── Fee flow (managed mode) ─────────────────────────────────
Payment → 99.7% → your Lightning Address (instant)
→ 0.3% → ShinyDapps
快速入门
TypeScript
import express from "express";
import { l402, AlbyProvider } from "l402-kit";
const app = express();
const lightning = new AlbyProvider(process.env.ALBY_TOKEN!);
app.get("/premium", l402({ priceSats: 100, lightning }), (_req, res) => {
res.json({ data: "Payment confirmed." });
});
app.listen(3000);
Python
from fastapi import FastAPI, Request
from l402kit import l402_required
app = FastAPI()
@app.get("/premium")
@l402_required(price_sats=100, owner_lightning_address="[email protected]")
async def premium(request: Request):
return {"data": "Payment confirmed."}
Go
package main
import (
"fmt"
"net/http"
l402kit "github.com/shinydapps/l402-kit/go"
)
func main() {
http.Handle("/premium", l402kit.Middleware(l402kit.Options{
PriceSats: 100,
OwnerLightningAddress: "[email protected]",
}, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, `{"data": "Payment confirmed."}`)
})))
http.ListenAndServe(":8080", nil)
}
Rust
use axum::{middleware, routing::get, Router};
use l402kit::{l402_middleware, Options};
use std::sync::Arc;
#[tokio::main]
async fn main() {
let opts = Arc::new(Options::new(100).with_address("[email protected]"));
let app = Router::new()
.route("/premium", get(|| async { "Payment confirmed." }))
.route_layer(middleware::from_fn_with_state(opts, l402_middleware));
let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap();
axum::serve(listener, app).await.unwrap();
}
在线试用
# Step 1 — triggers 402 + returns invoice
curl http://localhost:3000/premium
# ← { "error": "Payment Required", "invoice": "lnbc1u...", "macaroon": "eyJ..." }
# Step 2 — pay the invoice with any Lightning wallet, then:
curl http://localhost:3000/premium \
-H "Authorization: L402 <macaroon>:<preimage>"
# ← { "data": "Payment confirmed." }
为什么不选 Stripe?
| Stripe | l402-kit | |
|---|---|---|
| 最低手续费 | $0.30 | < 1 sat(约 $0.001) |
| 结算时间 | 2–7 天 | < 1 秒 |
| 拒付 | 是 | 不可能 — 有加密证明 |
| 需要账户 | 是 | 否 — 任意 Lightning 钱包 |
| AI Agent 支持 | 否 | 是 — 原生支持 4 个 SDK |
| 屏蔽的国家/地区 | 约 50 个 | 0 — 默认面向全球 |
| 可撤销 | 是 | 否 — 收款即最终结算 |
| 开源 | 否 | 是 — MIT |
提供方
import { BlinkProvider, OpenNodeProvider, LNbitsProvider } from "l402-kit";
// Blink (recommended — free, instant setup)
const provider = new BlinkProvider(process.env.BLINK_API_KEY!, process.env.BLINK_WALLET_ID!);
// OpenNode (production, custodial)
const provider = new OpenNodeProvider(process.env.OPENNODE_KEY!);
// LNbits (self-hosted)
const provider = new LNbitsProvider(process.env.LNBITS_KEY!, "https://your.lnbits.host");
使用你自己的节点 — 只需 5 行即可实现 LightningProvider 接口:
import type { LightningProvider } from "l402-kit";
class MyNode implements LightningProvider {
async createInvoice(amountSats: number) { /* return Invoice */ }
async checkPayment(paymentHash: string) { /* return boolean */ }
}
安全模型
Invoice creation: paymentHash = SHA256(preimage)
Client payment: Lightning Network releases preimage to payer
API verification: SHA256(preimage) == paymentHash ✓
Replay protection: each preimage is marked used — works exactly once
Token expiry: macaroons expire after 1 hour
- 不可伪造 — SHA256 是单向函数;无法伪造原像
- 无拒付 — 加密结算,而非可撤销的银行卡授权
- 防重放 — MemoryReplayAdapter(开发环境)或 RedisReplayAdapter(生产环境,多实例)
- 600+ 项自动化测试,覆盖 5 种运行时(TS、Python、Go、Rust、Cloudflare Workers)——为自主 Agent 工作流提供生产级可靠性
- 完全可审计 — MIT 许可,每一行代码均为开源
VS Code 扩展
无需离开编辑器,即可实时监控每一聪的收支。
- ⚡ 按端点显示实时支付动态
- 📊 柱状图 — 1D / 7D(免费)· 30D / 1Y / ALL(Pro)
- 🌍 内置 11 种语言
- 🎨 浅色 / 深色 / 自动主题
- 🔧 无需配置 — 只需设置你的 Lightning Address
获取 Lightning Address(免费)
在 dashboard.blink.sv 注册 — 免费、无需信用卡、即时开通。
你的地址:[email protected]
其他钱包:Wallet of Satoshi · Phoenix · Zeus · Alby
链接
| 资源 | URL |
|---|---|
| 📖 文档(11 种语言) | l402kit.com/docs |
| 📦 npm | npmjs.com/package/l402-kit |
| 🐍 PyPI | pypi.org/project/l402kit |
| 🦫 Go | pkg.go.dev/github.com/shinydapps/l402-kit/go |
| 🦀 Rust | crates.io/crates/l402kit |
| 🔌 VS Code | marketplace.visualstudio.com |
| ⚡ Lightning | [email protected] |
| 🐙 GitHub | github.com/ShinyDapps/l402-kit |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。