Beldex Plugin Integration (#1042)

* created yml file for the beldex daemon and wallet

* beldex integration in btcpay-server

* build script for beldex image

* Update Docker image name for beldex

* Update Docker images to official registries

* Auto-load wallet with BDX plugin intead of wallet RPC

---------

Co-authored-by: victor-tucci <victor.tucci@beldex.io>
Co-authored-by: victor-tucci <80321576+victor-tucci@users.noreply.github.com>
This commit is contained in:
codeman 2026-02-16 18:57:38 +05:30 committed by GitHub
parent 240cda561a
commit d5c66cbcc4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 98 additions and 0 deletions

1
beldex-wallet-cli.ps1 Normal file
View File

@ -0,0 +1 @@
docker exec -it btcpayserver_beldexd beldex-wallet-cli $args

3
beldex-wallet-cli.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
docker exec -it btcpayserver_beldexd beldex-wallet-cli "$@"

View File

@ -102,6 +102,7 @@ echo " Archiving files in $(pwd)…"
--exclude="volumes/generated_mwebd_datadir" \ --exclude="volumes/generated_mwebd_datadir" \
--exclude="volumes/generated_elements_datadir/_data" \ --exclude="volumes/generated_elements_datadir/_data" \
--exclude="volumes/generated_xmr_data/_data" \ --exclude="volumes/generated_xmr_data/_data" \
--exclude="volumes/generated_bdx_data/_data" \
--exclude="volumes/generated_dogecoin_datadir/_data/blocks" \ --exclude="volumes/generated_dogecoin_datadir/_data/blocks" \
--exclude="volumes/generated_dogecoin_datadir/_data/chainstate" \ --exclude="volumes/generated_dogecoin_datadir/_data/chainstate" \
--exclude="volumes/generated_dash_datadir/_data/blocks" \ --exclude="volumes/generated_dash_datadir/_data/blocks" \

View File

@ -354,6 +354,26 @@ cd "$(dirname $DOCKERFILE)"
docker build -f "$DOCKERFILE" -t "btcpayserver/monero:0.18.4.3" . docker build -f "$DOCKERFILE" -t "btcpayserver/monero:0.18.4.3" .
cd - && cd .. cd - && cd ..
# Build beldex
# Default Dockerfile (amd64)
DOCKERFILE="Beldex/7.0.0/Dockerfile"
IMAGE_NAME="beldex/beldex:7.0.0"
ARCH="$(uname -m)"
# ARM architectures fallback (if you later add ARM Dockerfiles)
if [[ "$ARCH" == "armv7l" || "$ARCH" == "aarch64" ]]; then
echo "ARM architecture detected ($ARCH) no Beldex ARM Dockerfile available"
exit 1
fi
echo "Building ${IMAGE_NAME}"
git clone https://github.com/btcpayserver/dockerfile-deps beldex
cd beldex
git checkout master
cd "$(dirname $DOCKERFILE)"
# Build image
docker build -f Dockerfile -t "${IMAGE_NAME}" .
cd - && cd ..
# Build nbxplorer # Build nbxplorer
# https://raw.githubusercontent.com/dgarage/nbxplorer/v2.5.30-1/Dockerfile # https://raw.githubusercontent.com/dgarage/nbxplorer/v2.5.30-1/Dockerfile

View File

@ -354,6 +354,26 @@ cd "$(dirname $DOCKERFILE)"
docker build -f "$DOCKERFILE" -t "btcpayserver/monero:0.18.4.3" . docker build -f "$DOCKERFILE" -t "btcpayserver/monero:0.18.4.3" .
cd - && cd .. cd - && cd ..
# Build beldex
# Default Dockerfile (amd64)
DOCKERFILE="Beldex/7.0.0/Dockerfile"
IMAGE_NAME="beldex/beldex:7.0.0"
ARCH="$(uname -m)"
# ARM architectures fallback (if you later add ARM Dockerfiles)
if [[ "$ARCH" == "armv7l" || "$ARCH" == "aarch64" ]]; then
echo "ARM architecture detected ($ARCH) no Beldex ARM Dockerfile available"
exit 1
fi
echo "Building ${IMAGE_NAME}"
git clone https://github.com/btcpayserver/dockerfile-deps beldex
cd beldex
git checkout master
cd "$(dirname $DOCKERFILE)"
# Build image
docker build -f Dockerfile -t "${IMAGE_NAME}" .
cd - && cd ..
# Build nbxplorer # Build nbxplorer
# https://raw.githubusercontent.com/dgarage/nbxplorer/v2.5.30-1/Dockerfile # https://raw.githubusercontent.com/dgarage/nbxplorer/v2.5.30-1/Dockerfile

View File

@ -87,6 +87,14 @@
"EclairFragment": null, "EclairFragment": null,
"PhoenixdFragment": null "PhoenixdFragment": null
}, },
{
"Crypto": "bdx",
"CryptoFragment": "beldex",
"CLightningFragment": null,
"LNDFragment": null,
"EclairFragment": null,
"PhoenixdFragment": null
},
{ {
"Crypto": "lbtc", "Crypto": "lbtc",
"CryptoFragment": "liquid", "CryptoFragment": "liquid",

View File

@ -0,0 +1,33 @@
version: "3"
services:
beldexd:
restart: unless-stopped
container_name: btcpayserver_beldexd
image: beldex/beldex:7.0.0
command: beldexd --rpc-bind-ip=0.0.0.0 --confirm-external-bind --rpc-bind-port=19091 --non-interactive --block-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/beldexlikedaemoncallback/block?cryptoCode=bdx&hash=%s" --hide-my-port
expose:
- "19091"
volumes:
- "bdx_data:/data"
beldexd_wallet:
restart: unless-stopped
container_name: btcpayserver_beldex_wallet
image: beldex/beldex:7.0.0
command: beldex-wallet-rpc --rpc-bind-ip=0.0.0.0 --disable-rpc-login --confirm-external-bind --rpc-bind-port=19092 --non-interactive --trusted-daemon --daemon-address=beldexd:19091 --wallet-dir=/wallet --tx-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/beldexlikedaemoncallback/tx?cryptoCode=bdx&hash=%s"
expose:
- "19092"
volumes:
- "bdx_wallet:/wallet"
depends_on:
- beldexd
btcpayserver:
environment:
BTCPAY_BDX_DAEMON_URI: http://beldexd:19091
BTCPAY_BDX_WALLET_DAEMON_URI: http://beldexd_wallet:19092
BTCPAY_BDX_WALLET_DAEMON_WALLETDIR: /root/bdx_wallet
volumes:
- "bdx_wallet:/root/bdx_wallet"
volumes:
bdx_wallet:
bdx_data:

View File

@ -0,0 +1,11 @@
version: "3"
services:
beldexd:
ports:
- "127.0.0.1:19091:19091"
beldex_wallet:
ports:
- "127.0.0.1:19092:19092"
required:
- "beldex"

View File

@ -19,6 +19,7 @@ install_tooling() {
"btcpayserver_viacoind" "viacoin-cli.sh" "Command line for your Viacoin instance" \ "btcpayserver_viacoind" "viacoin-cli.sh" "Command line for your Viacoin instance" \
"btcpayserver_elementsd" "elements-cli.sh" "Command line for your Elements/Liquid instance" \ "btcpayserver_elementsd" "elements-cli.sh" "Command line for your Elements/Liquid instance" \
"btcpayserver_monerod" "monero-wallet-cli.sh" "Command line for your Monero instance" \ "btcpayserver_monerod" "monero-wallet-cli.sh" "Command line for your Monero instance" \
"btcpayserver_beldexd" "beldex-wallet-cli.sh" "Command line for your Beldex instance" \
"joinmarket" "jm.sh" "Command line for your joinmarket instance" \ "joinmarket" "jm.sh" "Command line for your joinmarket instance" \
"ndlci_cli" "ndlc-cli.sh" "Command line for NDLC-CLI" \ "ndlci_cli" "ndlc-cli.sh" "Command line for NDLC-CLI" \
"pihole" "pihole.sh" "Command line for running pihole commands" \ "pihole" "pihole.sh" "Command line for running pihole commands" \