Automatically share your Podcasting 2.0 support on Nostr
Note: This is the simplified starter version of BoostBot. For the full version with advanced features, see the main repository.
BoostBot-Starter automatically shares your Podcasting 2.0 Boost to Nostr whenever you send Boosts to podcasters or musicians.
Example: You boost "My Awesome Podcast" with 1000 sats β BoostBot posts:
ποΈ Boosted "My Awesome Podcast" with 1000 sats
From: @alice
Message: "Great episode! Love the insights on Bitcoin."
#Podcast2 #Value4Value #Lightning #Nostr
- Podcast listeners who boost shows with Bitcoin
- Nostr users wanting to share their podcast discovery
- Supporting the Value4Value podcasting movement
Your Podcast App β Lightning Payment β Helipad β BoostBot-Starter β Nostr Post
π± β‘ π π€ π±
- You boost a podcast in a compatible app (like Podverse, CurioCaster)
- Helipad captures it on your Lightning node
- BoostBot-Starter receives a webhook from Helipad
- Your boost gets posted to your Nostr feed
- π Lightning Node - Umbrel, Start9, or RaspiBlitz
- β‘ Alby Hub - Available in your node's app store (setup guide)
- π Helipad - Monitors Lightning payments (get it here)
- π± Compatible podcast app - Podverse, PodcastGuru, CurioCaster, Castamatic, LNBeats (full list)
- π Nostr account - We'll help you create one below
- π» Basic terminal skills - Copy/paste commands
β οΈ Security Note: Create a NEW Nostr key pair for this bot - don't use your personal keys!
π Current Limitation: Only sent boosts are posted to Nostr (not received boosts or streams)
π You need Nostr keys for the bot to post. This takes 2 minutes:
- Visit nostr.com
- Click "Join Nostr"
- Save both keys somewhere safe:
nsec1...(private key) β You'll need this for Step 5npub1...(public key) β Your bot's Nostr identity- Make sure to click Download Keys so you have them backed up.
- Optional: Follow your bot's
npubfrom your main Nostr account
# Clone the repository
git clone https://github.com/ChadFarrow/BoostBot-Starter.git
# Navigate to directory
cd BoostBot-Starter
# Install dependencies
npm install# Copy the example environment file
cp env.example .envEdit the .env file:
π How to edit .env file (click to expand)
The .env file is hidden by default. Here's how to edit it:
π Mac:
- Finder: Press
Cmd + Shift + .to show hidden files, then double-click.env - Terminal:
open -a "TextEdit" .envornano .env
πͺ Windows:
- File Explorer: View tab β Check "Hidden items", then right-click
.envβ Open with Notepad - Command Prompt:
notepad .env
π§ Linux:
- Terminal:
nano .envorgedit .env
Add your Nostr key (this is the only required setting):
# REQUIRED: Your Nostr private key from Step 1
NOSTR_BOOST_BOT_NSEC=nsec1your_actual_private_key_here
# Optional settings (defaults work fine):
# PORT=3333
# LOG_LEVEL=INFO
# TEST_MODE=false# Start the bot
npm startIn a new terminal, test it:
# Send a test post to Nostr
npm testβ Success looks like:
- Terminal shows:
β Test boost posted to Nostr successfully! - You see the test post in your Nostr client
β If it fails:
- Check your
NOSTR_BOOST_BOT_NSECis correct - Verify the
nsecformat (starts withnsec1)
π Tell Helipad to send webhook notifications to your bot:
-
Open Helipad in your browser
-
Click the gear icon βοΈ (top-right corner)
-
Go to "Webhooks" tab
-
Click "Add Webhook"
-
Fill out the form:
URL: http://YOUR_LOCAL_IP:3333/helipad-webhook Trigger on amount: Any amount Trigger on: β New boosts, β New streams, β New sent boosts Enabled: β Checked -
Find YOUR_LOCAL_IP:
π How to find your local IP address (click to expand)
π Mac: ipconfig getifaddr en0
πͺ Windows: ipconfig (look for IPv4 Address)
π§ Linux: hostname -I
Example: If your IP is 192.168.1.42, use:
http://192.168.1.42:3333/helipad-webhook
- Click "Save changes"
- Send a boost from your podcast app (even 1 sat works)
- Check your bot logs for:
π© Received boost webhook... - Check Nostr for your boost post!
π You're done! Your boosts will now automatically appear on Nostr.
Check your Nostr key:
# Your .env should look like this:
NOSTR_BOOST_BOT_NSEC=nsec1abc123...very_long_string...xyz789Common issues:
- β Missing
nsec1prefix - β Key has spaces or line breaks
- β Using
npubinstead ofnsec
-
Verify BoostBot-Starter is running:
curl http://localhost:3333/health # Should return: {"status":"ok"} -
Check Helipad webhook URL:
- Make sure it's
http://YOUR_IP:3333/helipad-webhook - Use your actual local IP address
- Port 3333 should be open
- Make sure it's
-
Test with curl:
curl -X POST http://localhost:3333/helipad-webhook \ -H "Content-Type: application/json" \ -d '{"action":2,"value_msat_total":1000,"podcast":"Test"}'
Check the boost conditions:
- Must be a sent boost (not received)
- Must have
value_msat_total > 0 - Must have
action: 2(boost action)
Check your logs:
# Look for these messages:
π© Received boost webhook...
β
Posted boost to Nostr successfullyThe .env file is hidden by default:
- Make sure you ran
cp env.example .env - Enable hidden file visibility (see Step 3 above)
- Check you're in the
BoostBot-Starterdirectory
If running locally:
npm start
# Logs appear directly in terminalBoostBot-Starter expects this JSON from Helipad:
{
"index": 123,
"time": 1234567890,
"value_msat": 1000000,
"value_msat_total": 1000000,
"action": 2,
"sender": "user123",
"app": "helipad",
"message": "Great episode!",
"podcast": "My Podcast",
"episode": "Episode 1",
"tlv": "..."
}Posts to Nostr when:
actionis2(Boost)value_msat_total> 0
# Install dependencies
npm install
# Start development server
npm start
# Test the webhook endpoint
npm test
# Check code style (if you add linting)
npm run lintboostbot-starter/
βββ π README.md # This guide
βββ π env.example # Environment template
βββ π package.json # Dependencies & scripts
βββ π .gitignore # Git ignore rules
βββ π§ͺ test-webhook.js # Test script
βββ π€ helipad-webhook.js # Main webhook handler
βββ π lib/ # Core logic
βββ π logger.js # Emoji logging
βββ π nostr-bot.js # Nostr posting
- π Found a bug? Open an issue
- β Need help? Check the troubleshooting section above
- π¬ Community: Find us on Nostr or in Value4Value spaces
- π¨βπ» Creator: Follow @ChadFarrow on Nostr -
npub177fz5zkm87jdmf0we2nz7mm7uc2e7l64uzqrv6rvdrsg8qkrg7yqx0aaq7
MIT License - Feel free to modify and distribute!
π Happy boosting! Share those sats and spread the word about great podcasts.