Activate with Lightning (L402 Fast Lane)
L402 Fast Lane lets you create a Lightning Enable account and start a full 30-day Agentic Commerce trial by paying a single 100-sat L402 challenge — no credit card. The signup itself runs on L402: 402 → pay → macaroon proof → account activated. You use the exact payment flow your own APIs and agents will use.
That option pays a subscription with Bitcoin for a discount. Fast Lane is a no-card trial activated with a tiny Lightning payment — two different things.
- A funded Lightning wallet with a little more than 100 sats (to cover the routing fee). L402 requires a wallet that surfaces the payment preimage — LND, Strike, or an NWC wallet (CoinOS, Alby Hub, CLINK). OpenNode and Primal NWC don't surface preimages and won't work here.
- About a minute.
The fastest path: the MCP tool
If you run the Lightning Enable MCP with a connected wallet, one tool call does everything:
create_lightning_enable_account(email="you@example.com")
It pays the 100-sat challenge, returns your merchant API key and trial details, and writes the key into ~/.lightning-enable/config.json so the API-key-gated producer tools unlock on the next restart. Requires MCP ≥ 1.15.0 (dotnet tool update -g LightningEnable.Mcp or pip install -U lightning-enable-mcp).
Dev CLI: l402-requests (Python)
Prefer a script? The l402-requests client auto-detects your wallet and handles the whole 402 → pay → retry handshake, preserving your email through the paid retry:
# pip install "l402-requests>=0.5.0" # 0.5.0 adds NIP-44 NWC support (Alby Hub, etc.)
from l402_requests import L402Client
client = L402Client() # auto-detects LND > NWC > Strike > OpenNode from env / config
resp = client.post(
"https://api.lightningenable.com/api/signup/l402",
json={"email": "you@example.com"},
timeout=60,
)
data = resp.json()
print("API key: ", data["apiKey"]) # save this — it's shown once
print("Trial ends:", data["trialEndsAt"])
print("Dashboard: ", data["dashboardUrl"])
The .NET and TypeScript clients do the same handshake — point them at the same endpoint with a JSON { "email": "…" } body.
Raw protocol (any language)
Before spending anything, you can fetch a read-only quote — GET https://api.lightningenable.com/api/signup/l402 returns availability, the current price and trial terms, required fields, and the exact flow, with no side effects.
The endpoint itself is a standard two-phase L402 flow, so you can drive it by hand:
- Ask for the challenge —
POST /api/signup/l402with body{"email":"you@example.com"}. You get402 Payment Requiredwith aWWW-Authenticate: L402 macaroon="…", invoice="…"header. - Pay the invoice with any preimage-surfacing wallet to obtain the preimage.
- Complete — repeat the POST with the same body plus
Authorization: L402 <macaroon>:<preimage>. You get200 OKand your account:
{
"status": "created",
"apiKey": "lgw_…",
"merchantId": 123,
"email": "you@example.com",
"planTier": "individual",
"subscriptionStatus": "trialing",
"trialEndsAt": "2026-08-06T00:00:00Z",
"dashboardUrl": "https://api.lightningenable.com/dashboard",
"nextSteps": [
{ "id": "store_api_key", "title": "Store your API key", "detail": "…", "url": "https://api.lightningenable.com/dashboard/settings" },
{ "id": "connect_payment_provider", "title": "Connect a payment provider", "detail": "…", "method": "PUT", "endpoint": "/api/merchant/strike-key", "url": "https://api.lightningenable.com/dashboard/login", "docs": "https://docs.lightningenable.com/strike-setup/account-setup" },
{ "id": "mint_first_challenge", "title": "Mint your first L402 challenge", "detail": "…", "method": "POST", "endpoint": "/api/l402/challenges", "docs": "https://docs.lightningenable.com/products/agentic-commerce/producer-api-reference" },
{ "id": "trial", "title": "Manage your trial", "detail": "…", "url": "https://api.lightningenable.com/dashboard" },
{ "id": "docs", "title": "Read the full guide", "detail": "…", "url": "https://docs.lightningenable.com/getting-started/activate-with-lightning", "docs": "https://api.lightningenable.com/llms.txt" }
],
"instructions": "Your Lightning Enable account is ready. 1) Store your API key now — it is shown only in this response… (full plain-text walkthrough of the same five steps)"
}
nextSteps is an ORDERED array — always these five ids, in this order — for a caller that wants to branch on structured data. instructions renders the same guidance as one plain-text paragraph for a caller that only relays text. Every number in both (the trial price, the Free Producer Sandbox caps) is read live from the plan configuration, so it can never drift from what the account is actually on. A welcome email is also sent to the signup address at this point — see below.
Semantics worth knowing (all activation paths)
These apply whether you used the MCP tool, the Python client, or the raw protocol:
- Enumeration-safe by design: the challenge phase never reveals whether an email is registered — an already-registered email mints an identical 402. If the email already has an account, the paid verify returns
409 merchant_existsand the ~100-sat fee is not refunded, so confirm the email is correct and new before paying. Agents: always use the operator's real email, never an invented one. - Verify promptly after paying. The credential expires (about an hour). A late verify returns
401— indistinguishable from an invalid token — and re-POSTing mints a new payable invoice; the first payment is not automatically recovered. If you paid, complete the retry right away. An unpaid or abandoned challenge never creates an account, and an unpaid401costs nothing — just re-POST for a fresh challenge. - The API key is shown once in the success response. It is recoverable later by signing in at the dashboard via a magic-link email to your signup address — so the email must be real and reachable. (Regenerating the key from Settings invalidates the old one immediately.)
- A welcome email is sent to the signup address right after the account is created — the same guidance as the response's
nextSteps/instructions, written for the human behind the agent. It never contains the API key or the L402 macaroon. Sending is best-effort: a delivery problem never fails or delays the signup response, and it is sent exactly once per created account (not on a409 merchant_existsretry).
First success after activation
Prove the account works end-to-end for about 1 sat, without building an API first:
- Save the returned
apiKeysecurely. - Connect your payment provider — add your Strike (recommended) or OpenNode API key in the dashboard Settings. Challenges settle to your provider account; until one is connected, challenge creation returns
400. - Create a 1-sat challenge:
POST /api/l402/challenges(or thel402_producerMCP tool withaction="create") with any resource name andpriceSats: 1. - Pay your own challenge with your wallet (
pay_l402_challenge). - Verify it:
POST /api/l402/challenges/verify(orl402_producerwithaction="verify") — avalid: trueresponse confirms your producer account is fully provisioned.
What you get
- A 30-day Agentic Commerce trial: unlimited L402 endpoints, per-endpoint pricing, and the live dashboard with a per-request payment feed.
- Your merchant API key — save it, it's shown once. It unlocks the L402 Producer API and the API-key-gated MCP producer/ASA tools.
- Sign in anytime at the dashboard.
After the trial
Add billing to keep Individual features, or do nothing and your account automatically moves to the Free Producer Sandbox (3 endpoints, limited monthly challenge volume, 1,000-sat max challenge price). Either way you keep your account and endpoints — prefer the no-code path? Start the Sandbox directly at api.lightningenable.com/dashboard/signup.
The Sandbox's 3 endpoints means 3 distinct resource paths, counted for the life of the account — unlike the monthly challenge volume, this tally doesn't reset. Reuse your paths while experimenting rather than minting a fresh one each time. If a throwaway or test path ends up permanently holding a slot, email support@lightningenable.com and we can retire it to free the slot.
Paying with an email that already belongs to an account won't create a second one — the paid verify returns 409 merchant_exists and the activation fee is not refunded, so sign in instead of paying again.
Next step: sell with your agent
You have an API key and a producer account — the next step is turning that into a paid endpoint. Sell With Your Agent picks up right here: give your agent a receive wallet, a spend ceiling, and the API you want to charge for, and the producer-setup skill wires up the whole path — proxy, manifest, and a self-test payment that proves it works — with no dashboard clicking required.
Lightning Enable is API middleware and never holds your funds. Your wallet pays the challenge directly, and your chosen settlement provider (Strike or OpenNode) custodies every payment on the APIs you monetize.