mirror of
https://github.com/nostr-protocol/nips.git
synced 2025-04-01 16:38:46 +02:00
more changes to separate kinds and add recommended relay instead of notes to the tags
This commit is contained in:
parent
9a0bf126d7
commit
19a8613284
31
70.md
31
70.md
@ -12,36 +12,28 @@ This proposal introduces an event type with kind `9991` representing a peer-to-p
|
||||
|
||||
The initial purpose of this event type is for requesting approval of [partially signed bitcoin transactions](https://river.com/learn/terms/p/partially-signed-bitcoin-transaction-psbt/) (PSBT), but the event type may also be used in more general purpose approval-style workflows.
|
||||
|
||||
### Motivation
|
||||
# Motivation
|
||||
## Bitcoin PSBTs
|
||||
Alice, Bob, Charlie, David, and Erika manage a company's bitcoin treasury that is used to pay vendors. The amounts are large, so the treasury is protected in a multisignature wallet. The payment frequency is low, so there is not a need for an L2 such as lightning.
|
||||
|
||||
They often use popular bitcoin wallets such as Electrum or Sparrow to manage the treasury. These wallets require that a spending proposer export the PSBT to a text file, send the file out-of-band, where the prospective approver must then import the PSBT, sign, export, and repeat. Eventually, the PSBT or combination of signatures reaches the threshold for the transaction to be finalized and broadcast.
|
||||
|
||||
The treasurers wish to improve and streamline the process using Nostr and user-friendly policy editors such as BDK's [Elephant](https://github.com/bitcoindevkit/elephant).
|
||||
|
||||
#### Document Signatures
|
||||
## Document Signatures
|
||||
This feature set could replace common legal document approval/signature applications such as DocuSign or Adobe Sign. Instead of a PSBT, the content could be markdown, plain text, or content such as [OpenLaw](https://docs.openlaw.io/) markup, all of which may represents the body of what is being signed by the user.
|
||||
|
||||
### Notes & RFC
|
||||
# Notes & RFC
|
||||
- The content may or may not be encrypted (?).
|
||||
- It will likely be common for this to be used on private or permissioned relays.
|
||||
- The `p` tag is for tagging a specific account, such as `@Bob` or `@Charlie`. See example below.
|
||||
- Bitcoin signature request URIs have been proposed over the years but it is unclear how many wallets support them. The content in a `9991` event may contain a URI encoded PSBT or a non-URI encoded PSBT.
|
||||
|
||||
#### Example Client Implementation
|
||||
Clients may show the event under DMs or in a specific signature-request zone.
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/32852271/219762673-3ff42c16-15b6-415b-80a5-05f9502e3184.png" width="600"/>
|
||||
|
||||
Clients may add `Approve` or `Reject` or `...` (more) buttons directly in the client, or provide a URI to open the signature request within a bitcoin wallet (similar to the zap functionality).
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/32852271/219763472-0f390678-2545-457a-92e6-12bbd2275996.png" width="600"/>
|
||||
|
||||
### Example
|
||||
# Example
|
||||
This example event tags Bob, Charlie, David, and Erika with an optional note for each. The PSBT is in the content. For PSBTs, once signed, the resulting PSBT can be the same event type as the signature is already embedded in the PSBT specification. For non-PSBT use cases, only the signature may be returned or appended to the content and returned.
|
||||
|
||||
#### Simple Example
|
||||
##### Signature Request - 9991
|
||||
## Simple Example
|
||||
### Signature Request - 9991
|
||||
Bob asks Alice to approve of having cheesecake tonight.
|
||||
```json
|
||||
{
|
||||
@ -60,7 +52,7 @@ Bob asks Alice to approve of having cheesecake tonight.
|
||||
}
|
||||
```
|
||||
|
||||
##### Signature Reply - 9992
|
||||
### Signature Reply - 9992
|
||||
Alice approves of having cheesecake tonight.
|
||||
```json
|
||||
{
|
||||
@ -81,4 +73,11 @@ Alice approves of having cheesecake tonight.
|
||||
<other fields>
|
||||
}
|
||||
```
|
||||
# Example Client Implementation
|
||||
Clients may show the event under DMs or in a specific signature-request zone.
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/32852271/219762673-3ff42c16-15b6-415b-80a5-05f9502e3184.png" width="600"/>
|
||||
|
||||
Clients may add `Approve` or `Reject` or `...` (more) buttons directly in the client, or provide a URI to open the signature request within a bitcoin wallet (similar to the zap functionality).
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/32852271/219763472-0f390678-2545-457a-92e6-12bbd2275996.png" width="600"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user