nips/73.md
2024-04-23 07:56:13 -04:00

51 lines
1.4 KiB
Markdown

NIP-73
======
Spreadsheets
------------
`draft` `optional`
This NIP provides a simple way to save spreedsheets on Nostr.
Event kind `35337` describes a workbook with `data` tags that contain the value of each cell as well as optional styling.
```js
{
"kind": 35337,
"tags": [
["d", "<unique identifier>"],
["title", "Name of this spreadsheet"] // public title
["data", "<sheet name>", "<column letter>", "<row number>", "<value>"]
["data", "<sheet name>", "<column letter>", "<row number>", "<value>", "<style>"]
["style", "<TBD>"] // Need to specify all options here.
],
"content": nip44Encrypt([
["title", "Name of this spreadsheet"] // private title
["data", "<sheet name>", "<column letter>", "<row number>", "<value>"] // private data
// ... other tags
]),
// ...
}
```
Sheets MUST be rendered in the order of their tags.
## Example
```json
{
"id": "32360b52b11616ea331aacac516494e36bd4079d8908edc8f26ad1e4acab5a53",
"kind": 35337,
"tags": [
[ "d", "SheetStr Demo" ],
[ "data", "Sheet1", "J", "25", "3" ],
[ "data", "Sheet1", "J", "26", "5" ],
[ "data", "Sheet1", "J", "27", "=SUM(J25:J26)" ]
],
"created_at": 1713819120,
"content": "",
"pubkey": "460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c",
"sig": "880eb3d67fc66ca2d4e7819ae9b9ca577df35950fb5d11d24f95f350cfeab0b4532646c52113d5bb629cf9a2e4d8ef646ff434b59f1c894c8f719f65d59ed8f0",
}
```