A Go implementation of a Lightning Network node that manages channels, routes payments and exposes gRPC and REST APIs.
lightninglabs/wavelength
A Go toolkit for self-custodial Bitcoin wallets that combines Ark, Lightning swaps and on-chain payments behind one daemon and CLI.
- Stars
- 58
- Forks
- 19
- Open issues
- 163
- Last commit
- 10 hours ago
What is it?
wavelength is a self-custodial Bitcoin wallet system written in Go. It brings together an Ark client, a Lightning swap engine and an on-chain wallet, which are usually separate tools, behind a long-running daemon called waved and a companion CLI called wavecli. Users can board into Ark, hold and transfer VTXOs, swap into and out of the Lightning Network, send and receive on-chain, and perform a unilateral exit to the chain while keeping sole custody of their coins.
The daemon is restart-safe and uses durable actor mailboxes to talk to an Ark operator. It can run with an embedded btcwallet backend using Esplora or Neutrino, or use an existing lnd node for signing and chain access. It exposes a typed gRPC and REST API, and Go SDK packages such as sdk/ark, sdk/swaps and sdk/wavewalletdk let host applications embed it in-process.
Optional build tags enable the Lightning swap subsystem and a simplified wallet RPC with verbs such as create, send, recv, balance and exit. wavecli mcp serve exposes the daemon to AI agents as typed tool calls. The project is under active development, and mainnet use requires an explicit flag.
Key features
- 01Runs as a single daemon with an embedded wallet and crash-safe durable state.
- 02Supports btcwallet with Esplora or Neutrino, and lnd as a chain and signing backend.
- 03Covers Ark boarding, in-round and out-of-round transfers, refresh, and unilateral exit.
- 04Provides Lightning-to-Ark and Ark-to-Lightning atomic swaps through an optional subsystem.
- 05Offers gRPC and REST APIs plus Go SDKs for embedding in host applications.
- 06Includes an MCP server so AI agents can call the daemon as tools.
Use cases
- Adding self-custodial Bitcoin payments to a Go application or service.
- Building an AI agent that needs to send and receive Bitcoin through typed tool calls.
- Running a personal Ark wallet that can also swap between Lightning and Ark.
Quick start
- 1
Clone the repository
git clone https://github.com/lightninglabs/wavelength.git - 2
Enter the project directory
cd wavelength - 3
Build and install waved and wavecli with the wallet RPC surface enabled
make install-wavewalletrpc
Things to know
- The project is under active development, and RPC surfaces, on-disk schema and CLI commands may change between minor versions.
- Mainnet operation requires the explicit --allow-mainnet flag.
- Running the example setup needs a local regtest Ark operator and an Esplora backend.
In collections
Topics
FAQ
- What is wavelength?
- A Go toolkit for self-custodial Bitcoin wallets that combines Ark, Lightning swaps and on-chain payments behind one daemon and CLI. wavelength is a self-custodial Bitcoin wallet system written in Go. It brings together an Ark client, a Lightning swap engine and an on-chain wallet, which are usually separate tools, behind a long-running daemon called waved and a companion CLI called wavecli. Users can board into Ark, hold and transfer VTXOs, swap into and out of the Lightning Network, send and receive on-chain, and perform a unilateral exit to the chain while keeping sole custody of their coins.
- Is wavelength free to use? What license does it have?
- wavelength is open source under the MIT license. Check the license terms before using it in commercial products.
- Is wavelength still maintained?
- Actively maintained. The last commit to wavelength was on Nov 7, 2026.
- What can I use wavelength for?
- Adding self-custodial Bitcoin payments to a Go application or service. Building an AI agent that needs to send and receive Bitcoin through typed tool calls. Running a personal Ark wallet that can also swap between Lightning and Ark.
- How do I install wavelength?
- Clone the repository: git clone https://github.com/lightninglabs/wavelength.git Enter the project directory: cd wavelength Build and install waved and wavecli with the wallet RPC surface enabled: make install-wavewalletrpc
- Where can I get wavelength?
- The source code and installation instructions are on GitHub: https://github.com/lightninglabs/wavelength
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A standard-compliant Lightning Network node implementation in C, run as the lightningd daemon and controlled over JSON-RPC.
A free, open-source, self-hosted Bitcoin payment processor that lets merchants accept Bitcoin directly without intermediaries.
Official Docker Compose deployment that generates and runs a full BTCPay Server stack from environment variables.
A self-custodial Android Bitcoin wallet covering on-chain, Lightning, Ark, Spark, and Liquid, with privacy and customization focus.
Taho is a community-owned, open-source Web3 browser extension wallet for Ethereum and Bitcoin, built as an alternative to MetaMask.