Current features of NodeGuard are the following:
- Asynchronous channel funding leveraging cold multisig wallets and hot wallets
- Multisig wallet creation and import (BIP39), only segwit for now
- Liquidity automation by settings rules in tandem with NodeGuard liquidator
- Optional remote signing through NodeGuard Remote Signer functions for channel funding transactions, separating the NodeGuard keys from the actual software
- Automatic sweeping of funds in lightning nodes to avoid having funds on the node hot wallets
- Channel management
- Channel creation interception with returning address to multisig wallets to avoid having funds on hot wallets
- Support for hardware wallets to sign the PSBTs for channel funding transactions
- Minimalistic in-browser wallet with NodeGuard Companion to ease signing of transactions and wallet creation
- In-browser notification systems for channel approvals
- Two-factor authentication
Check Contributing.md
TODO
Run tilt up
to run the whole infrastructure, then just run
to run the project.
- VS Code / Visual Studio
- Docker desktop
- Dotnet SDK 6+
- Dotnet-ef global tool
- AWS Lambda function + AWS credentials for the Remote FundsManagerSigner, check this
- Tilt
- Docker
- (Optional) Polar lightning
- (Optional) Go go 1.24.3 or later (for using the interactive commands in the .justfile)
This project uses NPGSQL(postgres) database provider for EfCore (ORM). You need to install dotnet-ef global tool
dotnet tool install -g dotnet-ef
- To update the database (create it & apply migrations) you shall do:
cd src && dotnet ef database update
- To create a new migration
cd src && dotnet ef migrations add changeInEntityExampleAddedNewField // This is an example
- To remove a non-applied migration (once a migration is applied, you have to drop the database to remove it)
cd src && dotnet ef migrations remove
- Install tilt
- Run
tilt up
on your terminal
- If you want to run a lightweight version of the project use
docker compose --profile polar up -d
on your terminal. Add--profile loop
and--profile mempool
if you need to run them too
- You can run the Polar network by importing the
devnetwork.zip
into it. Then you have to rundocker compose up -d
for the rest of the needed containers to start.
- Run
just run
to build and run the project orjust watch
for hot reload on your terminal
- Run the Debug NG launch setting on your terminal
- You can run the task
NodeGuard local debug
that is in thelaunchSettings.json
from any other IDE, just make sure you run first./docker/extract-macaroons.sh
after starting the infrastructure so NodeGuard can get the latest macaroons
- After completing the previous steps, navigate to
http://localhost:38080
to log in
Check Security.md
This project is licensed under AGPLv3.0. Check LICENSE for more information.