Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add Arkade support to NIP-47
Extend pay_invoice method to support non-BOLT11 addresses
like Arkade that require explicit amount parameter.

- Add amount parameter specification
- Define Arkade zap receipt format
- Address type detection table
- Error handling for missing amounts

Backwards compatible with existing BOLT11 implementations.
  • Loading branch information
LastDegenBtc committed Nov 6, 2025
commit b3a8e5c81a3a5e940c88c486177841f7adb3d6f5
61 changes: 61 additions & 0 deletions 47.md
Original file line number Diff line number Diff line change
Expand Up @@ -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", "<vtxo-txid>"]` - Payment proof (VTXO transaction ID)
- `["amount", "<millisats>"]` - Payment amount
- `["description", "<json>"]` - kind 9734 zap request

Example:
```json
{
"kind": 9735,
"tags": [
["p", "recipient-pubkey"],
["arkade", "9934a446314e..."],
["amount", "50000"],
["description", "{...}"]
]
}
```
```



## Example pay invoice flow

Expand Down