# Libraries

### Bitcoin Core C Library

Optimized C library for EC operations on curve secp256k1. This library is intended to be the highest quality publicly available library for cryptography on the secp256k1 curve. However, the primary focus of its development has been for usage in the Bitcoin system and usage unlike Bitcoin's may be less well tested, verified, or suffer from a less well thought out interface. Correct usage requires some care and consideration that the library is fit for your application's purpose.

{% embed url="<https://github.com/bitcoin-core/secp256k1>" %}

## BDK-flutter

Flutter library for the above Bitcoin Development Kit.

{% embed url="<https://github.com/LtbLightning/bdk-flutter>" %}

## bitcoin-s

Scala-based Bitcoin library that provides tools and functionalities, including a robust API for building Bitcoin applications and platforms.

{% embed url="<https://github.com/bitcoin-s/bitcoin-s>" %}

## bitcoinj

Java-based library for Bitcoin applications, particularly well-suited for lightweight clients.

{% embed url="<https://github.com/bitcoinj/bitcoinj>" %}

## BitcoinJS

JavaScript library for Bitcoin protocol, ideal for building Bitcoin-based client-side applications.

{% embed url="<https://github.com/bitcoinjs/bitcoinjs-lib>" %}

## embit

Minimalistic Python library designed for Bitcoin and Lightning protocol manipulation, aiming for ease of use and extensibility.

{% embed url="<https://github.com/diybitcoinhardware/embit>" %}

## FileBazzar

Sell digital files with Lightning.

{% embed url="<https://github.com/ElementsProject/filebazaar>" %}

## Get Lightning Paid

A Flask REST API to generate lightning invoices and payment confirmations.

{% embed url="<https://github.com/conscott/get-lightning-paid>" %}

## gLightning

Golang based plugin for c-lightning

{% embed url="<https://github.com/elementsproject/glightning>" %}

## Lighning PHP

PHP client for direct RPC-based access to the c-lightning daemon

{% embed url="<https://github.com/microlancer/lightning-php>" %}

## Lighter

LN node wrapper for c-lightning, eclair and LND (Python)

{% embed url="<https://gitlab.com/inbitcoin/lighter>" %}

## Lightning Charge

A simple drop-in solution for accepting lightning payments (Javascript)

{% embed url="<https://github.com/ElementsProject/lightning-charge>" %}

## Lightning Charge Client js

JavaScript client for lightning-charge

{% embed url="<https://github.com/ElementsProject/lightning-charge-client-js>" %}

## Lightning Integration

Lightning Integration Testing Framework

{% embed url="<https://github.com/cdecker/lightning-integration>" %}

## Lightning Payencode

Minimal QR-code-ready encoding for requesting lightning payments

{% embed url="<https://github.com/rustyrussell/lightning-payencode>" %}

## Lightningd gjson

Talk with a lightningd/c-lightning with minimal overhead and gjson responses.

{% embed url="<https://github.com/fiatjaf/lightningd-gjson-rpc>" %}

## LightningJ

LND Integration API for Java

{% embed url="<http://www.lightningj.org/>" %}

## ln-Paywall

Go middleware for monetizing APIs on a per-request basis with Lightning

{% embed url="<https://github.com/philippgille/ln-paywall>" %}

## ln-Service

Lightning REST Service

{% embed url="<https://github.com/philippgille/ln-paywall>" %}

## Lncall

LND implementation of paypercall

{% embed url="<https://github.com/michael1011/lncall>" %}

## Lnrpc

Auto-generated LND RPC interface with Typescript type definition support

{% embed url="<https://github.com/RadarTech/lnrpc>" %}

## Lseed

A DNS seed for the Lightning Network

{% embed url="<https://github.com/RadarTech/lnrpc>" %}

## NBitcoin

Comprehensive Bitcoin library written in C# for the .NET framework.

{% embed url="<https://github.com/MetacoSA/NBitcoin>" %}

## PayPerCall

Charge for HTTP APIs on a pay-per-call basis with Bitcoin and Lightning

{% embed url="<https://github.com/ElementsProject/paypercall>" %}

### Rust-Lightning

A highly modular Bitcoin Lightning library written in Rust. It's rust-lightning, not Rusty's Lightning! LDK/rust-lightning is a highly performant and flexible implementation of the Lightning Network protocol. The primary crate, lightning, is runtime-agnostic. Data persistence, chain interactions, and networking can be provided by LDK's sample modules, or you may provide your own custom implementations.

{% embed url="<https://github.com/lightningdevkit/rust-lightning>" %}

## Tapscript

A basic library for working with Taproot, Schnorr Signatures, and Bitcoin transactions.

{% embed url="<https://github.com/cmdruid/tapscript>" %}

## WebLN Library

WebLN is a library and set of specifications for lightning apps and client providers to facilitate communication between apps and users' lightning nodes in a secure way. It provides a programmatic, permissioned interface for letting applications ask users to send payments, generate invoices to receive payments, and much more.

Some WebLN client providers include

* [Joule](https://lightningjoule.com/) - a WebLN-enabled browser extension that uses your own node
* [Alby](https://github.com/getAlby/lightning-browser-extension) - a versatile open-source browser extension for the Bitcoin Lightning Network
* [BlueWallet](https://bluewallet.io/) - a mobile wallet with a WebLN browser
* [kwh](https://github.com/fiatjaf/kwh/) - A firefox/chrome extension for WebLN to your c-lightning node
* [Blixt Wallet](https://blixtwallet.github.io/) - a non-custodial open-source Lightning Wallet with a WebLN browser

{% embed url="<https://webln.dev/#/>" %}

## WooCommerce Gateway Lightning

A WooCommerce gateway for lightning payments

{% embed url="<https://github.com/ElementsProject/woocommerce-gateway-lightning>" %}

## Wordpress Lightning Publisher

Lightning Publisher for WordPress.

{% embed url="<https://github.com/ElementsProject/wordpress-lightning-publisher>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.pleblab.com/learn-by-coding/libraries.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
