• Stars
    star
    546
  • Rank 80,861 (Top 2 %)
  • Language
    Go
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Lightning Loop: A Non-Custodial Off/On Chain Bridge

Lightning Loop

Lightning Loop is a non-custodial service offered by Lightning Labs that makes it easy to move bitcoin into and out of the Lightning Network.

Features

  • Automated channel balancing
  • Privacy-forward non-custodial swaps
  • Opportunistic transaction batching to save on fees
  • Progress monitoring of in-flight swaps

Use Cases

  • Automate channel balancing with AutoLoop (Learn more)
  • Deposit to a Bitcoin address without closing channels with Loop In
  • Convert outbound liquidity into inbound liquidity with Loop Out
  • Refill depleted Lightning channels with Loop In

Installation

Download the latest binaries from the releases page.

Execution

The Loop client needs its own short-lived daemon to facilitate swaps. To start loopd:

loopd

To use Loop in testnet, simply pass the network flag:

loopd --network=testnet

By default loopd attempts to connect to the lnd instance running on localhost:10009 and reads the macaroon and tls certificate from ~/.lnd. This can be altered using command line flags. See loopd --help.

Usage

AutoLoop

AutoLoop makes it easy to keep your channels balanced. Checkout our autoloop documentation for details.

Loop Out

Use Loop Out to move bitcoins on Lightning into an on-chain Bitcoin address.

To execute a Loop Out:

loop out <amt_in_satoshis>

Other notable options:

  • Use the --fast flag to swap immediately (Note: This opts-out of fee savings made possible by transaction batching)
  • Use the --channel flag to loop out on specific channels
  • Use the --addr flag to specify the address the looped out funds should be sent to (Note: By default funds are sent to the lnd wallet)

Run loop monitor to monitor the status of a swap.

Loop In

Use Loop In to convert on-chain bitcoin into spendable Lightning funds.

To execute a Loop In:

loop in <amt_in_satoshis>

More info

For more information about using Loop checkout our Loop FAQs.

Development

Regtest

To get started with local development against a stripped down dummy Loop server running in a local regtest Bitcoin network, take a look at the regtest server environment example documentation.

Testnet

To use Loop in testnet, simply pass the network flag:

loopd --network=testnet

Submit feature requests

The GitHub issue tracker can be used to request specific improvements or report bugs.

Join us on Slack

Join us on the LND Slack and join the #loop channel to ask questions and interact with the community.

LND

Note that Loop requires lnd to be built with all of its subservers. Download the latest official release binary or build lnd from source by following the installation instructions. If you choose to build lnd from source, use the following command to enable all the relevant subservers:

make install tags="signrpc walletrpc chainrpc invoicesrpc"

API

The Loop daemon exposes a gRPC API (defaults to port 11010) and a REST API (defaults to port 8081).

The gRPC and REST connections of loopd are encrypted with TLS and secured with macaroon authentication the same way lnd is.

If no custom loop directory is set then the TLS certificate is stored in ~/.loop/<network>/tls.cert and the base macaroon in ~/.loop/<network>/loop.macaroon.

The loop command will pick up these file automatically on mainnet if no custom loop directory is used. For other networks it should be sufficient to add the --network flag to tell the CLI in what sub directory to look for the files.

For more information on macaroons, see the macaroon documentation of lnd.

NOTE: Loop's macaroons are independent from lnd's. The same macaroon cannot be used for both loopd and lnd.

Build from source

If youโ€™d prefer to build from source:

git clone https://github.com/lightninglabs/loop.git
cd loop/cmd
go install ./...

More Repositories

1

lightning-app

An easy-to-use cross-platform Lightning wallet
JavaScript
901
star
2

neutrino

Privacy-Preserving Bitcoin Light Client
Go
899
star
3

lightning-terminal

Lightning Terminal: Your Home for Lightning Liquidity
Go
499
star
4

taproot-assets

A layer 1 daemon, for the Taproot Assets Protocol specification, written in Go (golang)
Go
457
star
5

pool

Lightning Pool: a non-custodial batched uniform clearing-price auction for Lightning Channel Leases (LCL). An LCL packages up inbound channel liquidity (ability to receive funds) as a fixed income asset with a maturity date expressed in blocks.
Go
253
star
6

aperture

โšก๏ธL402 (Lightning HTTP 402) Reverse Proxy โšก๏ธ
Go
233
star
7

chantools

A loose collection of tools all somehow related to lnd and Lightning Network channels.
Go
219
star
8

lndmon

๐Ÿ”Žlndmon: A drop-in monitoring solution for your lnd node using Prometheus+Grafana
Go
151
star
9

faraday

Lightning Channel Management & Optimization Tool
Go
130
star
10

LangChainBitcoin

AI tools for giving LangChain agents access to Bitcoin and the ability to traverse L402 APIs
Python
128
star
11

lightning-node-connect

Go
78
star
12

L402

lsat protocol specification
71
star
13

lightning-faucet

A faucet for the Lightning Network!
Go
71
star
14

lightning-coindesk

A tutorial news app exemplifying Lightning Network micropayments integration
Python
54
star
15

docs.lightning.engineering

Building lapps, running lnd, and more
Markdown
50
star
16

lndclient

Golang client library for lnd
Go
48
star
17

lnc-web

Lightning Node Connect npm module for web
TypeScript
48
star
18

lightning-api

JavaScript
35
star
19

falafel

Go tool to generate go APIs for gRPC services for use on mobile/WASM platforms.
Go
34
star
20

lndinit

cloud infra tooling for lnd provisioning/unlocking
Go
26
star
21

lightning-dev-site

Lightning Network Daemon Developer Site
CSS
25
star
22

builders-guide-sample-app

TypeScript
14
star
23

lightninglabs.github.io

CSS
13
star
24

pool-paper

Lightning Pool: A Non-Custodial Channel Lease Marketplace
TeX
11
star
25

chanleakcheck

A tool to check if your lnd node was targeted by CVE-2019-12999
Go
10
star
26

lnc-rn

Lightning Node Connect npm module for React Native
TypeScript
8
star
27

lnc-core

Type definitions and utilities for Lightning Node Connect, leveraged by lnc-web and lnc-rn
TypeScript
7
star
28

dust-tool

dust exposure tool
Go
6
star
29

lightning-api-ng

Automated API-documentation generation source code for Lightning Lab's FOSS software suite
Go
5
star
30

lnd-fuzz

Shell
3
star
31

gh-actions

Vendored GitHub Action scripts
TypeScript
3
star
32

aezeedcheck

A offline CLI that allows one to verify their aezeed mnemonic
Go
2
star