Pool
Welcome to the API reference documentation for Lightning Pool.
Lightning Pool is a non-custodial batched uniform clearing-price auction for Lightning Channel Lease (LCL). A LCL packages up inbound (or outbound!) channel liquidity (ability to send/receive funds) as a fixed incoming asset (earning interest over time) with a maturity date expressed in blocks. The maturity date of each of the channels is enforced by Bitcoin contracts, ensuring that the funds of the maker (the party that sold the channel) can't be swept until the maturity height. All cleared orders (purchased channels) are cleared in a single batched on-chain transaction.
This repository is home to the Pool client and depends on the Lightning Network daemon lnd. All of lnd’s supported chain backends are fully supported when using the Pool client: Neutrino, Bitcoin Core, and btcd.
The service can be used in various situations:
- Bootstrapping new users with side car channels
- Bootstrapping new services to Lightning
- Demand fueled routing node channel selection
- Allowing users to instantly receive with a wallet
Usage
Learn how to install, configure, and use Pool by viewing the documentation in the Builder's Guide.
Summary
This site features the documentation for pool
(CLI), and the API documentation
for Python and JavaScript clients in order to communicate with a local poold
instance through gRPC.
gRPC
The code samples assume that the there is a local poold
instance
running and listening for gRPC connections on port 12010
. POOL_DIR
will be used
as a placeholder to denote the base directory of the poold
instance. By default,
this is ~/.pool
on Linux and ~/Library/Application Support/Pool
on macOS.
At the time of writing this documentation, two things are needed in order to
make a gRPC request to an poold
instance: a TLS/SSL connection and a macaroon
used for RPC authentication. The code samples will show how these can
be used in order to make a successful, secure, and authenticated gRPC request.
The original *.proto
files from which the gRPC documentation was generated
can be found here:
REST
View a listing of all REST URLs on the REST Endpoints page.
The code samples assume that the there is a local poold
instance
running and listening for REST connections on port 8281
. POOL_DIR
will be used
as a placeholder to denote the base directory of the poold
instance. By default,
this is ~/.pool
on Linux and ~/Library/Application Support/Pool
on macOS.
At the time of writing this documentation, two things are needed in order to
make an HTTP request to an poold
instance: a TLS/SSL connection and a macaroon
used for RPC authentication. The code samples will show how these can
be used in order to make a successful, secure, and authenticated HTTP request.
The original *.swagger.json
files from which the gRPC documentation was generated
can be found here:
REST Encoding
NOTE: The byte
field type must be set as the base64 encoded string
representation of a raw byte array. Also, any time this must be used in a URL path
(ie. /v1/abc/xyz/{payment_hash}
) the base64 string must be encoded using a
URL and Filename Safe Alphabet. This means you must replace +
with -
,
/
with _
, and keep the trailing =
as is. Url encoding (ie. %2F
) will not work.
This documentation was
generated automatically against commit
f41389e103febe0176353ce5ff6895f19a62a709
.