NIP-75: Zap Goals
NIP-75は、ユーザーがzapできるfundraising goal eventを定義します。goalはmillisatoshis単位の目標額と、そのgoalに対するzap receiptを集計するrelayの一覧を宣言します。そのgoal eventを参照する任意のNIP-57 zapは、進捗に加算されます。
仕組み
zap goalはkind:9041イベントです。.contentには人間向けの説明文が入ります。必須タグはamount(millisatsでの目標額)とrelays(zap receiptを集計するrelay list)です。任意タグには、特定時刻で集計を打ち切るclosed_at、image、summaryがあります。また、goalは外部URLやaddressable eventへ結び付けるrタグまたはaタグを持てるほか、NIP-57 appendix Gから借用したzap-split tagsにより複数のbeneficiary pubkeysも持てます。
{
"id": "<64-char hex>",
"pubkey": "<64-char hex>",
"created_at": 1776500000,
"kind": 9041,
"tags": [
["relays", "wss://alicerelay.example.com", "wss://bobrelay.example.com"],
["amount", "210000"],
["image", "<image url>"],
["summary", "Nostrasia travel expenses"]
],
"content": "Nostrasia travel expenses",
"sig": "<128-char hex>"
}
clientは、zap requestの中にgoal eventを指すeタグを含めることで、goalへzapを結び付けます。goalの進捗は、goal側が指定したrelay上で一致するzap receipt amountを合計したものです。closed_atが設定されている場合、そのtimestamp以後に公開されたzap receiptは集計に含まれません。
Implementations
- Amethystは、PR #2469でNIP-75をNIP-53 Live Activities画面へ組み込み、live stream header内へgoal progress barとワンタップzapボタンを表示するようになりました。
Primary sources:
Mentioned in:
See also: