OpenNode vs ln.bot: Lightning Developer API Comparison
Comparing OpenNode and ln.bot for Lightning Network payments. OpenNode is a merchant payment processor. ln.bot is a wallet-first API for developers and AI agents.
OpenNode and ln.bot both let you accept Lightning payments through an API. That's roughly where the overlap ends.
OpenNode is a merchant payment processor — checkout pages, Shopify plugins, fiat conversion, invoicing. It's Stripe for Bitcoin. You have a store, you want a "Pay with Bitcoin" button, OpenNode handles that.
ln.bot is a wallet-first developer API. It's for systems that move sats on their own — agents, platforms, paywalled APIs, services that need their own wallets and balances. Not a checkout product.
What OpenNode does well
OpenNode has been around since 2018, raised $22.5M from Tim Draper and Twitter Ventures, and powers payments for companies like Substack and Fold. It's not a side project.
The merchant tooling is thorough: hosted checkout pages you can set up without code, plugins for Shopify, WooCommerce, Magento, BigCommerce. Accept Bitcoin over Lightning or on-chain, auto-convert to dollars, euros, or pounds, and get fiat in your bank account. Professional invoicing, 160+ countries, flat 1% fee.
Where the paths diverge
| Feature | OpenNode | ln.bot |
|---|---|---|
| Primary use case | Merchant payment processing | Developer wallet infrastructure |
| Wallets via API | Single merchant account | Unlimited wallets |
| Lightning invoices | Yes | Yes |
| Send payments | Withdrawals | Full send to any Lightning address or invoice |
| On-chain Bitcoin | Yes | No — Lightning only |
| Lightning addresses | No | you@ln.bot + custom domains |
| Hosted checkout | Yes | No |
| E-commerce plugins | Shopify, WooCommerce, Magento, etc. | No |
| Fiat conversion | USD, EUR, GBP | No — Bitcoin-native |
| L402 protocol | No | Create, verify, pay challenges |
| MCP server (AI agents) | No | Built-in |
| SDKs | Node.js, PHP | TypeScript, Python, Go, Rust, C# |
| CLI | No | Yes |
| Webhooks | Yes | Yes |
| Multi-tenant wallets | No | Yes |
| Pricing | 1% per transaction | Free internal, 0.1% + routing fee outbound |
When to choose OpenNode
Use OpenNode if:
- You're a merchant accepting customer payments for goods or services
- You need e-commerce plugins — Shopify, WooCommerce, Magento
- You want fiat conversion — accept Bitcoin, get dollars in your bank
- You need hosted checkout pages without writing code
- You want professional invoicing and billing templates
- You're processing payments in a commerce context
ln.bot doesn't do any of those things. No checkout pages, no Shopify plugin, no fiat. Don't try to make it work for a merchant use case — it's not built for that.
When to choose ln.bot
Use ln.bot if:
- You need programmatic wallets — create, fund, manage wallets through code
- You're building a platform where each user or agent gets their own wallet
- You need L402 paywalled APIs — OpenNode has no L402 support
- You're building AI agent infrastructure — MCP integration, autonomous payments, budget controls
- You need SDKs beyond Node.js and PHP
- You want Lightning addresses for your services or users
- You're building developer tooling, not merchant checkout
Code comparison
The one thing both APIs do — create an invoice to get paid:
OpenNode:
const opennode = require("opennode");
opennode.setCredentials("YOUR_API_KEY", "live");
const charge = await opennode.createCharge({
amount: 100,
currency: "USD",
auto_settle: true,
});ln.bot:
import { LnBot } from "@lnbot/sdk";
const ln = new LnBot({ apiKey: "key_..." });
const invoice = await ln.invoices.create({
amount: 1000,
memo: "Payment for service",
});OpenNode thinks in fiat amounts and merchant charges. ln.bot thinks in sats and wallet operations. Both create a Lightning invoice. The mental model is different.
What ln.bot can do that OpenNode can't:
// Spin up a wallet for an AI agent
const wallet = await ln.wallets.create({
name: "research-agent",
});
// Pay another agent's Lightning address
await ln.payments.create({
target: "other-agent@ln.bot",
amount: 500,
});
// Gate an API behind L402 — charge per request
app.use("/api/data", l402.paywall(ln, { price: 10 }));Getting started
npm install @lnbot/sdkFull setup in the quickstart guide. SDKs for five languages.
The short version
If you need to accept Bitcoin for goods and services, convert to fiat, and plug into Shopify — OpenNode has been doing that reliably for years. If you need wallets your code controls, L402 paywalls, or agent infrastructure — that's ln.bot. Some projects will use both: OpenNode facing customers, ln.bot running the backend.
FAQ
> Is OpenNode good for developers?
> What is the OpenNode transaction fee?
> Can OpenNode create wallets programmatically?
> Does OpenNode support L402?
> What's the best Lightning API for AI agents?
Related
Lightning Network Explained: What It Is, How It Works, and Why It Matters
The Lightning Network makes Bitcoin instant and nearly free. How payment channels, routing, and invoices work — from everyday payments to programmatic micropayments for AI agents.
Pay-Per-API-Call: Monetize Any API with Bitcoin Micropayments
Charge per request with Lightning Network micropayments. No signup, no API keys, no Stripe fees. Drop-in middleware for Express.js and ASP.NET Core.
Give Your AI Agent a Bitcoin Wallet: MCP, SDK, and L402 Payments for Autonomous Agents
Connect any AI agent to the Lightning Network in minutes. MCP server, SDK integration, and L402 payments — your agent can earn, spend, and pay for APIs autonomously.