SDKs
Native SDK libraries for ln.bot — TypeScript, Python, Go, Rust, and C#. Plus L402 paywall middleware for Express.js and ASP.NET Core.
Updated View as Markdown
Native libraries for TypeScript, Python, Go, Rust, and C#.
TypeScript
bash
npm install @lnbot/sdktypescript
import { LnBot } from "@lnbot/sdk"
const ln = new LnBot({
apiKey: process.env.LNBOT_API_KEY!
})
const w = ln.wallet("wal_...")
// Create an invoice
const inv = await w.invoices.create({
amount: 1000,
memo: "AI task payment"
})
// Pay another agent
const pay = await w.payments.create({
target: "r7vq3np@ln.bot",
amount: 500
})
// Check balance
const wallet = await w.get()
console.log(wallet.available)Python
bash
pip install lnbotpython
from lnbot import LnBot
ln = LnBot(api_key="uk_...")
w = ln.wallet("wal_...")
# Create an invoice
inv = w.invoices.create(
amount=1000,
memo="AI task payment"
)
# Pay another agent
pay = w.payments.create(
target="r7vq3np@ln.bot",
amount=500
)
# Check balance
wallet = w.get()
print(wallet.available)Go
bash
go get github.com/lnbotdev/go-sdkgo
package main
import (
"context"
"fmt"
lnbot "github.com/lnbotdev/go-sdk"
)
func main() {
ln := lnbot.New("uk_...")
ctx := context.Background()
w := ln.Wallet("wal_...")
// Create an invoice
inv, _ := w.Invoices.Create(ctx, &lnbot.CreateInvoiceParams{
Amount: 1000,
})
// Pay another agent
_, _ = w.Payments.Create(ctx, &lnbot.CreatePaymentParams{
Target: "r7vq3np@ln.bot",
Amount: lnbot.Ptr(int64(500)),
})
// Check balance
wallet, _ := w.Get(ctx)
fmt.Println(wallet.Available)
}Rust
bash
cargo add lnbotrust
use lnbot::{LnBot, CreateInvoiceRequest, CreatePaymentRequest};
#[tokio::main]
async fn main() {
let ln = LnBot::new("uk_...");
let w = ln.wallet("wal_...");
// Create an invoice
let inv = w.invoices().create(
&CreateInvoiceRequest::new(1000).memo("AI task")
).await.unwrap();
// Pay another agent
w.payments().create(
&CreatePaymentRequest::new("r7vq3np@ln.bot").amount(500)
).await.unwrap();
// Check balance
let wallet = w.get().await.unwrap();
println!("{}", wallet.available);
}C#
bash
dotnet add package LnBotcsharp
using LnBot;
using LnBot.Models;
using var client = new LnBotClient("uk_...");
var w = client.Wallet("wal_...");
// Create an invoice
var inv = await w.Invoices.CreateAsync(new CreateInvoiceRequest
{
Amount = 1000,
Memo = "AI task payment"
});
// Pay another agent
var pay = await w.Payments.CreateAsync(new CreatePaymentRequest
{
Target = "r7vq3np@ln.bot",
Amount = 500
});
// Check balance
var wallet = await w.GetAsync();
Console.WriteLine(wallet.Available);L402 Libraries
Paywall middleware — add Lightning-powered pay-per-request to any API. Built on the L402 API endpoints.
TypeScript — Express.js
bash
npm install @lnbot/l402typescript
import { l402, LnBot } from "@lnbot/l402"
// Server — paywall a route
app.use("/api/premium", l402.paywall(ln, { walletId: "wal_...", price: 10 }))
// Client — auto-pay L402 APIs
const client = l402.client(ln, { walletId: "wal_...", maxPrice: 100 })
const data = await client.get("https://api.example.com/premium")C# — ASP.NET Core
bash
dotnet add package LnBot.L402.AspNetCorecsharp
// Server — paywall a route
using LnBot; using LnBot.L402;
app.UseL402Paywall("/api/premium", new L402Options { WalletId = "wal_...", Price = 10 });
// Client — auto-pay L402 APIs via HttpClient
builder.Services.AddHttpClient("paid-apis")
.AddL402Handler(new L402ClientOptions { WalletId = "wal_...", MaxPrice = 100 });