Skip to main content

A library for encoding and decoding BOLT11 payment requests.

Project description

Lightning BOLT11 utils

github-tests-badge github-mypy-badge codecov-badge pypi-badge pypi-versions-badge license-badge

This is an implementation of the Lightning BOLT11 specification, based on previous work by Rusty Russell, the Electrum Wallet team, and the LNbits bolt11 helpers created by @fiatjaf.

resources

installing

$ git clone https://github.com/lnbits/bolt11
$ cd bolt11
$ poetry install

running CLI

$ poetry run bolt11 --help
$ poetry run bolt11 decode

run all checks and tests

$ make

using pre-commit as git hook

$ poetry run pre-commit install

running CLI

$ poetry run bolt11 --help

running CLI decode

$ poetry run bolt11 decode lnbc20m1pvjluez.....
{
  "currency": "bc",
  "amount": 2000000000,
  "timestamp": 1496314658,
  "signature": "6a6586db4e8f6d40e3a5bb92e4df5110c627e9ce493af237e20a046b4e86ea200178c59564ecf892f33a9558bf041b6ad2cb8292d7a6c351fbb7f2ae2d16b54e",
  "description_hash": "3925b6f67e2c340036ed12093dd44e0368df1b6ea26c53dbe4811f58fd5db8c1",
  "features": {
    "var_onion_optin": "required",
    "payment_secret": "required"
  },
  "fallback": "1RustyRX2oai4EYYDpQGWvEL62BBGqN9T",
  "route_hints": [
    {
      "public_key": "029e03a901b85534ff1e92c43c74431f7ce72046060fcf7a95c37e148f78c77255",
      "short_channel_id": "66051x263430x1800",
      "base_fee": 1,
      "ppm_fee": 20,
      "cltv_expiry_delta": 3
    },
    {
      "public_key": "039e03a901b85534ff1e92c43c74431f7ce72046060fcf7a95c37e148f78c77255",
      "short_channel_id": "197637x395016x2314",
      "base_fee": 2,
      "ppm_fee": 30,
      "cltv_expiry_delta": 4
    }
  ],
  "min_final_cltv_expiry": 9,
  "payment_hash": "0001020304050607080900010203040506070809000102030405060708090102",
  "payment_secret": "1111111111111111111111111111111111111111111111111111111111111111",
  "payee": "03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad"
}

running CLI encode

$ poetry run bolt11 encode '{
  "currency": "bc",
  "amount_msat": 1000,
  "date": 1590000000,
  "payment_hash": "0001020304050607080900010203040506070809000102030405060708090102",
  "payment_secret": "1111111111111111111111111111111111111111111111111111111111111111",
  "description": "description"
}' e126f68f7eafcc8b74f54d269fe206be715000f94dac067d1c04a8ca3b2db734

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

bolt11-2.1.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

bolt11-2.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file bolt11-2.1.0.tar.gz.

File metadata

  • Download URL: bolt11-2.1.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1023-azure

File hashes

Hashes for bolt11-2.1.0.tar.gz
Algorithm Hash digest
SHA256 177c63cd88d1eaba669eddb5937364676226253f2e9e5b77e8fe317ef32e62dd
MD5 49b88e6c1e39959fbded42307f1640c4
BLAKE2b-256 bdb9e743bd113c1d56d233d17466ad666cddd84ca68fa136b8c1f5bb72d38e13

See more details on using hashes here.

File details

Details for the file bolt11-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: bolt11-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1023-azure

File hashes

Hashes for bolt11-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1535e441233414a9d8031a99fd3be07de4674bffda948033579404d44a42f614
MD5 609fe50343e67546325a7fcb5f08e223
BLAKE2b-256 fc878e9f87eb5533f3e802d33ad0b27280195c57a9f5434d58f30f09474dfa54

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