Skip to main content

An rpc client for LND (lightning network deamon)

Project description

# lndgrpc
A python grpc client for LND (Lightning Network Daemon) ⚡⚡⚡

This is a wrapper around the default grpc interface that handles setting up credentials (including macaroons). An async client is also available to do fun async stuff like listening for invoices in the background.

## Dependencies
Python 2.7, 3.4+
Note: the async client is only available for Python 3.5+

## Installation
```bash
$ pip install lndgrpc
```

## Basic Usage
The api mirrors the underlying lnd grpc api (http://api.lightning.community/) but methods will be in pep8 style. ie. `.GetInfo()` becomes `.get_info()`.

```python
from lndgrpc import LNDClient

# pass in the ip-address with RPC port and network ('mainnet', 'testnet', 'simnet')
# the client defaults to 127.0.0.1:10009 and mainnet if no args provided
lnd = LNDClient("127.0.0.1:10009", network='simnet')

lnd.get_info()

print('Listening for invoices...')
for invoice in lnd.subscribe_invoices():
print(invoice)
```

### Async

```python
import asyncio
from lndgrpc import AsyncLNDClient

async_lnd = AsyncLNDClient()

async def subscribe_invoices():
print('Listening for invoices...')
async for invoice in async_lnd.subscribe_invoices():
print(invoice)

async def get_info():
while True:
info = await async_lnd.get_info()
print(info)
await asyncio.sleep(5)

async def run():
coros = [subscribe_invoices(), get_info()]
await asyncio.gather(*coros)

loop = asyncio.get_event_loop()
loop.run_until_complete(run())
```

### Specifying Macaroon/Cert files
By default the client will attempt to lookup the `readonly.macaron` and `tls.cert` files in the mainnet directory.
However if you want to specify a different macaroon or different path you can pass in the filepath explicitly.

```python
lnd = LNDClient(macaroon_filepath='~/.lnd/invoice.macaroon', cert_filepath='path/to/tls.cert')
```

#### Admin macaroon
Use the admin macaroon to perform write actions (ie. creating invoices, creating new addresses)

```python
lnd = LNDClient(admin=True)
lnd.add_invoice(2000)
```



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lndgrpc-0.2.0.tar.gz (41.1 kB view details)

Uploaded Source

Built Distribution

lndgrpc-0.2.0-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file lndgrpc-0.2.0.tar.gz.

File metadata

  • Download URL: lndgrpc-0.2.0.tar.gz
  • Upload date:
  • Size: 41.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for lndgrpc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4ef3687b9f43d2307e8356eea9641b2f86124a8a301dec1807af7e7e4443a537
MD5 74ca6db5d74a3ad16c7bef6ce7961c5d
BLAKE2b-256 1818148423007703b44015d97b403680b8ad6433ca63e8b14d99fada76c5bc78

See more details on using hashes here.

File details

Details for the file lndgrpc-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lndgrpc-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for lndgrpc-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 105da840da1d67f997906c47028d2f5bf0365991fca35b689108bb937ab31ad8
MD5 7d1c16e3b85444526531721a15afb3e0
BLAKE2b-256 4751e8b3972bdb3ad5adff44c30d994236ded8ba74de65b80adb80bcb7140940

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page