One-click Bitcoin Lightning networks for local app development & testing https://lightningpolar.com
  • TypeScript 98.7%
  • Dockerfile 0.4%
  • JavaScript 0.4%
  • Shell 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-09 12:50:16 -04:00
.devcontainer feat(dev): add devcontainers support 2024-01-12 13:33:39 -05:00
.github build: update Core Lightning to 26.06.9-blake2b.7 2026-10-09 10:49:31 -04:00
.husky build: update deprecated husky command 2024-09-27 17:37:49 -05:00
.vscode feat(images): add support for LND v0.18.4-beta.rc2 2024-12-12 01:01:00 -06:00
assets build: enhance DMG packaging and add ARM64 support 2025-12-29 00:21:29 -05:00
docker build: update Core Lightning to 26.06.9-blake2b.7 2026-10-09 10:49:31 -04:00
docs docs(mcp): add MCP architecture doc 2025-12-23 08:52:12 -06:00
e2e chore: fix some comments 2024-03-18 11:17:28 -04:00
electron feat: keep data in polar-blake2b so upstream Polar can coexist 2026-10-05 10:01:19 -04:00
examples/typescript/lnd refactor(examples): updated examples 2024-04-26 01:06:26 -05:00
patches chore(deps): use published lnd & tapd NPM packages 2024-06-20 12:16:13 -05:00
public chore: remove auto-generated css files from git repo 2020-01-21 11:17:17 -05:00
src build: update Core Lightning to 26.06.9-blake2b.7 2026-10-09 10:49:31 -04:00
.commitlintrc chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
.crowdin.yml ci(github): do not run builds for translation PRs 2020-02-28 11:01:03 -05:00
.editorconfig chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
.electronbuildrc build: package as Polar BLAKE2b so it installs alongside Polar 2026-10-05 10:36:31 -04:00
.eslintignore chore(deps): fix breaking changes in eslint v8.0.0 2021-04-05 10:23:32 -04:00
.eslintrc chore(deps): fix breaking changes in eslint v8.0.0 2021-04-05 10:23:32 -04:00
.gitattributes chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
.gitignore chore: ignore .playwright-mcp directory 2025-12-29 00:21:29 -05:00
.i18next-scanner.js chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
.lintstagedrc fix(linting): added --max-warnings 0 2023-05-16 14:24:38 -04:00
.prettierignore chore(github): update issue templates 2020-01-18 23:10:17 -05:00
.prettierrc chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
.renovaterc chore: update renovate config 2025-12-29 00:21:29 -05:00
.rescriptsrc.js chore(deps): update dependency @emotion/babel-plugin to v11.2.0 2021-04-05 11:57:21 -04:00
.stylelintrc feat(styles): add emotion dependency 2019-09-21 01:26:33 -04:00
.testcafe-electron-rc chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
.versionrc chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
CHANGELOG.md chore(release): bump version to v4.0.0 and update changelog 2026-01-06 11:02:28 -05:00
CLAUDE.md docs: add CLAUDE.md file 2025-12-18 07:30:26 -06:00
CONTRIBUTING.md docs(docker): fix awk compatibility in setup instructions 2025-06-09 07:52:16 -05:00
LICENSE chore(setup): initial app setup (#1) 2019-08-09 16:14:08 -04:00
package.json chore(release): v4.0.0-blake2b.2 2026-10-09 12:29:34 -04:00
README.md build: base the Core Lightning image on privkeyio's lightningd 2026-10-05 13:37:47 -04:00
RELEASE.md chore(release): bump version to v3.3.0 and update changelog 2025-06-20 00:25:55 -05:00
TODO.md feat(mining): automatically mine new blocks (#707) 2023-05-01 15:25:09 -04:00
tsconfig.json chore(deps): fix breaking changes in easy-peasy v5 2021-04-05 11:57:21 -04:00
wallaby.js test(litd): add and update unit tests for litd 2024-06-20 12:16:13 -05:00
yarn.lock chore: remove taproot assets and lightning terminal 2026-10-05 00:21:05 -04:00

Polar with BLAKE2b proof of work

This is an unofficial fork of Polar that follows Bitcoin's change of proof-of-work algorithm to BLAKE2b. It is not affiliated with the Polar project. Upstream Polar has not adopted the change, so use it instead if that is what you want.

For regtest only, and not audited. Use at your own risk, and no warranty of any kind, see the MIT license. Everything below the divider is upstream's documentation and describes Polar rather than this fork.

What differs from Polar

  • Bitcoin Knots. The Bitcoin node is Bitcoin Knots, started with -testactivationheight=blake2b@1, so every block past the genesis block has the 164 byte v2 header and its BLAKE2b hash as the block id.
  • Lightning nodes that follow BLAKE2b. LND is paulscode/lightning-fork and Core Lightning is privkeyio/lightning. Both sign channels with the unified opt-in signature hash and advertise option_blake2b, so they peer with each other and not with Lightning nodes on the SHA256d rules.
  • Removed: Bitcoin Core, Eclair, Taproot Assets and Lightning Terminal, which do not follow BLAKE2b.
  • Images are published to ghcr.io/privkeyio/polar from the Dockerfiles in docker, and the image list is fetched from this repository rather than upstream's.
  • Separate data directory. Networks, settings and logs live in ~/.polar-blake2b (or ~/.local/share/polar-blake2b), so it installs alongside upstream Polar without sharing networks. Do not run both at once: they use the same container names and host ports. Networks made with upstream Polar have SHA256d blocks; create new ones here.
  • Knots policy. Bitcoin Knots also runs with -rejectparasites=0, so a Core Lightning wallet transaction is not refused for a locktime that policy reads as a parasite.

Releases

Published under Releases with a signed SHA256SUMS covering every file:

gpg --import privkeyio-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

Signed by Kyle Santiago kyle@privkey.io, key A47D99B6DB0D715D40C59A2023AE8A8EA7E24E38.

The macOS builds are not notarized and the Windows installers are not Authenticode signed, so both are reported as untrusted on first launch. Verify SHA256SUMS first, because clearing quarantine removes the check that would otherwise stop a tampered download:

xattr -dr com.apple.quarantine "/Applications/Polar BLAKE2b.app"

The node images are built by the Images workflow from the Dockerfiles in docker, Bitcoin Knots is pinned to its signed checksum file, LND to a source commit, and Core Lightning builds on the lightningd image privkeyio/lightning publishes for each release; see docker/README.md.

Reporting issues

Use the Issues tab for problems specific to this fork. Anything else belongs upstream.


Polar

One-click Bitcoin Lightning networks for local app development & testing

Actions Status codecov Crowdin GitHub license GitHub release

View a short video demo

Purpose

Polar was built to help Lightning Network application developers quickly spin up one or more networks locally on their computers.

With Polar you can:

  • Create a regtest Lightning Network in just a few clicks
  • Connect from your app to the lightning nodes via RPC
  • Add more nodes using drag & drop
  • Start and stop individual nodes
  • Open & Close Channels
  • Create & Pay Lightning Invoices
  • Launch a terminal in each bitcoin/lightning node
  • View streaming logs from each node
  • Manually mine new blocks
  • Deposit regtest coins into each Lightning node
  • Export and import networks, for sharing with other Lightning developers
  • Create you own docker images to use as custom nodes (ex: master branch, local fork)

Supported Network Node Versions:

  • LND - v0.20.0, v0.19.3, v0.19.2, v0.19.1, v0.18.5, v0.18.4, v0.18.3, v0.17.5, v0.16.4
  • Core Lightning - v25.12, v25.09.3, v25.05, v25.02, v24.11.1, v24.08.1
  • Bitcoin Core - v30.0, v29.0, v28.0, v27.0, v26.0

MCP (Model Context Protocol)

Polar includes an MCP server that enables AI agents like Claude & Cursor to programmatically control Lightning Network simulations.

See the polar-mcp repo for installation instructions.

See the MCP Architecture Documentation for technical information on the architecture, API, and how to add new tools to Polar.

Dependencies

Polar requires that you have Docker installed to create the local networks

You will be prompted to install Docker if Polar cannot detect it automatically

⚠️ Important Docker Notes

  • On Linux, Docker Desktop is currently not supported due to a significant change in how it handles file sharing between host and container (See #636)

Download

Download Polar v4.0.0 for your OS

Alternative and older version binaries can be found in the GitHub releases

Help Translate

Polar's translations are managed on Crowdin. The initial translations of 10 languages were done by machine (Google Translate) and are likely to not be 100% accurate. If you speak multiple languages and wish to help with translations, please feel free to head over to the project page on Crowdin and submit updated strings. This assistance would be greatly appreciated.

Development

If you would like to learn how to package Polar from source code or want to fix a bug or add a new feature, please see CONTRIBUTING for detailed instructions.

Commands

Command Description
yarn install dependencies
yarn dev run the app with react hot reloading and electron live restarting
yarn test run unit tests in watch mode
yarn test:e2e run e2e tests
yarn lint:all run typescript and eslint syntax checking
yarn package package the app for your OS

Tech Stack