NLightning.Bolt11
4.0.5
dotnet add package NLightning.Bolt11 --version 4.0.5
NuGet\Install-Package NLightning.Bolt11 -Version 4.0.5
<PackageReference Include="NLightning.Bolt11" Version="4.0.5" />
<PackageVersion Include="NLightning.Bolt11" Version="4.0.5" />
<PackageReference Include="NLightning.Bolt11" />
paket add NLightning.Bolt11 --version 4.0.5
#r "nuget: NLightning.Bolt11, 4.0.5"
#:package NLightning.Bolt11@4.0.5
#addin nuget:?package=NLightning.Bolt11&version=4.0.5
#tool nuget:?package=NLightning.Bolt11&version=4.0.5
NLightning.Bolt11
This library provides a decoder/encoder for the BOLT11 invoice format used in the Lightning Network. It can be used to decode and/or encode BOLT11 invoices.
Available Packages
We've decided to have 2 packages, one for desktop/server development, and one for Blazor WebAssembly development.
The reason behind this is that for a Blazor app running fully on the browser we don't have access to native libsodium.
Sample
A sample project using this project in a Blazor WebAssembly environment can be found here.
A live version of the sample can be found at bolt11.ipms.io
Usage
Follow the steps below to install and decode bolt11 invoices.
Installation
Install the package from NuGet:
# For the "standard" version of the package run
dotnet add package NLightning.Bolt11
# For the Blazor WebAssembly version run
dotnet add package NLightning.Bolt11.Blazor
Decoding
// add the using directive
using NLightning.Bolt11.Models;
// decode the invoice string
var invoice = Invoice.Decode(invoice_string);
// Get the properties from the invoice
Console.WriteLine("Here's a few props from the invoice:")
Console.WriteLine(invoice.Amount.MilliSatoshi);
Console.WriteLine(invoice.Amount.Satoshi);
Console.WriteLine(invoice.PaymentHash);
Console.WriteLine("A list with all the props can be found at: https://nlightning.ipms.io/api/NLightning.Bolts.BOLT11.Invoice.html#properties");
Decoding in Blazor Apps
Blazor apps need to initialize the CryptoProvider in order to load the needed js files. Add the following to your
Program.cs file.
Initialize the CryptoProvider (libsodium.js)
// Add the using directive
using NLightning.Infrastructure.Crypto.Providers.JS;
// ...
// Your app code
// Initialize the Crypto Provider just before starting the server.
await BlazorCryptoProvider.InitializeBlazorCryptoProviderAsync();
await builder.Build().RunAsync();
Decode the invoice
@using NLightning.Bolt11.Models
<button @onclick="DecodeInvoice">Decode</button>
<br/>
@if (invoice != null)
{
<p>Payment Hash: @invoice.PaymentHash</p>
<p>Amount MilliSats: @invoice.Amount.MilliSatoshi</p>
<p>Amount Sats: @invoice.Amount.Satoshi</p>
<p>Amount BTC: @invoice.Amount</p>
<p>Description: @invoice.Description</p>
}
@code{
Invoice? invoice;
void DecodeInvoice()
{
invoice = Invoice.Decode("lnbc1pndpjfppp5qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqssp5qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsdqq5243a4h29w7lm6g89hktd0qzfakevjp7hktskal5p69jxa6vyqw4s95577lltw0t6l9dhp7cfld9urkxfsucsxascnxdqmanrlklsqcp5nwzmf");
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- NLightning.Infrastructure (>= 1.0.3)
- NLightning.Infrastructure.Bitcoin (>= 0.0.4)
-
net9.0
- NLightning.Infrastructure (>= 1.0.3)
- NLightning.Infrastructure.Bitcoin (>= 0.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 4.0.5 | 4,851 | 12/1/2025 | |
| 4.0.4 | 391 | 11/25/2025 | |
| 4.0.3 | 459 | 11/24/2025 | |
| 4.0.2 | 203 | 11/24/2025 | |
| 4.0.1 | 304 | 11/24/2025 | |
| 4.0.0 | 4,060 | 6/18/2025 | |
| 3.0.1 | 221 | 5/21/2025 | |
| 3.0.0 | 204 | 5/20/2025 | |
| 2.0.0 | 216 | 5/5/2025 | |
| 1.0.0 | 210 | 4/28/2025 | |
| 0.2.4 | 1,431 | 3/7/2025 | |
| 0.2.3 | 234 | 2/25/2025 | |
| 0.2.0 | 386 | 9/12/2024 | |
| 0.1.0 | 381 | 8/26/2024 | |
| 0.0.1 | 180 | 8/26/2024 |
Fixed an error when decoding `PayeePubKeyTaggedField`.