Files
01.md
02.md
03.md
04.md
05.md
06.md
07.md
08.md
09.md
10.md
11.md
12.md
13.md
14.md
15.md
16.md
17.md
18.md
19.md
20.md
21.md
22.md
23.md
24.md
25.md
26.md
27.md
28.md
29.md
30.md
31.md
32.md
33.md
34.md
35.md
36.md
37.md
38.md
39.md
40.md
42.md
44.md
45.md
46.md
47.md
48.md
49.md
50.md
51.md
52.md
53.md
54.md
55.md
56.md
57.md
58.md
59.md
60.md
61.md
62.md
64.md
65.md
66.md
68.md
69.md
70.md
71.md
72.md
73.md
75.md
78.md
7D.md
84.md
86.md
88.md
89.md
90.md
92.md
94.md
96.md
98.md
99.md
BREAKING.md
C7.md
README.md
nips/75.md
fiatjaf a736e629be complete renaming to "addressable" events.
as noticed by @bezysoftware at https://github.com/nostr-protocol/nips/pull/1437#issuecomment-2380626514.

I don't know how so many of these instances were left from the original PR at following ca3c52e3e7.
2024-09-28 12:29:03 -03:00

2.2 KiB

NIP-75

Zap Goals

draft optional

This NIP defines an event for creating fundraising goals. Users can contribute funds towards the goal by zapping the goal event.

Nostr Event

A kind:9041 event is used.

The .content contains a human-readable description of the goal.

The following tags are defined as REQUIRED.

  • amount - target amount in milisats.
  • relays - a list of relays the zaps to this goal will be sent to and tallied from.

Example event:

{
  "kind": 9041,
  "tags": [
    ["relays", "wss://alicerelay.example.com", "wss://bobrelay.example.com", /*...*/],
    ["amount", "210000"],
  ],
  "content": "Nostrasia travel expenses",
  // other fields...
}

The following tags are OPTIONAL.

  • closed_at - timestamp for determining which zaps are included in the tally. Zap receipts published after the closed_at timestamp SHOULD NOT count towards the goal progress.
  • image - an image for the goal
  • summary - a brief description
{
  "kind": 9041,
  "tags": [
    ["relays", "wss://alicerelay.example.com", "wss://bobrelay.example.com", /*...*/],
    ["amount", "210000"],
    ["closed_at", "<unix timestamp in seconds>"],
    ["image", "<image URL>"],
    ["summary", "<description of the goal>"],
  ],
  "content": "Nostrasia travel expenses",
  // other fields...
}

The goal MAY include an r or a tag linking to a URL or addressable event.

The goal MAY include multiple beneficiary pubkeys by specifying zap tags.

Addressable events can link to a goal by using a goal tag specifying the event id and an optional relay hint.

{
  "kind": 3xxxx,
  "tags": [
    ["goal", "<event id>", "<Relay URL (optional)>"],
    // rest of tags...
  ],
  // other fields...
}

Client behavior

Clients MAY display funding goals on user profiles.

When zapping a goal event, clients MUST include the relays in the relays tag of the goal event in the zap request relays tag.

When zapping an addressable event with a goal tag, clients SHOULD tag the goal event id in the e tag of the zap request.

Use cases

  • Fundraising clients
  • Adding funding goals to events such as long form posts, badges or live streams