OpenReceive guides
- 0:00 Intro
- 0:44 Where it sits in your stack
- 2:25 Why Lightning
- 3:39 The receive-only NWC code
- 5:26 Nostr relays, simplified
- 7:42 Tracing a checkout request
- 9:47 Why invoices expire in ten minutes
- 10:50 Discovering payments: batched scans
- 12:49 Polling and listening
- 14:10 Settlement: write once
- 15:17 Stablecoin swaps
- 17:21 Resilience and no lock-in
- 18:20 One spec, many engines
- 18:56 Close
OpenReceive adds Bitcoin Lightning checkout to your application or store. Payments go straight to your wallet, and payment attempts are stored in your existing database. Pick your framework or platform below.
OpenReceive can also accept USDT, USDC, SOL, and ETH through a swap provider you configure. The provider converts the payment to BTC over Lightning, and it settles into the merchant’s connected wallet. Swaps are optional. The provider decides which assets and networks are available.
Your own app
- Express quickstart (Node)
- Bitcoin checkout on Replit: the same Express setup, built by Replit Agent and published on Replit
- Fastify quickstart
- Next.js quickstart
- Bitcoin checkout on Vercel and v0: the same Next.js setup, hosted on Vercel or built by v0
- NestJS quickstart: the Express adapter, mounted in
main.ts - Node ORM recipes
- Rails quickstart
- FastAPI quickstart
- Flask quickstart: the same Python engine, as a Flask Blueprint
- Django quickstart
- PHP quickstart (plain PHP)
- Laravel quickstart
Recipes: React + Material UI, TanStack Start (a server route, on Node or Cloudflare Workers), Supabase Edge Functions. On Node, the same handler mounts in SvelteKit, Nuxt, Astro and React Router.
AI app builders
- Bitcoin checkout on Lovable
- Bitcoin checkout on Bolt
- Bitcoin checkout with Supabase: payment storage in Supabase Postgres, through its pooler, with Supabase Auth
Stores and billing panels
- WordPress + WooCommerce quickstart
- Easy Digital Downloads quickstart: the same WordPress plugin
- WordPress hosting requirements: which hosts can run the WordPress plugin
- Paymenter quickstart
- FOSSBilling quickstart
- PrestaShop quickstart
- Odoo quickstart
- Medusa quickstart
- Vendure quickstart
- BTCPay Server quickstart, plus its reference
- Through BTCPay Server: Odoo, Magento and PrestaShop
Checkout
- Authorization and the host
- Frontend checkout
- Checkout UX
- Headless checkout
- Writing your own checkout route
- Rate limiting
Swaps
- Automated swaps
- Swap refunds, and the way back to them
- Lightning Swap Connect (LSC) URI
- Provider registry
Running it
- Environment variables
- Payment storage
- Deploying OpenReceive
- Bitcoin checkout on serverless hosts: Netlify, AWS Lambda, Google Cloud Run and AI Studio, and pooled database URLs
- Bitcoin checkout in mobile apps: React Native, Flutter, Swift and Kotlin apps, and what the app stores allow
- Payment safety upgrade and repair: how to roll out an upgrade and how unpaid attempts close
- Testing your OpenReceive integration
- Security
- Price feeds
- How we test platforms: what a Tested badge on openreceive.org means
Reference
With a coding agent
Give your agent one of the agent-directions files instead of a reading list.
Each one holds the rules to follow before any code (Step 0) and the full
matching quickstart, and works pasted into an editor with no network access:
Express,
Fastify,
Next.js,
NestJS,
SvelteKit,
Nuxt,
Astro,
React Router,
TanStack Start,
FastAPI,
Django,
Flask,
Rails,
PHP,
Laravel,
Lovable,
Bolt,
WooCommerce,
Easy Digital Downloads,
Paymenter,
FOSSBilling,
PrestaShop,
Odoo,
Medusa,
Vendure,
BTCPay Server or
a mobile app’s server.
To hand an agent a link instead, drop /full from the URL: that short page
tells it to download the full file with its shell.