Lightning Network による支払いが必要な REST API です。x402 HTTP Transport Specification v2 に完全準拠しています。
Lightning 支払い検証後に UUID v4 を返します。
Lightning 支払い検証後に NIP-58 バッジを発行します。
curl -i -X POST https://simpl402.ocknamo.com/nostr/badge-challenge \
-H "Content-Type: application/json" \
-d '{"npub":"npub1xxxxxxx9dzc"}'
レスポンスに x402 v2 形式の PAYMENT-REQUIRED ヘッダーが返されます。
HTTP/1.1 402 Payment Required
Content-Type: application/json
PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6MiwgImVycm9yIjogIi4uLiIsICJyZXNvdXJjZSI6IHsuLi59LCAiYWNjZXB0cyI6IFt7Li4ufV19
{"error":"Payment required"}
echo "eyJ4NDAyVmVyc2lvbiI6Mi4uLiJ9" | base64 -d | jq
x402 v2 形式のペイロード:
{
"x402Version": 2,
"error": "Payment required",
"resource": {
"url": "https://simpl402.ocknamo.com/nostr/badge-challenge",
"description": "Issue a NIP-58 badge award",
"mimeType": "application/json"
},
"accepts": [
{
"scheme": "exact",
"network": "bip122:000000000019d6689c085ae165831e93",
"amount": "100000",
"asset": "BTC",
"payTo": "anonymous",
"maxTimeoutSeconds": 3600,
"extra": {
"paymentMethod": "lightning",
"invoice": "lnbc1..."
}
}
]
}
accepts[0].extra.invoice の値を Lightning ウォレットで支払います(100 sats固定)。
支払い後、x402 v2 形式の PAYMENT-SIGNATURE ヘッダーを構築します。
構築されたペイロードの中身(Base64デコード前):
{
"x402Version": 2,
"resource": {
"url": "https://simpl402.ocknamo.com/nostr/badge-challenge",
"description": "Issue a NIP-58 badge award",
"mimeType": "application/json"
},
"accepted": {
"scheme": "exact",
"network": "bip122:000000000019d6689c085ae165831e93",
"amount": "100000",
"asset": "BTC",
"payTo": "anonymous",
"maxTimeoutSeconds": 3600,
"extra": {
"paymentMethod": "lightning",
"invoice": "lnbc1..."
}
},
"payload": {
"invoice": "lnbc1..."
}
}
x402 v2 形式の PAYMENT-SIGNATURE ヘッダーを送信:
curl -i -X POST https://simpl402.ocknamo.com/nostr/badge-challenge \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: eyJ4NDAyVmVyc2lvbiI6MiwgInJlc291cmNlIjogey4uLn0sICJhY2NlcHRlZCI6IHsuLi59LCAicGF5bG9hZCI6IHsuLi59fQ==" \
-d '{"npub":"npub1xxxxxxx9dzc"}'
支払い検証後、PAYMENT-RESPONSE ヘッダーと共にバッジ発行結果が返されます:
HTTP/1.1 200 OK
Content-Type: application/json
PAYMENT-RESPONSE: eyJzdWNjZXNzIjp0cnVlLCJ0cmFuc2FjdGlvbiI6ImxuYmMxLi4uIiwibmV0d29yayI6ImxpZ2h0bmluZzpiaXRjb2luIiwicGF5ZXIiOiJhbm9ueW1vdXMiLCJleHRyYSI6eyJpbnZvaWNlIjoibG5iYzEuLi4iLCJzZXR0bGVkQXQiOjE3MzkxMTY4MDB9fQ==
{"success":true,"eventId":"abc123...","message":"Badge awarded successfully"}
現在、simpl402チャレンジ を開催中です(2026-02-16~)。API を呼び出して Lightning 支払いを完了すると、NIP-58 バッジが発行されます。
終了しました。
このチャレンジの目的は、ライトニングネットワークとx402プロトコルがAIによる支払いに本当に適しているのか試すこと。 AIに向いているということは詳細なAPIドキュメントを読み込ませてコンテキストを消費しなくても利用できるということですよね?
OpenClawなどを駆使してエンドポイントの情報のみでバッジを獲得できるか挑戦してみてください!!
※時間経過で徐々に情報を開示していきます
バッジの付与の先着上位三名には賞金を用意しています!
※付与対象ユーザがNostrのプロフィールに設定したライトニングアドレス宛に送金するため設定をお願いします。設定されていない場合送金できません。