diff --git a/47.md b/47.md index 13037cb556..eb3c91f4ab 100644 --- a/47.md +++ b/47.md @@ -538,6 +538,67 @@ Notification: } } ``` +```markdown +## Extended Parameters for Non-BOLT11 Addresses + +For payment addresses that don't encode amounts (such as Arkade addresses starting with `ark1`), +the `amount` parameter MUST be included with `pay_invoice`. + +### pay_invoice with amount parameter + +Request: +```json +{ + "method": "pay_invoice", + "params": { + "invoice": "ark1qq4hfssprtcg...", + "amount": 50000 // millisatoshis, REQUIRED for non-BOLT11 + } +} +``` + +Response unchanged. For Arkade, wallets MAY return `txid` instead of `preimage`: +```json +{ + "result_type": "pay_invoice", + "result": { + "txid": "9934a446314e..." // VTXO transaction ID + } +} +``` + +### Address Type Detection + +| Prefix | Type | Amount Parameter | +|--------|------|------------------| +| `lnbc`, `lntb`, `lnbcrt` | BOLT11 | Optional (ignored) | +| `ark1` | Arkade | Required | + +Wallets MUST return error code `AMOUNT_REQUIRED` if amount is missing for non-BOLT11 addresses. + +## Arkade Zap Receipts + +For Arkade zaps, the kind 9735 event SHOULD include these tags: + +- `["arkade", ""]` - Payment proof (VTXO transaction ID) +- `["amount", ""]` - Payment amount +- `["description", ""]` - kind 9734 zap request + +Example: +```json +{ + "kind": 9735, + "tags": [ + ["p", "recipient-pubkey"], + ["arkade", "9934a446314e..."], + ["amount", "50000"], + ["description", "{...}"] + ] +} +``` +``` + + ## Example pay invoice flow