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](https://github.com/lnbits/lnbits) to have a funding source that pay invoices/create invoices/check payment status, all over nostr DMs. Simple plugins/middleware could be made for funding sources, that any wallet software coul use over nostr. ## 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":"" } } ```