Repolode
lightninglabs

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. 1

    Clone the repository

    git clone https://github.com/lightninglabs/wavelength.git
  2. 2

    Enter the project directory

    cd wavelength
  3. 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 self-custodial Android Bitcoin wallet covering on-chain, Lightning, Ark, Spark, and Liquid, with privacy and customization focus.

Security#bitcoin#android#lightning
735KotlinMITWell maintainedUpdated 3 days ago