Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Registry for vetted LNbits extensions

License

NotificationsYou must be signed in to change notification settings

lnbits/lnbits-extensions

Repository files navigation

Official registry for vetted LNbits extensions

To submit an extension to this registry add your manifest into theextensions.json file in this repository.

Important

Only submit fully working extensions, the review process is not intended to improve the extension code.

Do not add dependencies, LNbits has plenty of dependencies you can use.

The easier an extension is to review, the quicker the review process will be.

Manifest format

The file MUST use theextensions format:

{"id":"gerty","repo":"https://github.com/lnbits/gerty","name":"Gerty","version":"0.1.2","short_description":"Your bitcoin assistant","icon":"https://raw.githubusercontent.com/lnbits/gerty/main/static/gerty.png","archive":"https://github.com/lnbits/gerty/archive/refs/tags/0.1.2.zip","hash":"baff0b6162ffb65cc0b4c721a4aa40a7d3d48acd55a3e344cba3eb1d35cf2074"},

For an exensions localmanifest.json use therepos format:

{"repos": [        {"id":"gerty","organisation":"lnbits","repository":"gerty"        }    ]}

Paid extensions

It is possible for developers to require a payment for their extensions. In order to do so an extension release must have this field:

"pay_link":"# payment URL"

Example:

{"id":"testext","repo":"https://github.com/lnbits/testext","name":"Test Extension","version":"0.5","short_description":"Private Test Extension","icon":"https://raw.githubusercontent.com/lnbits/example/main/static/bitcoin-extension.png","archive":"https://demo.lnbits.com/paywall/download/m2FVCFktJzMcGKXTaHbyhi","pay_link":"https://demo.lnbits.com/paywall/api/v1/paywalls/invoice/m2FVCFktJzMcGKXTaHbyhi","hash":"455527407fcfdc5e8aba93f16802d1083d36dcdfdde829f919cee07420791d61"}

ThePaywall LNbits Extension can be used to serve the extensionzip file.

If you do not want to use thePaywall LNbits Extension to server your extension, but instead you want to use your own paywall, then thepay_link endpoint must follow these specifications:

HTTP RequestHTTP ResponseDescription
GETpay_link
{"amount":5}
Get the amount in `sats` required by this extension release.
GETpay_link?amount=5
{"payment_hash":"04c33f37d01aff...fd7c407a","payment_request":"lnbc50n1pju...n7h8gucqn2cgau"}
Request an invoice for the specified amount (or higher).
WS pay_link/{payment_hash}
{"paid":true|false}
Open a websocket to be notified when the invoice has been paid.

In order to download the file one must add thepayment_hash and anversion (optional) query parameters to thearchive URL. Eg:

GET https://demo.lnbits.com/paywall/download/m2FVCFktJzMcGKXTaHbyhi?payment_hash=3bf...7ec&version=v0.1

Getting sha256 checksum for a release

$wget -O - https://github.com/lnbits/withdraw/archive/refs/tags/0.1.1.zip2> /dev/null| sha256sum| cut -d"" -f 1baff0b6162ffb65cc0b4c721a4aa40a7d3d48acd55a3e344cba3eb1d35cf2074

Lighter ZIP archive

  • documentation, tests and other type of files should not be included in the zip archive generated when a GitHub release is created
  • keep theREADME.md andLICENSE files in the zip as these are required!
  • in order to exclude these files one must:
    • create a.gitattributes file (on the top level of the repo)
    • add a line for the ignored files/dirs:tests/ export-ignore

Checking the changes before sending a pull request

  • after editing themanifest.json file in this repo you should runpython3 check.py as a sanity check
  • you can runpython3 check.py foo bar only to run sanity checks on extensions namedfoo andbar

util for cloning and pulling all extensions

cloning all extensions intoextensions dir. requiresjq to be installed.

sh util.sh clone

pulling all extensions fromextensions dir

sh util.sh pull

get LNbits env variables for all extensions

sh util.sh env

update a extension in extensions.json with id and version

sh util.sh update_extension example v0.4.2

Example video on how to release a extension into this repo

this uses a github workflow like this:https://github.com/lnbits/example/blob/main/.github/workflows/release.yml

lnbits-release.mp4

Integration Tests

setup

make install-jmeter

configure

make sure LNbits is running and start the mirror server

make start-mirror-server

run

maketest

About

Registry for vetted LNbits extensions

Resources

License

Stars

Watchers

Forks

Contributors10


[8]ページ先頭

©2009-2025 Movatter.jp