mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-23 00:45:53 -05:00
NIP-83 Wallet connect/bridge
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.
This commit is contained in:
parent
4d8d66d651
commit
5d4d79228a
79
83.md
Normal file
79
83.md
Normal file
|
@ -0,0 +1,79 @@
|
|||
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": "<Optional[str]>",
|
||||
"description_hash": "<Optional[bytes]>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`funding source client` checks the pubkey has permission and sends `generated_invoice` event:
|
||||
|
||||
```json
|
||||
{ "generated_invoice": {
|
||||
"payment_hash": "<string>",
|
||||
"payment_request": "<string>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Paying an invoice
|
||||
|
||||
`service client` sends `pay_invoice` event:
|
||||
|
||||
```json
|
||||
{ "pay_invoice": {
|
||||
"invoice": "<string>",
|
||||
"note": "<Optional[str]>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Checking a payment in/out
|
||||
|
||||
`service client` sends `check_payment` event:
|
||||
|
||||
```json
|
||||
{ "check_payment": {
|
||||
"payment_hash": "<string>"
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
`funding source client` checks the pubkey has permission, checks the payment status and sends `payment_status` event:
|
||||
|
||||
```json
|
||||
{ "payment_status": {
|
||||
"paid": "<bool>"
|
||||
}
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue
Block a user