mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-09 22:09:06 -05:00
09ffb951c6
* rework nip-03 to be actually useful and usable. * fixes. * add ots verification flow.
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
NIP-03
|
|
======
|
|
|
|
OpenTimestamps Attestations for Events
|
|
--------------------------------------
|
|
|
|
`draft` `optional` `author:fiatjaf` `author:constant`
|
|
|
|
This NIP defines an event with `kind:1040` that can contain an [OpenTimestamps](https://opentimestamps.org/) proof for any other event:
|
|
|
|
```json
|
|
{
|
|
"kind": 1040
|
|
"tags": [
|
|
["e", <event-id>, <relay-url>],
|
|
["block", <block-height-as-string>, <block-hash>],
|
|
["alt", "opentimestamps attestation"]
|
|
],
|
|
"content": <base64-encoded OTS file data>
|
|
}
|
|
```
|
|
|
|
- The OpenTimestamps proof MUST prove the referenced `e` event id as its digest.
|
|
- The `block` tag is optional, it exists to establish a minimum date since which the given event has existed.
|
|
- The `content` MUST be the full content of an `.ots` file containing at least one Bitcoin attestation. This file SHOULD contain a **single** Bitcoin attestation and no reference to "pending" attestations since they are useless in this context.
|
|
|
|
### Example OpenTimestamps proof verification flow
|
|
|
|
Using [`nak`](https://github.com/fiatjaf/nak), [`jq`](https://jqlang.github.io/jq/) and [`ots`](https://github.com/fiatjaf/ots):
|
|
|
|
```bash
|
|
~> nak req -i e71c6ea722987debdb60f81f9ea4f604b5ac0664120dd64fb9d23abc4ec7c323 wss://nostr-pub.wellorder.net | jq -r .content | ots verify
|
|
> using an esplora server at https://blockstream.info/api
|
|
- sequence ending on block 810391 is valid
|
|
timestamp validated at block [810391]
|
|
```
|