lightning-phoenixd

v2026.09.24

Phoenixd by ACINQ: headless server build of Phoenix wallet for self-hosting. Single-node Lightning daemon with batteries-included ACINQ swap-in / swap-out, BOLT12 receive, WebSocket payments API. USE WHEN: deploying a self-hosted minimal Lightning daemon for a service (point-of-sale, donation page, micro-merchant), avoiding full LND/CLN complexity.

GitHub
安装命令
npx skhub add claude-dev-suite/lightning-phoenixd
Markdown
SKILL.md

phoenixd (ACINQ)

phoenixd is the headless version of the Phoenix wallet. Designed for individuals and small services who want a self-hosted LN daemon without the operational complexity of LND/CLN.

Phoenix mobile = consumer wallet. phoenixd = same engine, no UI, HTTP API for integration.

Architecture

  • Built on top of Eclair core (so JVM-based).
  • Self-hosts; single node, no cluster.
  • Auto-channel management via ACINQ swap-in / swap-out.
  • Default to BOLT12 offers for receiving.
  • Lightning-Address support out of the box.

Why phoenixd

  • No bitcoind required — uses Electrum servers (configurable).
  • No on-chain wallet UI — auto-handles funding and channel mgmt.
  • API-first — HTTP REST + WebSocket for payment events.
  • Reasonable defaults — anchor channels, MPP, BOLT12, all enabled by default.
  • Liquidity from ACINQ — auto channel-open via swap-in.

Install

curl -L https://github.com/ACINQ/phoenixd/releases/download/.../phoenixd-... > phoenixd.zip
unzip phoenixd.zip; cd phoenixd-...

./phoenixd --version
./phoenixd        # first run: generates seed, prompts to backup

Config at ~/.phoenix/phoenix.conf:

chain=mainnet
http-bind-ip=127.0.0.1
http-bind-port=9740
http-password=<auto-generated, in seed.dat or set explicitly>
auto-liquidity=2m   # auto manage liquidity, allow 2M sats inbound

API

Default localhost:9740. Auth via HTTP basic (_:<password>):

curl -u _:$(cat ~/.phoenix/phoenix.conf | grep http-password | cut -d= -f2) \
  http://127.0.0.1:9740/getinfo

curl -u _:pass -X POST -d "amountSat=5000&description=Coffee" \
  http://127.0.0.1:9740/createinvoice

curl -u _:pass -X POST -d "invoice=lnbc..." \
  http://127.0.0.1:9740/payinvoice

WebSocket events

Real-time payment notifications:

const ws = new WebSocket("ws://_:pass@127.0.0.1:9740/websocket");
ws.onmessage = (e) => {
    const event = JSON.parse(e.data);
    if (event.type === "payment-received") {
        console.log("Got", event.amountSat, "sats");
    }
};

Liquidity

phoenixd auto-manages liquidity via ACINQ:

  • Splice-in: when more inbound liquidity needed.
  • Splice-out: when receiving on-chain back.
  • Fees charged by ACINQ (typically small percentage of channel size).

For higher volume, run alongside LSP:

liquidity-provider=acinq    # default

Use cases

  • Self-hosted POS terminals (Donation page, micro-merchant).
  • Private API for backends (no need for LND complexity).
  • Lightning Address servers (low setup overhead).
  • Integration with NWC providers.

Limitations

  • Only one channel at a time (vs LND/CLN which support many).
  • ACINQ as sole LSP (others possible but tested less).
  • No BOLT12 send in some early versions (check current docs).
  • Eclair lineage: heavy JVM, ~500 MB RAM.

Backup

~/.phoenix/seed.dat is the seed (encrypted with empty password unless set). Backup this file + phoenix.conf.

Channel state recovery: if seed restored to a different machine, phoenixd attempts to recover via SCB-like flow with peers.

Comparison

FeaturephoenixdLNDCLNLDK Node
Setup complexity★ (very simple)★★★★★★★★★
Multiple channelsnoyesyesyes
Plugin ecosystemnorichrichcode-level
Memory~500 MB100-200 MB~150 MB10-50 MB
LSP integrationACINQ-nativemanualmanualflexible
BOLT12 receiveyespartialyesyes

See also

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

MIT

源路径

skills/bitcoin/lightning/phoenixd

默认分支

main

最新提交

9496306

Tree SHA

fe4e2f1