NIP-83 ====== Wallet connect/bridge -------------- `draft` `optional` `author:arcbtc` Useful for clients wanting to intergrate non-custodal wallet features. > Intended for use with bitcoin, but could be used with any invoice payment system that can pay invoices/create invoices/check payment status. ## Motivation We wanted LNbits to have a funding source that pay invoices/create invoices/check payment status, all over nostr DMs. Simple plugins/middleware coud be made for lightning nodes that connect to the funding source. ## Examples There are two simple clients sending json over [NIP04](https://github.com/nostr-protocol/nips/blob/master/04.md). 1. `funding source client`: Attached to the funding source, the other built into another service/client. 2. `service client`: Built into a service. ### Creating an invoice `service client` sends `create_invoice` event: ```json { "create_invoice": { "amount": int, "memo": "", "description_hash": "" } } ``` `funding source client` checks the pubkey has permission and sends `generated_invoice` event: ```json { "generated_invoice": { "payment_hash": "", "payment_request": "" } } ``` ### Paying an invoice `service client` sends `pay_invoice` event: ```json { "pay_invoice": { "invoice": "", "note": "" } } ``` ### Checking a payment in/out `service client` sends `check_payment` event: ```json { "check_payment": { "payment_hash": "" } } ``` `funding source client` checks the pubkey has permission, checks the payment status and sends `payment_status` event: ```json { "payment_status": { "paid": "" } } ```