Ifpaytt
If Pay Then That :zap: Trigger IFTTT actions with Bitcoin Lightning payments
Install / Use
/learn @ElementsProject/IfpayttREADME
If Pay Then That
Use Bitcoin Lightning payments as the trigger for IFTTT (If This Then That) actions.
Powered by :zap: Lightning Charge and paypercall.
Install
$ npm install -g ifpaytt
Setup
Setup Lightning Charge, then:
-
Get your IFTTT maker key from IFTTT's Webhook settings page (shown as
https://maker.ifttt.com/use/[MAKER-KEY-HERE]). -
Open the new applet page, click "this", enter "Webhooks", click "Receive a web request", enter a descriptive event name prefixed by
ifpaytt_containing only numbers, lowercase letters and_(e.g.ifpaytt_lightup_room404orifpaytt_vend_machine137_item56), and click "Create Trigger". -
Configure your "then" action and finish creating the IFTTT applet.
-
Start the
ifpayttserver:$ ifpaytt --charge-token [mySecretToken] --ifttt-key [myMakerKey] --currency BTC \ --price-lightup_room404 0.00001 --price-vend_machine137_item56 0.000063 Running on http://localhost:6000
That's it! The server is now ready to accept payments and trigger IFTTT actions.
Paying to trigger actions
Users can access the IFTTT action through a three-part process:
-
Send an empty
POSTrequest to/{event-name}to get the BOLT11 payment request and theX-Tokenheader:$ curl -i -X POST http://localhost:6000/lightup_room404 HTTP/1.1 402 Payment Required X-Token: lmbdmJeoSQ0ZCB5egtnph.af1eupleFBVuhN2vrbRuDLTlsnnUPYRzDWdL5HtWykY Content-Type: application/vnd.lightning.bolt11 lnbcrt8925560p1pdfh7n2pp54g5avyupe70l988h30u0hy8agpj2z7qsveu7ejhys97j98rgez0... -
Make the payment:
$ lightning-cli pay lnbcrt8925560p1pdfh7n2pp54g5avyupe70l988h30u0hy8agpj2z7qsveu7ejhys97j98rgez0... -
Send the request again, this time with the
X-Tokenheader echoed back and optionally withvalue1,value2andvalue3in the request body (passed along to IFTTT):$ curl -i -X POST http://localhost:6000/lightup_room404 \ -H 'X-Token: lmbdmJeoSQ0ZCB5egtnph.af1eupleFBVuhN2vrbRuDLTlsnnUPYRzDWdL5HtWykY' \ -d value1='brightness=80,color=red' HTTP/1.1 200 OK Content-Type: text/plain Congratulations! You've fired the ifpaytt_lightup_room404 event(if
value[1-3]are not set, they'll automatically be populated with some useful information about the payment.)
CLI options
$ ifpaytt --help
Trigger IFTTT actions with Bitcoin Lightning payments
Usage
$ ifpaytt [options]
Options
-c, --charge-url <url> lightning charge server url [default: http://localhost:9112]
-t, --charge-token <token> lightning charge access token [required]
-k, --ifttt-key <key> IFTTT maker key (available in https://ifttt.com/services/maker_webhooks/settings) [required]
-r, --ifttt-prefix <prefix> prefix for IFTTT event names [default: ifpaytt_]
-x, --currency <name> the currency prices are quoted in [default: BTC]
--price-{event} <price> price to send events of type {event}
-d, --db-path <path> path to store payperclick sqlite database [default: ifpaytt.db]
--invoice-expiry <sec> how long should invoices be payable for [default: 1 hour]
--access-expiry <sec> how long should paid active tokens remain valid for [default: 1 hour]
--token-secret <secret> secret used for HMAC tokens [default: generated based on {charge-token}]
-p, --port <port> http server port [default: 6000]
-i, --host <host> http server listen address [default: 127.0.0.1]
-e, --node-env <env> nodejs environment mode [default: production]
-h, --help output usage information
-v, --version output version number
Example
$ ifpaytt -t chargeAccessToken -k iftttMakerKey -x BTC \
--price-lightup_room404 0.00001 --price-vend_machine137_item56 0.00023
License
MIT
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
