Skip to main content

lnd-grpc

A simple library to provide a Python 3 interface to the lnd lightning client gRPC.

This version of the library has been compiled with rpc.proto from the v0.6-beta tag on github

Install requires:

  • grpcio
  • grpcio-tools
  • googleapis-common-protos

Note: Configuration for coins other than bitcoin will require modifying the source code directly.

Installation via pip

pip install lnd-grpc

Bitcoin setup

bitcoind or btcd must be running and be ready to accept rpc connections from lnd.

LND setup

lnd daemon must be running on the host machine. This can typically be accomplished in a screen/tmux session.

If lnd.conf is not already configured to communicate with your bitcoin client, an example lnd daemon startup command for bitcoind connection might look like:

lnd --bitcoin.active \
--bitcoin.mainnet \
--debuglevel=debug \
--bitcoin.node=bitcoind \
--bitcoind.rpcuser=xxxxx \
--bitcoind.rpcpass=xxxxxxxxxxxxxx \
--externalip=xx.xx.xx.xx \
--bitcoind.zmqpubrawblock=tcp://host:port \
--bitcoind.zmqpubrawtx=tcp://host:port \
--rpclisten=host:port

Usage

Import the module into your project:

import lnd_grpc

Create an instance of the client class:

lnd_rpc = lnd_grpc.Client()

Note: The class is instantiated to work with default bitcoind rpc port and lnd in default installation directory, on mainnet, unless additional arguments are passed.

The class instantiation takes the the following arguments which you can change as required:

    (
    lnd_dir: str = None, \
    macaroon_path: str = None, \
    tls_cert_path: str = None \
    network: str = 'mainnet', \
    grpc_host: str = 'localhost', \
    grpc_port: str = '10009'
    )

Initialization of a new lnd installation

Note: If you have already created a wallet during lnd setup/installation you can skip this section.

If this is the first time you have run lnd you will not have a wallet created. 'Macaroons', the authentication technique used to communicate securely with lnd, are tied to a wallet (seed) and therefore an alternative connection must be made with lnd to create the wallet, before recreating the connection stub using the wallet's macaroon.

Initialization requires the following steps:

  1. Generate a new seed lnd_rpc.gen_seed()
  2. Initialize a new wallet lnd_rpc.init_wallet()

Connecting and re-connecting after wallet created

If you did not run the initialization sequence above, you will only need to unlock your wallet before issuing further RPC commands:

lnd_rpc.unlock_wallet(password='wallet_password')

General usage

Further RPC commands can then be issued to the lnd gRPC interface using the following convention, where LND gRPC commands are converted from CamelCase to lowercase_with_underscores and keyword arguments named to exactly match the parameters the gRPC uses:

lnd_rpc.grpc_command(keyword_arg=value)

Valid gRPC commands and their keyword arguments can be found here

Connection stubs will be generated dynamically as required to ensure channel freshness.

Response-streaming RPCs now return the python iterators to be operated on directly (e.g. with .__next__())

Loop usage

LND must be re-built and installed as per the loop instructions found at the Loop Readme.

Loopd should then be installed as per the same instructions and started manually.

Then you can import and use the RPC client using the following code:

import loop_rpc

loop = loop_rpc.LoopClient()

Metadata

Release files for lnd-grpc 0.2.7005

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lnd-grpc 0.2.7005
File Size Uploaded
lnd_grpc-0.2.7005.tar.gz 56.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lnd-grpc 0.2.7005
File Interpreter ABI Platform
lnd_grpc-0.2.7005-py3-none-any.whl Python 3 none any Details

Total release size: 116.0 kB

Release files / lnd_grpc-0.2.7005.tar.gz

Download URL lnd_grpc-0.2.7005.tar.gz
Size 56.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bd2cbc2e415e1cfb9677fad5430a4699c9fc44b55e0a3ecc68d515260d7e904c
BLAKE2b-256 checksum
How to use checksums
6c3c0eebdb6a23456a210fae18d2ae80589082be5ec104747a5db1100b941aa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2

Release files / lnd_grpc-0.2.7005-py3-none-any.whl

Download URL lnd_grpc-0.2.7005-py3-none-any.whl
Size 59.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01a7ad983988ffd322a1f5da7c02e07ce2d4e5c179aab24cfec01608c77e29a2
BLAKE2b-256 checksum
How to use checksums
a8506bc888981aae5e07bcd1607f42ac74f7ffb14cb12c78881e828e434d52fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.7005 This release

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page