boltcards/config.json
Patrick Mulligan 6d240eaa7b
Some checks failed
lint.yml / feat(lnurl): tap-to-receive (top-up) endpoint (push) Failing after 0s
feat(lnurl): tap-to-receive (top-up) endpoint
Add a deposit counterpart to /scan so a Bolt Card can be tapped to
RECEIVE sats, not only spend. The card only emits its lnurlw (a spend
voucher), so the tap is used as an authenticated identity: the same SUN
p/c that /scan verifies proves possession, and we return an lnurl-PAY
(LUD-06) response for the card's own wallet.

- GET /api/v1/pay/{external_id}?p=&c= — SUN-verified, returns a
  payRequest; the single-use hit is the callback bearer (like k1 for
  withdraw). No daily-limit check (that gates spending); per-deposit max
  is tx_limit.
- GET /api/v1/pay/cb/{hit_id}?amount= — invoices the card wallet.
- Static pay metadata so the LUD-06 description_hash matches.
- Distinct from the LUD-19 refund lnurlp (keyed by a prior scan's hit);
  this is reachable directly by a tap via external_id.
- config.json → 1.1.1-aio.1 (fork of upstream v1.1.1; upstream left its
  config.json at 1.1.0, but the released tag is v1.1.1). README documents
  the endpoint.

Consumed by aiolabs/bitspire #84 (Bolt Card tap-to-receive on cash-in).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-06 00:52:46 +02:00

78 lines
2.1 KiB
JSON

{
"name": "Bolt Cards",
"short_description": "Self custody Bolt Cards with one time LNURLw",
"tile": "/boltcards/static/image/boltcard.png",
"version": "1.1.1-aio.1",
"min_lnbits_version": "1.3.0",
"contributors": [
{
"name": "aiolabs",
"uri": "https://git.atitlan.io/aiolabs",
"role": "Fork maintainer (tap-to-receive)"
},
{
"name": "dni",
"uri": "https://github.com/dni",
"role": "Developer"
},
{
"name": "prusnak",
"uri": "https://github.com/prusnak",
"role": "Developer"
},
{
"name": "talvasconcelos",
"uri": "https://github.com/talvasconcelos",
"role": "Developer"
},
{
"name": "arbadacarbaYK",
"uri": "https://github.com/arbadacarbaYK",
"role": "Developer"
},
{
"name": "gorrdy",
"uri": "https://github.com/gorrdy",
"role": "Developer"
},
{
"name": "BilligsterUser",
"uri": "https://github.com/BilligsterUser",
"role": "Developer"
},
{
"name": "iwarpbtc",
"uri": "https://github.com/iwarpbtc",
"role": "Developer"
},
{
"name": "arcbtc",
"uri": "https://github.com/arcbtc",
"role": "Developer"
},
{
"name": "leesalminen",
"uri": "https://github.com/leesalminen",
"role": "Developer"
}
],
"images": [
{
"uri": "https://raw.githubusercontent.com/lnbits/boltcards/main/static/image/1.jpg",
"link": "https://www.youtube.com/embed/_sW7miqaXJc?si=UlFX7yU2A_LkC70r"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/boltcards/main/static/image/2.jpg",
"link": "https://www.youtube.com/embed/wJ7QLFTRjK0?si=DRNH9ycKZrCLjFcx"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/boltcards/main/static/image/1.png"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/boltcards/main/static/image/3.jpg"
}
],
"description_md": "https://raw.githubusercontent.com/lnbits/boltcards/main/description.md",
"terms_and_conditions_md": "https://raw.githubusercontent.com/lnbits/boltcards/main/toc.md",
"license": "MIT"
}