Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync with upstream #112

Merged
merged 378 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
378 commits
Select commit Hold shift + click to select a range
a7ed4e8
Merge pull request #1129 from coracle-social/relax-nip32
alexgleason Jun 7, 2024
9e223f3
NIP-09: clarify "a" tag deletions
alexgleason Jun 7, 2024
c30971f
NIP-57: Clarify description tag
patrickReiis Jun 7, 2024
ee114a1
README: remove `l` tag annotations
AsaiToshiya Jun 8, 2024
efd6575
Merge pull request #1295 from AsaiToshiya/AsaiToshiya-patch-15
alexgleason Jun 8, 2024
604ab3c
Merge pull request #1294 from patrickReiis/patch-2
staab Jun 9, 2024
df05c19
BREAKING.md: add changes
AsaiToshiya Jun 9, 2024
0d7e3ed
Merge pull request #1296 from AsaiToshiya/AsaiToshiya-patch-16
staab Jun 10, 2024
d251ca0
Merge pull request #1293 from alexgleason/a-deletion
alexgleason Jun 11, 2024
326ad34
NIP-24: fix missing rename
AsaiToshiya Jun 13, 2024
ac4141a
Merge pull request #1305 from AsaiToshiya/AsaiToshiya-patch-18
staab Jun 13, 2024
2a8597b
Update 01.md
ArmanTheParman Jun 15, 2024
a52d170
Update 01.md
ArmanTheParman Jun 16, 2024
9d8be01
Update README.md
ArmanTheParman Jun 16, 2024
4f787ad
Update 05.md
ArmanTheParman Jun 16, 2024
c576737
parentheses > commas (#1308)
ArmanTheParman Jun 16, 2024
45351b5
Merge branch 'nostr-protocol:master' into external-content-ids
MerryOscar Jun 17, 2024
13b830d
Add Optional URL Hints
MerryOscar Jun 17, 2024
747f634
Merge pull request #1309 from ArmanTheParman/patch-2
staab Jun 17, 2024
1728f93
"user metadata" and fix table on readme.
fiatjaf Jun 17, 2024
08657b3
NIP-28: simplify and fix kind 41
AsaiToshiya Jun 21, 2024
8a04234
Merge pull request #1318 from AsaiToshiya/AsaiToshiya-patch-19
staab Jun 21, 2024
946d8de
Merge pull request #926 from dcadenas/patch-1
AsaiToshiya Jun 21, 2024
4aa18e3
Clarify which kinds have lifetime of 'regular' (#1315)
Origami74 Jun 23, 2024
70f1be5
Polls On Nostr
abhay-raizada Jun 25, 2024
a551c5b
NIP-89: fix `REQ` examples
AsaiToshiya Jun 25, 2024
f57d559
Proposal of a very simple spec for p2p events
grunch Jun 27, 2024
df977f3
Add source tag
grunch Jun 27, 2024
f6b0842
Clarify what happens when a duplicate subscription is sent, remove CL…
Jun 28, 2024
346ecd1
README: add `h` tag
AsaiToshiya Jun 28, 2024
cc4a7a4
NIP-27: fix broken link, use njump
patrickReiis Jul 3, 2024
c60ca88
nip29: create-group event kind.
fiatjaf Jul 4, 2024
cc7cdd5
Merge pull request #1344 from nostr-protocol/nip29-create-group
pablof7z Jul 4, 2024
d546936
Add more optional tags and small fixes
grunch Jul 4, 2024
21587e2
Finalize Draft
abhay-raizada Jul 5, 2024
8c47577
More precisely document since/until bounds. (#1284)
NfNitLoop Jul 5, 2024
ae1906e
relay-based event access-control with the `["-"]` tag (#1030)
fiatjaf Jul 10, 2024
7c988b6
README: add NIP-70 and `"-"` tag
AsaiToshiya Jul 10, 2024
356d028
Merge pull request #1355 from AsaiToshiya/AsaiToshiya-patch-22
alexgleason Jul 10, 2024
35ba009
NIP-65: fix typo
patrickReiis Jul 11, 2024
3061855
Merge pull request #1362 from patrickReiis/patch-3
alexgleason Jul 11, 2024
dedc22e
NIP-39: clarify that i tag should be in tags
syusui-s Jul 15, 2024
68c9e48
add suggestion to extension authors
vivganes Jul 15, 2024
8b75d7b
Merge pull request #518 from vivganes/patch-2
staab Jul 15, 2024
c258875
Remove settings, fine tuning
abhay-raizada Jul 16, 2024
9c54549
NIP-01: sort events by id after created_at
alexgleason Jul 19, 2024
2e85b89
Fix #1377: NIP-46: It's not obvious to the end-user that optional sec…
alopatindev Jul 20, 2024
8b5c9d8
Update 46.md
alopatindev Jul 20, 2024
96e3f76
99.md:use relative links
RandyMcMillan Jul 20, 2024
5359cd8
Merge pull request #1379 from RandyMcMillan/patch-2
alexgleason Jul 20, 2024
33c021b
Merge pull request #1364 from syusui-s/nip39_clarify
alexgleason Jul 22, 2024
c357a71
Merge pull request #1378 from alopatindev/fix-1377
alexgleason Jul 22, 2024
3451f5a
fix typos
mattn Jul 22, 2024
932f29d
Merge pull request #1382 from nostr-protocol/fix-typos2
mattn Jul 22, 2024
0227a2c
Merge pull request #1372 from alexgleason/nip01-order
alexgleason Jul 23, 2024
d833916
NIP-32: Language example
alopatindev Jul 24, 2024
c7f4f68
Update 32.md
alopatindev Jul 24, 2024
6021b07
BREAKING.md: add NIP-01 change
AsaiToshiya Jul 25, 2024
ecee40d
nip19: deprecate `nrelay`
fiatjaf Jul 23, 2024
6826f5a
BREAKING.md: add NIP-19 change
AsaiToshiya Jul 25, 2024
a5228e5
39.md: use relative link to 01.md
RandyMcMillan Jul 28, 2024
18d3c2e
Merge pull request #1391 from RandyMcMillan/patch-3
alexgleason Jul 28, 2024
b8fe261
15.md:use relative links
RandyMcMillan Jul 28, 2024
6c89e92
46.mk:use relative links
RandyMcMillan Jul 28, 2024
b47c50f
47.md:use relative link
RandyMcMillan Jul 28, 2024
6d348b5
70.md:use relative link
RandyMcMillan Jul 28, 2024
0c1dfa9
21.md:use relative link
RandyMcMillan Jul 28, 2024
f4c5799
Merge pull request #1392 from gnostr-org/2015/854373/632365/6826f5a/1…
alexgleason Jul 28, 2024
981f3ee
Merge pull request #1393 from gnostr-org/2015/854373/632822/6826f5a/1…
alexgleason Jul 28, 2024
66aae34
Merge pull request #1394 from gnostr-org/2015/854373/633044/6826f5a/1…
alexgleason Jul 28, 2024
2092fdd
Merge pull request #1396 from gnostr-org/2015/854376/627789/6826f5a/1…
alexgleason Jul 28, 2024
985fd30
Add k tag to deletions
Jul 29, 2024
722ac7a
Merge pull request #1397 from coracle-social/k-delete
staab Jul 29, 2024
9dc36e3
Merge pull request #935 from dskvr/patch-1
staab Jul 29, 2024
ffbccea
Merge pull request #1395 from gnostr-org/2015/854373/633283/6826f5a/1…
alexgleason Jul 29, 2024
289b415
Merge pull request #1386 from alopatindev/nip-32-language
alexgleason Jul 29, 2024
40a5a83
Merge pull request #1024 from coracle-social/nip-72-edits
staab Jul 30, 2024
444ad28
Merge pull request #842 from coracle-social/remove-nip-45
staab Jul 30, 2024
e73e777
Revert "Remove NIP 45 COUNT"
staab Jul 31, 2024
3ea2f1a
Merge pull request #1404 from nostr-protocol/revert-842-remove-nip-45
staab Jul 31, 2024
c7b4b1b
BREAKING.md: add NIP-45 changes
AsaiToshiya Jul 31, 2024
8022a96
Merge pull request #1406 from AsaiToshiya/AsaiToshiya-patch-25
staab Jul 31, 2024
788ffb0
nip34: add refs to repo event
DanConwayDev May 21, 2024
8e5083b
Update readme (#1408)
AsaiToshiya Aug 2, 2024
428a477
nip51: add kind 10050 (from NIP-17).
fiatjaf Aug 5, 2024
29eec05
Merge branch 'nostr-protocol:master' into external-content-ids
MerryOscar Aug 5, 2024
14c3310
Add Podcast Publisher GUID
MerryOscar Aug 5, 2024
4d9eb32
Use NIP-73
MerryOscar Aug 5, 2024
5277ee7
remove nip45 code block type
haorendashu Aug 6, 2024
5f651db
Merge pull request #1412 from haorendashu/remove-nip45-code-block-type
staab Aug 6, 2024
738c480
Merge pull request #1185 from MerryOscar/external-content-ids
staab Aug 6, 2024
dea4beb
Amend NIP-52 to include e and p tags to calendar event RSVPs
tyiu Aug 7, 2024
6de688f
Add used fields to Calendar Time Event in NIP-52 (#1137)
vicariousdrama Aug 7, 2024
8d451b3
Merge remote-tracking branch 'upstream/master' into nip52-rsvp-e-and-…
tyiu Aug 8, 2024
d36b24c
Revise NIP-52 amendments so that they are backwards compatible
tyiu Aug 8, 2024
744bce8
NIP-25: reactions to a website (#1381)
nikolat Aug 8, 2024
ec1f0fc
Update NIP-52 change to not be backwards incompatible by restoring re…
tyiu Aug 11, 2024
e444914
docs(NIP-64): Portable Game Notation
theborakompanioni Dec 28, 2023
d476dea
docs(NIP-64): remove FEN tags
theborakompanioni Feb 28, 2024
6536422
docs(NIP-64): move examples section to bottom
theborakompanioni Feb 28, 2024
e735ef9
docs(NIP-64): change kind from 30 to 64
theborakompanioni Feb 28, 2024
5d37fea
docs(NIP-64): add chess to title
theborakompanioni Mar 8, 2024
ed15e31
Merge pull request #1094 from theborakompanioni/nip-64
fiatjaf Aug 12, 2024
f8e108e
Merge pull request #1414 from tyiu/nip52-rsvp-e-and-p-tags
staab Aug 12, 2024
452fcc0
README: add NIP-52 link to `image` and `summary` tags
AsaiToshiya Aug 14, 2024
645a562
Merge pull request #1424 from AsaiToshiya/AsaiToshiya-patch-26
staab Aug 14, 2024
95885af
Update NIP-09 to rename deletion to retraction
tyiu Aug 15, 2024
0ee8772
Update NIP-09 to rename to deletion request
tyiu Aug 15, 2024
2c7e2af
Merge pull request #1425 from tyiu/rename-delete-to-retract
alexgleason Aug 15, 2024
1d37447
Define the `t` tag in NIP-24
alexgleason Aug 16, 2024
0551017
add kind 9008 for deleting a group
sepehr-safari Aug 18, 2024
62ac522
add kind 9022 for leave request
sepehr-safari Aug 18, 2024
3aff37b
nip54: change to asciidoc, markdown is trash.
fiatjaf Jun 10, 2024
61d251b
Merge pull request #1172 from SnowCait/kind-mute-sets
AsaiToshiya Aug 20, 2024
e30eb40
NIP-24: t-tag only has to be a lowercase string
alexgleason Aug 20, 2024
d0962aa
Merge pull request #1428 from alexgleason/hashtag
alexgleason Aug 20, 2024
ca3c52e
rename "parameterized replaceable event" to "addressable event" (#1418)
fiatjaf Aug 20, 2024
b3c1a56
nip13: remove section about pow prefix querying.
fiatjaf Aug 20, 2024
c7a3572
BREAKING.md: add changes
AsaiToshiya Aug 21, 2024
27c67f0
Update 17.md
bezysoftware Aug 25, 2024
fade016
Merge pull request #1445 from bezysoftware/patch-3
vitorpamplona Aug 25, 2024
da34c57
NIP-05: add identification vs verification note
dtonon Aug 29, 2024
8184749
Merge pull request #1455 from dtonon/nip05-note
staab Aug 29, 2024
24e97c2
Merge pull request #1333 from coracle-social/clarify-nip01
staab Aug 31, 2024
1002104
nip44: clarify ecdh hashing
paulmillr Aug 31, 2024
be17e5d
Clarify function name in libsecp256k1
paulmillr Sep 1, 2024
d9eb17c
NIP-65: add links to outbox model articles
AsaiToshiya Sep 2, 2024
14ec14d
Missing events added to README, including NKBIP-01 and NKBIP-02 (#1464)
SilberWitch Sep 3, 2024
b4a2561
style: fix header styles in same format
kehiy Sep 2, 2024
a928d11
Merge pull request #1466 from paulmillr/patch-2
vitorpamplona Sep 3, 2024
378dfaa
nip54: remove markdown leftovers.
fiatjaf Sep 3, 2024
e655247
format(all): json formatting
kehiy Sep 3, 2024
c8dc1ea
Update 96.md
kehiy Sep 3, 2024
c02b161
Merge pull request #1477 from kehiy/jsonc
staab Sep 3, 2024
7edd3d2
README: update kinds table
AsaiToshiya Sep 9, 2024
e7eb776
Revert example code update
Sep 9, 2024
c343175
Update 10.md
ZigBalthazar Sep 10, 2024
97a4244
Merge pull request #1487 from ZigBalthazar/patch-1
staab Sep 10, 2024
d8ab984
make *.md linguist detectable.
kehiy Sep 11, 2024
8a427ea
Merge pull request #1488 from kehiy/md
staab Sep 11, 2024
37a02e8
custom emojis in reactions (#1492)
ZigBalthazar Sep 12, 2024
e61651a
nip29: make @staab happier.
fiatjaf Sep 13, 2024
efcc869
remove this annoying file.
fiatjaf Sep 13, 2024
4bf0c01
Merge pull request #1346 from abhay-raizada/nostr-polls
fiatjaf Sep 17, 2024
d534bad
renumber polls NIP to 88.
fiatjaf Sep 17, 2024
3d8bf68
NIP-88: make poll response a parameterized replaceable event
alexgleason Sep 17, 2024
2baf7c8
Merge pull request #1501 from alexgleason/polls-replaceable
alexgleason Sep 17, 2024
6cd598d
remove NIP-88 polls temporarily.
fiatjaf Sep 17, 2024
ff39a11
Merge pull request #1469 from AsaiToshiya/AsaiToshiya-patch-27
AsaiToshiya Sep 18, 2024
765dace
remove invites, simplify group metadata edits, rework fine-grained "p…
fiatjaf Sep 19, 2024
79786bb
Expand External Content IDs
MerryOscar Sep 20, 2024
ea36ec9
Add `subject` and `t` tags to git issues (#1446)
dluvian Sep 20, 2024
d82f68a
update link to blossom on README.
fiatjaf Sep 21, 2024
4e73e94
fix typo on nip96 (#1511)
Spl0itable Sep 22, 2024
4438b89
Merge pull request #1508 from MerryOscar/expand-external-content-ids
staab Sep 25, 2024
a736e62
complete renaming to "addressable" events.
fiatjaf Sep 28, 2024
ce2234e
Clarify tag filters
Sep 30, 2024
e830a73
Merge pull request #1523 from coracle-social/clarify-filters
staab Sep 30, 2024
344b0b9
README: add NIP-73 link to `k` tag
AsaiToshiya Oct 2, 2024
7f67ce5
Format tags table
AsaiToshiya Oct 2, 2024
02e934a
Clarify quote reposts
Oct 2, 2024
78b6615
recommend k tag for quotes
Oct 2, 2024
f5a6fb2
Update 18.md
staab Oct 3, 2024
2053aee
Remove addresses and tags from quote reposts
Oct 3, 2024
7df7dee
Move generic reposts back to bottom for a simpler diff
Oct 3, 2024
7bb8997
fix some info of nip55 to be same as other nips
haorendashu Jul 2, 2024
db13d12
Add Corny Chat Slide Set and Link Set kinds (#1152)
vicariousdrama Oct 7, 2024
4769b16
Refer to nip 21 instead of 19
Oct 7, 2024
10c112d
NIP-23, NIP-99: remove NIP-12 mention
AsaiToshiya Oct 7, 2024
23ef4aa
Merge pull request #1527 from AsaiToshiya/remove-nip12-mention
staab Oct 7, 2024
38af1ef
Merge pull request #1525 from coracle-social/clarify-quote-reposts
alexgleason Oct 7, 2024
22c11cb
update `q` tag params.
AsaiToshiya Oct 8, 2024
79cc2ef
add NIP-55 change.
AsaiToshiya Oct 9, 2024
e381b57
Merge pull request #1530 from AsaiToshiya/AsaiToshiya-patch-28
staab Oct 9, 2024
30f39d3
Change return field from signature to result
greenart7c3 Oct 11, 2024
1e2f198
Merge branch 'master' into nip71-imeta
v0l Oct 15, 2024
1cda2dc
Merge pull request #1261 from nostr-protocol/nip71-imeta
v0l Oct 15, 2024
743e925
Merge branch 'master' into AsaiToshiya-patch-27
AsaiToshiya Oct 18, 2024
07de7ea
Merge pull request #1524 from AsaiToshiya/AsaiToshiya-patch-27
staab Oct 18, 2024
e3cf028
rename "claim"=>"code", get rid of kind 9006 (just use 9000), add a p…
fiatjaf Oct 21, 2024
d4d040e
fix typo.
fiatjaf Oct 22, 2024
bef7fc1
Merge pull request #1533 from greenart7c3/nip_55_result
vitorpamplona Oct 23, 2024
e3afd7a
update related to NIP-71.
AsaiToshiya Oct 23, 2024
ba46b23
Cashu wallet + Nutzaps (#1369)
pablof7z Oct 25, 2024
dde8c81
remove duplicate NIP-64 from list.
AsaiToshiya Oct 26, 2024
f21aa98
Changed 'id value' at row 162
ilcompratoreconsapevole Oct 27, 2024
3cebb2a
Merge pull request #1550 from ilcompratoreconsapevole/master
staab Oct 28, 2024
f1e8d2c
nip46: remove words, introduce distinction between bunker key and use…
fiatjaf Oct 24, 2024
8e2523e
Merge pull request #1496 from nostr-protocol/nip29-hodlbod
fiatjaf Oct 29, 2024
c0568fe
Add explicit support for address quotes
Oct 31, 2024
4aa4656
Merge pull request #1558 from coracle-social/quote-a
staab Oct 31, 2024
5bcb2d8
Revert "Merge pull request #1558 from coracle-social/quote-a"
AsaiToshiya Oct 31, 2024
061d2ac
Add intent flags
greenart7c3 Nov 1, 2024
93e6c38
Add launchMode for signers
greenart7c3 Nov 1, 2024
03a555b
Add result from multiple intents
greenart7c3 Nov 1, 2024
c275ae7
Merge pull request #1367 from greenart7c3/nip_55_flags
vitorpamplona Nov 1, 2024
0874370
Remove extra backticks in code blocks and change unnecessary gender-s…
tyiu Nov 3, 2024
6bcd89c
Merge pull request #1563 from tyiu/fix-formatting-and-pronouns
alexgleason Nov 3, 2024
f72a2f6
Add NIP number and update README
grunch Nov 4, 2024
03f3bc3
Merge branch 'master' into p2p-nip
grunch Nov 4, 2024
bff61dd
Changes NIP number
grunch Nov 4, 2024
1cb4a1f
Merge pull request #1331 from grunch/p2p-nip
pablof7z Nov 4, 2024
4c0f963
Update 11.md with banner, and icon fields (#1555)
alltheseas Nov 5, 2024
ec8eb9a
NIP-22 - Comment (#1233)
arthurfranca Nov 7, 2024
690e1b0
nip29: add kind 9009 to moderation events table.
AsaiToshiya Nov 6, 2024
b0840be
add NIP-22 to index.
AsaiToshiya Nov 8, 2024
29696eb
rename kind:11 as "forum thread root".
fiatjaf Nov 9, 2024
3915434
remove kind:10 and note that kind:1111 could be used.
fiatjaf Nov 9, 2024
b58f029
rename kind:9000 to "put-user" instead of "add-user".
fiatjaf Nov 9, 2024
b79e46d
readme: Add standardized tags for NIP-35 (torrents) (#1575)
laanwj Nov 9, 2024
18bdc0c
nip29: add missing "e" tag in kind:9005.
fiatjaf Nov 9, 2024
b8a5447
adds missing single letter tags
vitorpamplona Nov 9, 2024
f2bc46d
Sync with upstream including CONFLICT
github-actions[bot] Nov 10, 2024
6376fd8
Merge pull request #1576 from vitorpamplona/missing-tags
staab Nov 11, 2024
926a51e
Nip46 upgrade part2: remove nip05 and create_account, clarify nostrco…
nostrband Nov 12, 2024
2838e3b
Merge pull request #1574 from nostr-protocol/nip29-smalltweaks
fiatjaf Nov 12, 2024
3e540a3
update kinds table.
AsaiToshiya Nov 14, 2024
8f11285
fix typo.
AsaiToshiya Nov 14, 2024
eca0a83
Moves deprecated stuff to the bottom
vitorpamplona Nov 14, 2024
8794be6
Fix typo in NIP-29
joshuatbrown Nov 15, 2024
65b714f
NIP-01: Resolve conflicts
s3-odara Nov 16, 2024
73306b5
lint: space-between-half-and-full-width
s3-odara Nov 16, 2024
2c1e5c0
NIP-02: Resolve conflict
s3-odara Nov 16, 2024
4a65d6b
Merge remote-tracking branch 'upstream/sync' into sync
s3-odara Nov 16, 2024
105e7d3
NIP-05: Resolve conflicts
s3-odara Nov 16, 2024
ff533fd
lint
s3-odara Nov 16, 2024
2c39293
NIP-07: Resolve conflict
s3-odara Nov 16, 2024
c5de499
lint
s3-odara Nov 16, 2024
41d7d3a
NIP-18: Resolve conflicts
s3-odara Nov 16, 2024
9dddc89
lint
s3-odara Nov 16, 2024
d0b0d9c
NIP-21: Resolve conflicts
s3-odara Nov 16, 2024
d55c29e
NIP-23: Resolve conflicts
s3-odara Nov 16, 2024
3596c96
NIP-24: Resolve conflicts
s3-odara Nov 16, 2024
d7135d0
NIP-25: Resolve conflicts
s3-odara Nov 16, 2024
185bed6
NIP-26: Resolve conflict
s3-odara Nov 16, 2024
7e03b9b
lint
s3-odara Nov 16, 2024
9bd55b9
NIP-50: Resolve conflict
s3-odara Nov 16, 2024
b5e6f7c
NIP-58: Resolve conflicts
s3-odara Nov 16, 2024
611a354
NIP-65: Resolve conflict
s3-odara Nov 16, 2024
411c0e0
README: Resolve conflicts
s3-odara Nov 16, 2024
4833cdf
README: fix link
s3-odara Nov 16, 2024
8340523
Merge remote-tracking branch 'source/master' into sync
s3-odara Nov 17, 2024
0f2844e
Merge branch 'main' into sync
s3-odara Nov 17, 2024
96bb728
lint
s3-odara Nov 17, 2024
108b631
"user matadata"
s3-odara Nov 17, 2024
ab8af67
NIP-65: Remove conflict marker
s3-odara Nov 17, 2024
c4f57f3
Merge remote-tracking branch 'upstream/sync' into sync
s3-odara Nov 17, 2024
ac60e1d
Merge pull request #1583 from s3-odara/patch-1
staab Nov 17, 2024
d6a1b31
Merge remote-tracking branch 'source/master' into sync
s3-odara Nov 17, 2024
df467b5
NIP-25: Fix json formatting
s3-odara Nov 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 12 additions & 13 deletions 01.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,20 @@ NIP-01
```

同一のイベントに対して異なるイベントIDが生成されるような実装の差異を防ぐため、シリアライズを行う際には以下のルールに従わなければならない(MUST):
エンコーディングにはUTF-8を使用するべきだ。
- ホワイトスペースや改行、その他の不必要なフォーマットは出力のJSONに含めてはならない。
- 以下の文字列以外はエスケープせず、そのまま含めるべきだ:
- 改行`0x0A``\n`
- 二重引用符`0x22``\"`
- バックスラッシュ`0x3C``\\`
- バックスラッシュ`0x5C``\\`
- キャリッジリターン`0x0D``\r`
- タブ文字`0x09``\t`
- バックスペース`0x08``\b`
- 改ページ`0x0C``\f`
- エンコーディングにはUTF-8を使用するべきだ。

### タグ

タグはそれぞれ任意長の文字列の配列で、関連していくつかの慣例がある。以下の例を見てみよう。
タグはそれぞれ1以上の文字列の配列で、関連していくつかの慣例がある。以下の例を見てみよう。

```jsonc
{
Expand All @@ -77,9 +77,9 @@ NIP-01

- `e`タグ。イベントを参照するために用いる: `["e", <他のイベントIDの32バイト小文字16進数文字列>, <おすすめのリレーURL、省略可能>]`
- `p`タグ。別のユーザを参照するために用いる: `["p", <pubkeyの32バイト小文字16進数文字列>, <おすすめのリレーURL、省略可能>]`
- `a`タグ。(パラメータ付き・無し)置換可能イベントを参照するために用いる
- パラメータ付き置換可能イベントの場合: `["a", <kind整数>:<pubkeyの32バイト小文字16進数文字列>:<dタグの値>, <おすすめリレーURL、省略可能>]`
- パラメータ無し置換可能イベントの場合: `["a", <kind整数>:<pubkeyの32バイト小文字16進数文字列>:, <おすすめリレーURL、省略可能>]`
- `a`タグ。アドレス指定可能 (addressable) または置換可能 (replaceable) イベントを参照するために用いる
- アドレス指定可能 (addressable) イベントの場合: `["a", <kind整数>:<pubkeyの32バイト小文字16進数文字列>:<dタグの値>, <おすすめリレーURL、省略可能>]`
- 置換可能 (replaceable) イベントの場合: `["a", <kind整数>:<pubkeyの32バイト小文字16進数文字列>:, <おすすめリレーURL、省略可能>]`

慣例として、全ての1文字(英語のアルファベットa-zとA-Zに限る)キーをもつタグは、リレーによってインデクスされることが期待される。これにより、例えば、イベント`"5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36"`を参照しているイベントをクエリしたり購読するために、`{"#e": ["5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36"]}`フィルタを使える。

Expand All @@ -92,10 +92,10 @@ Kindはクライアントがイベントやイベントのフィールドをど

実験を容易にし、リレーの実装を柔軟にするため、kindの範囲についての以下のような慣例もある。

- kind`n`が範囲`1000 <= n < 10000`の場合は、イベントは**通常(regular)**で、全てがリレーに保存されることが期待される。
- kind`n`が範囲`1000 <= n < 10000 || 4 <= n < 45 || n == 1 || n == 2`の場合は、イベントは**通常(regular)**で、全てがリレーに保存されることが期待される。
- kind`n`が範囲`10000 <= n < 20000 || n == 0 || n == 3`の場合は、イベントは**置換可能(replaceable)**で、最新のイベントだけがリレーに保持されなければならない(MUST)。また、古いバージョンは破棄してもかまわない(MAY)。
- kind`n`が範囲`20000 <= n < 30000`の場合は、イベントは**一時的(ephemeral)**で、リレーに保存されないことが期待される。
- kind`n`が範囲`30000 <= n < 40000`の場合は、イベントは**パラメータ付き置換可能(parameterized replaceable)**で、`pubkey``kind``d`タグの最初の値の組み合わせについて、最新のイベントのみがリレーに保存されなければならない(MUST)。また、古いバージョンは破棄してかまわない(MAY)。
- kind`n`が範囲`30000 <= n < 40000`の場合は、イベントは**アドレス指定可能 (addressable)**で、`pubkey``kind``d`タグの最初の値の組み合わせについて、最新のイベントのみがリレーに保存されなければならない(MUST)。また、古いバージョンは破棄してかまわない(MAY)。

置換可能イベントが同じタイムスタンプを持っている場合は、最も小さいID(辞書順で最初)のイベントが保持され、他のイベントは破棄されるべきだ。

Expand Down Expand Up @@ -125,13 +125,13 @@ Kindはクライアントがイベントやイベントのフィールドをど
"authors": <a list of lowercase pubkeys, the pubkey of an event must be one of these>,
"kinds": <a list of a kind numbers>,
"#<single-letter (a-zA-Z)>": <a list of tag values, for #e — a list of event ids, for #p — a list of pubkeys, etc.>,
"since": <an integer unix timestamp in seconds, events must be newer than this to pass>,
"until": <an integer unix timestamp in seconds, events must be older than this to pass>,
"since": <an integer unix timestamp in seconds. Events must have a created_at >= to this to pass>,
"until": <an integer unix timestamp in seconds. Events must have a created_at <= to this to pass>,
"limit": <maximum number of events relays SHOULD return in the initial query>
}
```

`REQ`メッセージを受信すると、リレーは内部データベースに問い合わせてフィルターにマッチするイベントを返し、そのフィルターを保存しておいて、以降に受信した全てのイベントをWebSocketがクローズされるまで同じWebSocketに送信すべきだ(SHOULD)。同一の`<購読ID>`を持つ`CLOSE`イベントを受信するか、同一の`<購読ID>`を使って新たな`REQ`が送信されると、リレーは既存の購読を更新しなければならない(MUST)。
`REQ`メッセージを受信すると、リレーはフィルターにマッチするイベントを返す。新しく受信したイベントは接続が閉じられるか、同じ`<subscripttion_id>``CLOSE`イベントが受信されるか、同じ`<subscription_id>` を使用して新しい`REQ`が送信されるまで、同じWebSocketに送信されるべきだ(SHOULD)。(この場合、新しい購読が作成され、古い購読が置き換えられる。)

リストをとるフィルター属性(`ids``authors``kind``#e`のようなタグフィルタ)は、1つ以上の要素を持つJSON配列である。その条件がマッチしたとみなされるためには、配列の値のうち少なくとも1つがイベントの関連するフィールドと一致しなければならない。`authors``kind`のようなスカラーのイベント属性の場合は、イベントの属性値がフィルターのリストに含まれなければならない。`#e`などのタグ属性のように、イベントが複数の値を持ちうる場合は、イベントとフィルタの条件値が少なくとも1つの共通する要素を持たなければならない。

Expand All @@ -143,7 +143,7 @@ Kindはクライアントがイベントやイベントのフィールドをど

1つの`REQ`メッセージに複数のフィルタを含むことができる。この場合、いずれかのフィルタにマッチするイベントが返される。つまり、複数のフィルタは`||`条件として解釈される。

フィルタの`limit`プロパティは、初期クエリにのみ影響を及ぼし、それ以降は無視されなければならない(MUST)。`limit: n`が存在する場合、初期クエリでは最新の`n`イベントが`created_at`順に返されることが想定される。`limit`の指定よりも少ないイベントを返すことは問題ない。しかし、クライアントに対して不必要に負荷を与えることを避けるため、リレーは要求されたよりも(はるかに)多くのイベントを返すことがないよう期待される。
フィルタの`limit`プロパティは、初期クエリにのみ影響を及ぼし、それ以降は無視されなければならない(MUST)。`limit: n`が存在する場合、初期クエリでは最新の`n`イベントが`created_at`順に返されることが想定される。`新しいイベントが最初に表示され、同時刻の場合はidが最も小さい (辞書式順序で最初の) イベントが最初に表示されるべきである。limit`の指定よりも少ないイベントを返すことは問題ない。しかし、クライアントに対して不必要に負荷を与えることを避けるため、リレーは要求されたよりも(はるかに)多くのイベントを返すことがないよう期待される。

### リレーからクライアントへ: イベントの送信と通知

Expand All @@ -169,7 +169,6 @@ Kindはクライアントがイベントやイベントのフィールドをど
* `["OK", "b1a649ebe8...", false, "pow: difficulty 26 is less than 30"]` pow: 難易度26は30よりも小さい
* `["OK", "b1a649ebe8...", false, "error: could not connect to the database"]` エラー: データベースに接続できなかった
- `CLOSED`メッセージは、リレーが`REQ`の処理を拒否するときに、その応答として送信されなければならない (MUST) 。また、クライアントが切断したり`CLOSE`を送信する前に、リレーの側から購読を強制終了する場合にも送信される。このメッセージは機械可読なプレフィクスと人間可読なメッセージを含んだ`OK`メッセージと同じパターンを使用する。例は以下の通り:
* `["CLOSED", "sub1", "duplicate: sub1 already opened"]` 重複: sub1はすでに開かれている
* `["CLOSED", "sub1", "unsupported: filter contains unknown elements"]` サポートされていない: フィルターに不明な要素が含まれている
* `["CLOSED", "sub1", "error: could not connect to the database"]` エラー: データベースに接続できなかった
* `["CLOSED", "sub1", "error: shutting down idle subscription"]` エラー: アイドル状態の購読をシャットダウン
Expand Down
8 changes: 5 additions & 3 deletions 02.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ NIP-02

「フォローリスト」を意味するkind `3`の特別なイベントは、フォローしている/既知のプロフィールごとの`p`タグのリストを持つものとして定義される。

タグの個々の要素は、プロフィールの鍵・その鍵からのイベントを発見できるリレーのURL (必要なければ空文字列で設定可能) ・そのプロフィールのローカル名 (あるいは「愛称」) (空文字列が設定されるか、提供されないようできる) を含むべきで、つまり`["p", <32-bytes hex key>, <main relay URL>, <petname>]`である。`content`は何でもかまわないが、無視されるべきである。
タグの個々の要素は、プロフィールの鍵・その鍵からのイベントを発見できるリレーのURL (必要なければ空文字列で設定可能) ・そのプロフィールのローカル名 (あるいは「愛称」) (空文字列が設定されるか、提供されないようできる) を含むべきで、つまり`["p", <32-bytes hex key>, <main relay URL>, <petname>]`である。

`.content`は使用されない。

例:

```json
```jsonc
{
"kind": 3,
"tags": [
Expand All @@ -21,7 +23,7 @@ NIP-02
["p", "612ae..e610f", "ws://carolrelay.com/ws", "carol"]
],
"content": "",
...other fields
// other fields...
}
```

Expand Down
2 changes: 1 addition & 1 deletion 04.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
> __Warning__ `unrecommended`: deprecated in favor of [NIP-44](44.md)
> __Warning__ `unrecommended`: deprecated in favor of [NIP-17](17.md)
NIP-04
======
Expand Down
25 changes: 15 additions & 10 deletions 05.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@ Nostr鍵をDNSベースのインターネット識別子に結びつける

`final` `optional`

kind `0` (`metadata`)には[インターネット識別子](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) (eメールのようなアドレス) を値として`"nip05"`というキーを指定できる。"インターネット識別子"に対する多種多様な仕様のリンクがあるが、NIP-05は`<local-part>`部分が`a-z0-9-_.`で大文字と小文字を区別しないことを前提としている。
kind `0` (`user metadata`)には[インターネット識別子](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) (eメールのようなアドレス) を値として`"nip05"`というキーを指定できる。"インターネット識別子"に対する多種多様な仕様のリンクがあるが、NIP-05は`<local-part>`部分が`a-z0-9-_.`で大文字と小文字を区別しないことを前提としている。
Hakkadaikon marked this conversation as resolved.
Show resolved Hide resolved

クライアントは識別子を`<local-part>``<domain>`に分けた上でそれらの値で`https://<domain>/.well-known/nostr.json?name=<local-part>`にGET要求を行う。

結果として、16進数で表される公開鍵に対応した`"names"`キーを持つ、JSONドキュメントオブジェクトが返されなければならない。指定された`<name>`の公開鍵が`metadata`イベントの`pubkey`と一致する場合、クライアントは与えられた公開鍵が実際にその識別子で照会できると結論付ける。
結果として、16進数で表される公開鍵に対応した`"names"`キーを持つ、JSONドキュメントオブジェクトが返されなければならない。指定された`<name>`の公開鍵が`user metadata`イベントの`pubkey`と一致する場合、クライアントは与えられた公開鍵が実際にその識別子で照会できると結論付ける。

###


クライアントが下記のようなイベントを見た時。

```json
```jsonc
{
"pubkey": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9",
"kind": 0,
"content": "{\"name\": \"bob\", \"nip05\": \"[email protected]\"}"
...
// other fields...
}
```

Expand All @@ -34,7 +34,7 @@ kind `0` (`metadata`)には[インターネット識別子](https://datatracker.
"bob": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9"
}
}
````
```

あるいは、**推奨**される`"relays"`属性が追加される場合は次の通り。

Expand All @@ -47,7 +47,7 @@ kind `0` (`metadata`)には[インターネット識別子](https://datatracker.
"b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9": [ "wss://relay.example.com", "wss://relay2.example.com" ]
}
}
````
```

上記の例のように公開鍵が`"names"`で与えられたものと一致する場合、関連付けが正しいことを意味し、`"nip05"`識別子は有効なものとして表示できる。

Expand All @@ -59,6 +59,15 @@ kind `0` (`metadata`)には[インターネット識別子](https://datatracker.

## メモ

### 識別する、検証はしない

NIP-05はユーザーを_検証_するためではなく、連絡先の交換や検索を容易とするために_識別_することを目的としている。
例外は有名なドメインを所有する (企業等) あるいは関係する人 (プロジェクト等) であり、NIP-05をそのドメインとの関係、ひいてはその背後にある組織との関係を証明するものとして利用でき、信用の要素を得ることができる。

### ユーザー発見実装の提案

クライアントはこれをユーザーが他のプロフィールの検索で使えるようにできる。クライアントが検索ボックスなどを持っている場合、そこに"[email protected]"と入力でき、クライアントはそれを識別して適切なクエリで公開鍵を取得し、ユーザーに提案できる。

### クライアントはNIP-05アドレスでなく常に公開鍵をフォローする必要がある。

例えば、もし公開鍵`abc…def`をもった`[email protected]`を見つけて、ユーザーがそのプロフィールをフォローすることにした際、クライアントは`[email protected]`ではなく`abc…def`を第一参照先にする必要がある。何らかの理由で、将来`https://bob.com/.well-known/nostr.json?name=bob`が公開鍵`1d2...e3f`を返すようになった場合でもクライアントはフォロー済みユーザーリストで`abc...def`を置き換えてはならない。但し、そのユーザーの”[email protected]”は無効な`”nip05”`プロパティとなるため、表示を止めるべきである。
Expand All @@ -67,10 +76,6 @@ kind `0` (`metadata`)には[インターネット識別子](https://datatracker.

鍵は16進数の形式で返される必要がある。NIP-19`npub`形式はこのNIPではなく、クライアントUIでの表示にのみ使用される。

### ユーザー発見実装の提案

クライアントはこれをユーザーが他のプロフィールの検索で使えるようにできる。クライアントが検索ボックスなどを持っている場合、そこに"[email protected]"と入力でき、クライアントはそれを識別して適切なクエリで公開鍵を取得し、ユーザーに提案できる。

### ドメインのみを識別子として表示する

クライアントは`_@domain`識別子を”ルート”識別子として扱い、`<domain>`のみを表示できる。例えば、Bobが`bob.com`を所有している場合、`[email protected]`のような冗長な識別子を望まないかもしれない。代わりに、`_bob.com`を使用してNostrクライアントが如何なる目的でも単に`bob.com`として扱い、表示することを期待できる。
Expand Down
4 changes: 4 additions & 0 deletions 07.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ async window.nostr.nip44.encrypt(pubkey, plaintext): string // returns ciphertex
async window.nostr.nip44.decrypt(pubkey, ciphertext): string // takes ciphertext as specified in nip-44
```

### 拡張機能の作成者への推奨事項
ページの読み込み時にnostrクライアントが`window.nostr`を利用できるようにするには、ChromiumおよびFirefoxの拡張機能の作成者は、拡張機能のマニフェストで`"run_at": "document_end"`を指定してスクリプトをロードする必要がある。


### 実装

https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions を参照する。
Loading