LexeConnect
LexeConnect lets users connect their Lexe wallet to your app or service in one tap. Your app can then receive Lightning payments into the user's wallet, pay from it, or read its history, without holding funds or running a wallet of its own.
Your app shows a "Connect Lexe" button or a QR code, requesting exactly the access it needs. The user taps "Approve" in the Lexe app, and your app receives a Lexe client credential scoped to that access.
Users stay self-custodial. The approval screen shows who is asking and what they are granting, the credential is limited to the approved scopes, and it can be revoked from the Lexe app at any time. Your app never sees the user's root seed.
Use cases
App-to-app
Example: BillSplit, a mobile app for splitting bills with friends, adds a "Connect Lexe" button so that its users can settle what they owe from their Lexe wallet, without navigating menus or copy-pasting a credential.
- The user taps "Connect Lexe" in BillSplit and is redirected to the Lexe app.
- In the Lexe app, the user approves BillSplit's requested scopes in one tap, and is redirected back to BillSplit.
- BillSplit receives the credential and can now pay friends from the user's Lexe wallet, subject to the approved scopes.

App-to-service
Example: Paygate.com, a web app, lets merchants share a receive-only Lexe client credential, so that Paygate can host a checkout page which accepts payments into the merchant's Lexe wallet, without the ability to spend.
- Paygate.com displays a QR code which encodes a LexeConnect connection string.
- The merchant scans it with their Lexe app and approves Paygate's requested scopes.

How it works
- Your app builds a connection string:
https://lexe.app/connect?scopes=read_info,receive,spend&... - The user opens it as a link from your app, or scans it as a QR code with the Lexe app.
- The user reviews the requested scopes and taps "Approve".
- The credential is delivered to your app, encrypted end to end, by the method your connection string chose: a redirect back to your app, a POST to your server, or a mailbox your app polls, for desktop and CLI apps that can do neither.
What your app receives is a Lexe client credential. It is scoped and revocable, works with every Lexe SDK, the CLI, and the sidecar, and will soon support spending budgets. Your app chooses the scopes. The user can approve or reject the request, but not edit them.
Integrating LexeConnect
- Read the LexeConnect spec for the full protocol: connection strings, delivery methods, and response encryption.
- Use the
lexe-connectcrate (docs) to build requests and decrypt responses. It is the reference implementation, so it is also the place to start when porting LexeConnect to another language. - Try the live demo with your own Lexe wallet to see each delivery method in action: redirect, post, and mailbox.
Live examples
The Paygate and BillSplit examples above are fictional. These products have integrated LexeConnect in production:
- Zaprite P2P is a peer-to-peer payments app that connects the wallets you already have, so you can pay or request bitcoin from friends by phone number or username. Connecting a Lexe wallet with LexeConnect grants Zaprite P2P a spend-scoped credential, so it can both pay and receive on the user's behalf.
- Zaptrain is Lightning invoicing for freelancers, merchants, and small teams, with branded invoices, payment links, a checkout flow, and a REST API. Merchants connect their Lexe wallet with LexeConnect (video), which grants Zaptrain a receive-only credential, so it can create invoices and watch for payments but never spend.
See the showcase for more apps built on Lexe.
Verification
Verified requesters can add their name and icon to the approval screen, in
place of a bare domain.
To get verified, email
partnerships@lexe.app.
Then pass requester_name and requester_icon in your connection strings.
