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_atimagesummaryがあります。また、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: