Alby alternative for developers and AI agents
Alby Hub is a self-custodial wallet you run and reach over Nostr Wallet Connect. ln.bot is a hosted wallet API. How they compare for software and AI agents.
Alby and ln.bot can both give an AI agent a Lightning wallet, and both have an MCP server for it. The difference is who runs the node. Alby Hub is a self-custodial wallet with its own Lightning node, which you run on your computer, a home server or a cloud server you rent, and apps reach it through Nostr Wallet Connect (NWC). With ln.bot there is nothing to run: ln.bot operates the nodes and the channel liquidity, balances sit on ln.bot's nodes, and your code calls an HTTPS API with a key.
Checked on 23 October 2026: the Alby details on this page come from Alby's guides, pricing page, GitHub and npm, linked where they appear.
| Alby | ln.bot | |
|---|---|---|
| Who runs the node | You: Alby Hub on your computer, a home server or a rented cloud server | ln.bot |
| Custody | Self-custodial | Custodial: balances sit on ln.bot's nodes |
| How code connects | An NWC connection string, over Nostr relays | An API key, over HTTPS |
| Libraries | Alby's JavaScript SDK, plus NWC libraries in other languages | TypeScript, Python, Go, Rust and C# SDKs, and a CLI |
| Wallets for agents | Sub-wallets inside your Hub (three on the free plan) | Wallets created by API, with no limit |
| Spending limits | A sub-wallet's balance, or a renewable budget on an NWC connection | The wallet's balance, plus caps in the L402 client |
| MCP server | Run it yourself, or use Alby's hosted one | Hosted, one per wallet |
| Paying L402 APIs | Yes, and x402 and MPP through lightning-tools | Yes, with a per-request cap and a budget |
| Charging with L402 | Helpers to issue and check tokens | Middleware for Express and ASP.NET Core |
| Nostr | Browser extension with Nostr keys, zaps, NWC apps | None |
| Test wallets | From the NWC faucet | None |
| Price (October 2026) | Free; Pro at $3.9 a month for unlimited sub-wallets | Receiving free; paying out 0.25% (minimum ₿1) plus a network fee of 0.25% and routing |
Running a node, or calling an API
Alby Hub runs an embedded LDK node by default, or drives an LND, Phoenixd, Cashu or CLN backend (Hub README). Where it runs is up to you: Alby's guide covers desktop, Docker, Linux, home-server platforms such as Umbrel and Start9, and cloud servers. The software is free, with no fees added to transactions (pricing); what you pay for is the server and the Lightning channels. With the embedded node, Hub can receive before it has any inbound capacity: just-in-time channels open on demand, and the fee comes out of the incoming payment.
Running a node is still operations work. It has to be online to receive, and Alby's README says Hub should not be exposed to the public internet, so a cloud deployment needs a private network or a locked-down proxy.
ln.bot is custodial. ln.bot runs the nodes and the channel liquidity, your balance sits on ln.bot's nodes, and what you hold is an API key rather than the node's keys. That suits an agent's spending money better than savings, and ln.bot's terms recommend treating a wallet as an operational balance.
NWC connection strings and API keys
Apps reach Alby Hub through NWC. You create a connection in Hub, copy its secret (a nostr+walletconnect:// URL), and the app sends its requests to the wallet over Nostr relays. Alby's JavaScript SDK wraps this in a small client:
import { LN, SATS } from "@getalby/sdk/lnclient";
const ln = new LN("nostr+walletconnect://..."); // a connection secret from Alby Hub
await ln.pay("r7vq3np@ln.bot", SATS(500)); // ₿500 to a Lightning addressln.bot is plain HTTPS with a bearer key, so it works from any language with an HTTP client, and the SDKs cover five of them:
import { LnBot } from "@lnbot/sdk";
const w = new LnBot({ apiKey: process.env.LNBOT_USER_KEY }).wallet("wal_...");
await w.payments.create({ target: "r7vq3np@ln.bot", amount: 500 }); // ₿500 to a Lightning addressCommunity libraries cover NWC in Python, Go, Rust, PHP, Swift and other languages (awesome-nwc). NWC code runs against any NWC wallet, so your users can bring their own. Code written for ln.bot runs against ln.bot. ln.bot doesn't speak NWC, so apps that only use NWC can't connect to an ln.bot wallet.
A wallet for each agent
Alby's AI page suggests sub-wallets for agents, with their funds kept apart from your main wallet. A sub-wallet is a virtual account inside your Hub: it has its own balance and NWC connection, its funds stay in the Hub's Lightning balance, and the Hub's operator can see every transaction. hub-cli creates one from a script, and with a linked Alby Account it can have its own Lightning address. The free plan allows three sub-wallets and Pro, at $3.9 a month, removes the limit (pricing, October 2026).
npx @getalby/hub-cli create-sub-wallet --name "research-agent"On ln.bot, each agent's wallet is a call to the hosted API. It comes with a random Lightning address, a wallet key that reaches only that wallet, and an MCP endpoint:
import { LnBot } from "@lnbot/sdk";
const ln = new LnBot({ apiKey: process.env.LNBOT_USER_KEY }); // uk_...
const { walletId, address } = await ln.wallets.create();
const { key } = await ln.wallet(walletId).key.create(); // wk_..., this wallet only
const mcpUrl = `https://api.ln.bot/v1/wallets/${walletId}/mcp`;
console.log(address); // a random address, such as x4k7m2@ln.botGive the agent the wallet key and that URL (MCP docs). The MCP tools have no spending cap of their own, so fund the wallet with only what the agent may spend. Alby can also put a renewable budget on an NWC connection; ln.bot keys have no limits of that kind, and the wallet's balance is the cap.
Alby's MCP server runs locally or at mcp.getalby.com, takes an NWC connection secret as its bearer token, and has tools for balances, invoices, payments, transactions and fetching L402 resources. ln.bot's is hosted per wallet, with 12 tools, three of them for L402: creating a challenge, paying one and verifying a token.
Paying and charging with L402
Alby's tools pay L402 APIs. The MCP server has a fetch_l402 tool, and lightning-tools has fetchWithL402 and fetch402, which also handles x402 and MPP; they pay from any NWC wallet. For servers, lightning-tools added helpers that issue and check L402 tokens in April 2026. You create the invoice through your wallet and wire the helpers into your own routes.
ln.bot ships the server side as middleware for Express and ASP.NET Core. It creates the invoice in your wallet, answers with the 402, and checks each paid token with one call to ln.bot:
import express from "express";
import { l402, LnBot } from "@lnbot/l402";
const app = express();
const ln = new LnBot({ apiKey: process.env.LNBOT_USER_KEY });
// ₿10 per request, paid into this wallet
app.use("/api/premium", l402.paywall(ln, { walletId: "wal_...", price: 10 }));
app.get("/api/premium/forecast", (req, res) => {
res.json({ forecast: "sunny", paymentHash: req.l402?.paymentHash });
});
app.listen(3000);By default a paid token buys one request. On the paying side, l402.client refuses any request priced above maxPrice and stops when its budget for the hour, day, week or month runs out. The pay-per-call guide shows both ends.
Where Alby is the better choice
- You want to hold your own keys, on a node you control.
- Your users bring their own wallets. NWC code works with any NWC wallet, and Alby Go and the Alby extension connect people to Hub and other wallets.
- You build for Nostr. The Alby extension manages Nostr keys for logging in to sites, and lightning-tools can send zaps.
- You want the wallet itself to enforce a budget on each app connection.
- You want some fiat conveniences. Alby's LN client takes amounts in dollars or other currencies, and the free plan lists card and SEPA top-ups (pricing).
- You want to test without real money. Alby's CLI docs point to an NWC faucet that hands out test wallets.
ln.bot doesn't speak NWC and can't be self-hosted: it is a hosted, custodial service, and ln.bot holds the balances. It has nothing for Nostr or the browser. Amounts are in bitcoin only, without fiat pricing or conversion, and payments go over Lightning only. There is no test network, so every wallet holds real bitcoin, and a key can spend whatever its wallet holds.
Moving funds from Alby Hub
To move bitcoin from Hub into an ln.bot wallet, create an invoice with the CLI and pay it from Hub:
curl -fsSL https://ln.bot/install.sh | bash
lnbot init
lnbot invoice create --amount 50000 --memo "From Alby Hub" --no-wait
lnbot balance # after you've paid the invoice from Hublnbot init creates an account and a wallet, and prints the wallet's Lightning address and a recovery passphrase to keep safe. invoice create prints the BOLT11 invoice to paste into Hub. Your getalby.com address belongs to your Alby Account and stays with it. The ln.bot wallet has its own random address, such as x4k7m2@ln.bot, and a name you choose costs ₿100 or more, once. To keep one address whatever wallet sits behind it, serve it from your own domain (Lightning addresses explains how).
Alby's old shared wallet
Alby stopped its shared wallet service on 4 January 2025. Balances left after that became fee credits for Alby Hub, which lasted through the first three quarters of 2025. Alby's terms of service (updated 2 September 2025) also let it deduct the remaining balance of an inactive legacy shared-wallet account, created in 2023 or earlier, after 12 months without a completed transaction; the clause covers only those legacy accounts. Alby Hub, the wallet Alby offers now, is self-custodial.
FAQ
Is Alby shutting down?
No. Alby retired only its old shared (custodial) wallet, on 4 January 2025. As of October 2026 it still develops Alby Hub, its self-custodial wallet, along with the Alby browser extension, the Alby Go mobile app, an MCP server and developer tools for Nostr Wallet Connect.
What happened to Alby custodial wallets?
Alby stopped its shared wallet service on 4 January 2025 and turned the balances left in it into fee credits for Alby Hub, which lasted through the first three quarters of 2025. Its terms of service also allow it to deduct the balance of an inactive legacy shared-wallet account created in 2023 or earlier, after 12 months without a completed transaction; the clause covers only those legacy accounts.
What's an Alby alternative if I don't want to run a node?
ln.bot is a hosted Lightning wallet API: ln.bot runs the nodes and the channel liquidity, and your code calls a REST API, one of five SDKs (TypeScript, Python, Go, Rust, C#), the lnbot CLI or a hosted MCP server. It is custodial, so treat a wallet as an operational balance. Receiving is free, paying out costs 0.25% (minimum ₿1) plus the network fee, another 0.25% and routing, and there is no subscription.
Does ln.bot support Nostr Wallet Connect (NWC)?
No. ln.bot wallets are reached through the REST API, the SDKs, the CLI and the MCP server, so apps that only speak NWC can't connect to them. If you need NWC, use a wallet that supports it, such as Alby Hub.
Can I keep my Alby Lightning address if I switch to ln.bot?
No. A getalby.com Lightning address belongs to your Alby Account and pays into the Alby Hub linked to it. An ln.bot wallet comes with its own random address, such as x4k7m2@ln.bot, and a name you choose costs ₿100 or more, once. To keep one address across wallets, serve it from a domain you own.