Skip to content
Back to skills

Phoenixd

BSecurity

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.

  • 31 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
ai-agentsgobashnodegitapibackend

Works with

  • terminal
  • api

Security analysis

B84/100
  • mediumUses curl or wget to download content
  • criticalSends environment variables or credentials to an external URL

Pro shows the line behind each finding and how to fix it

Scanned September 8, 2026

npx -y skills add claude-dev-suite/claude-dev-suite --skill phoenixd --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Phoenixd?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Phoenixd
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/claude-dev-suite-phoenixd/badge)](https://www.skillsdirectory.com/skills/claude-dev-suite-phoenixd)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lightning-phoenixd
description: |
  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.
allowed-tools: Read, Grep, Glob
---

# 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

```bash
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`:
```ini
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>`):
```bash
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:
```js
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:
```ini
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

| Feature | phoenixd | LND | CLN | LDK Node |
|---------|----------|-----|-----|----------|
| Setup complexity | ★ (very simple) | ★★★★ | ★★★ | ★★ |
| Multiple channels | no | yes | yes | yes |
| Plugin ecosystem | no | rich | rich | code-level |
| Memory | ~500 MB | 100-200 MB | ~150 MB | 10-50 MB |
| LSP integration | ACINQ-native | manual | manual | flexible |
| BOLT12 receive | yes | partial | yes | yes |

## See also

- [eclair/SKILL.md](../eclair/SKILL.md)
- [consumer-wallets/SKILL.md](../consumer-wallets/SKILL.md)
- [lsp/SKILL.md](../lsp/SKILL.md)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.