Balance of Satoshis Telegram Bot

Project and readme:

RaspiBlitz install script: usage:

Install Balance of Satoshis from the SERVICES menu

or on older versions:

# update NodeJS
bash off
bash on
# download bos install script
# run
bash on

Manual installation on the RaspiBlitz:

# check and install NodeJS

# create bos user
sudo adduser --disabled-password --gecos "" bos

# set up npm-global
sudo -u bos mkdir /home/bos/.npm-global
sudo -u bos npm config set prefix '/home/bos/.npm-global'
sudo bash -c "echo 'PATH=$PATH:/home/bos/.npm-global/bin' >> /home/bos/.bashrc"

# download source code
sudo -u bos git clone /home/bos/balanceofsatoshis
cd /home/bos/balanceofsatoshis

# make sure symlink to central app-data directory exists ***"
# not a symlink.. delete it silently
sudo rm -rf /home/bos/.lnd
# create symlink
sudo ln -s "/mnt/hdd/app-data/lnd/" "/home/bos/.lnd"

# make sure rtl is member of lndadmin
sudo /usr/sbin/usermod --append --groups lndadmin bos

# install bos
sudo -u bos npm install -g balanceofsatoshis

Run from the bos user:

sudo su - bos
bos help

To set up a Telegram bot connected to your node

WARNING: the Telegram Bot will send encrypted messages about the events on your node over clearnet, which are decrypted by the central Telegram Bot API

To avoid leaking your public IP to Telegram use torify before the bos telegram command to route communication through Tor: torify bos telegram related issue:

  • Got to /newbot

  • Copy the API key

  • in the terminal (in tmux if want to keep running): torify bos telegram

  • paste the API key to the terminal

  • In your new TG bot: /connect

  • paste the connection code to the terminal for bos.

gist with comments

Adding BOS-Telegram Bot to your startup scripts

Set a custom node (testnet, signet etc.)

# export the connection string
CERT=$(base64 /mnt/hdd/lnd/tls.cert | tr -d '\n')
MACAROON=$(sudo base64 /mnt/hdd/lnd/data/chain/bitcoin/${CHAIN}/admin.macaroon | tr -d '\n')

# L2rpcportmod is:   0 |  1 | 3
if [ "${chain}" == "main" ]; then
elif [ "${chain}" == "test" ]; then
elif [ "${chain}" == "sig" ]; then

echo "{ \"cert\": \"$CERT\", \"macaroon\": \"$MACAROON\", \"socket\": \"$LAN_IP:1${L2rpcportmod}009\"}"

# import to bos

# choose a name to identify your node in bos

# create a credential json
sudo -u bos mkdir -p /home/bos/.bos/$NODE_NAME/

# paste the connection string exported above to `/home/bos/.bos/$NODE_NAME/credentials.json` with nano or run:
echo "{ \"cert\": \"$CERT\", \"macaroon\": \"$MACAROON\", \"socket\": \"$LAN_IP:1${L2rpcportmod}009\"}" | sudo -u bos tee /home/bos/.bos/$NODE_NAME/credentials.json

# test
sudo -u bos /home/bos/.npm-global/bin/bos balance --node $NODE_NAME

Last updated