Accept Bitcoin donations on Twitch, and integrate them into your alerts!

Overview

The system in action

Check out how seamlessly the project works!

Support the project

You can tip me with some sats here!
This is, and always will be, entirely free to use of course!

Rough test setup guide

This is currently intended for testing only.
You need to have git, python, and it's virtualenv module installed.

  1. Clone the repo and cd into it
  2. Create and enable a virtualenv
  3. In the venv, run pip install -r requirements.txt
  4. Get an lntxbot wallet
  5. Get an API key from lntxbot by messaging it /api full
  6. Log in to https://streamlabs.com/
  7. Register an App
    As this is an app just for you, you can fill the name, description
    phone, and email fields with whatever you want. They are not relevant.
    In the "Whitelist Users" field, enter your Twitch username.
    In "Redirect URI", enter "http://localhost:6969".
  8. After hitting "Create", leave this page open for now, as it contains
    your Client ID and Secret, which you will need in the next step
  9. Run python initial_setup.py and follow the instructions (enter localhost as the IP for now)
  10. Run python wait_for_token.py and leave this running
  11. On the Streamlabs App page, click the link that says "Sample Authentication URL"
    towards the bottom of the page
  12. Click "Approve"; this should redirect you to a plain text page that tells you to stop the server
  13. Go back to the terminal that is running wait_for_token.py,
    and hit ctrl+c to stop the server
  14. You should now be able to run . ./start_lnbits.sh, which should launch
    LNbits in the background, making it reachable at http://localhost:5000/
  15. Run python webhook.py and leave it running in the background
  16. In LNbits, create a wallet, and enable the SatsPayServer extension under "Manage extensions"
  17. In SatsPayServer, hit "NEW CHARGE," and fill out all the required fields
    In the "webhook" field, enter http://localhost:5001/
  18. Pay the charge with any lightning wallet
    (After hitting "CREATE CHARGE," the charge should appear in a list after
    an automatic refresh. On the very left side of that list entry is a small
    grey button that will open the payment link in a new tab.)

If everything worked, you should see a new donation pop up here (remember to refresh).
If something went wrong, please submit an issue!

Contributing

I want this to be a project that allows streamers on Twitch to integrate Bitcoin donations
into their on-stream alerts with as little setup as possible.
Things you can help with:

  • Clarifying steps in the guide, or linking to/writing more detailed guides to get non-technical users up to speed
  • Writing scripts that would make this run on Windows (in case a streamer opts for self-hosting on Windows)

I'm not at all used to maintaining projects with other contributors, so I don't know, just follow the
common etiquette or whatever if you wanna help :)
I would especially appreciate help with just making things cleaner and more efficient (I'm not a professional),
as well as potentially integrating services other than Streamlabs (not sure if there are any
that are widely used like Streamlabs and actually have an API for this).

Comments
  • Create LNbits extension

    Create LNbits extension

    Optimally, parts of this repo should become an LNbits extension:

    • Most of what is currently in settings.json could be set via UI
    • API endpoint that serves as redirect for Streamlabs access_token (essentially wait_for_token.py)
    • webhook.py as background service

    The extension should also allow modification of the donation format that is sent here.

    The extension's front end would ideally be a simple tipping form that asks for "Name," "Message," and "Amount" in either sats or any of the supported currencies, converting the amount to sats to create an invoice.
    Another option that would be great to have available is a Twitch login button that auto-fills the "Name" field, and sets the identifier to a unique ID value, like the Twitch User ID (see here).

    I've created a branch to work on this: https://github.com/Fittiboy/lnbits/tree/TwitchAlerts Will be closed by lnbits/lnbits#227

    enhancement help wanted 
    opened by Fittiboy 5
  • Your tip link doesn't work from BLW

    Your tip link doesn't work from BLW

    Hi,

    I tried to send tip from the BLW wallet (@btcontract - author of the LNURL) but I got the error:

    "requirement failed: Action domain mismatch"

    From the Blixt wallet - there is everything OK.

    I think your chain URLs from LNURL communication has different domains but the LNURL protocol requires to have the same domains (#6 point - "url domain must be the same as callback domain at step 3" in example comment)

    Is it your the bug or the BLW?

    opened by Perlover 3
  • Integreate StreamElements API

    Integreate StreamElements API

    It appears that StreamElements is currently working on providing a nice API. They have a WIP API reference which includes an endpoint to post tips, exactly what is needed to integrate this.

    Would be great to have this!

    documentation enhancement help wanted 
    opened by Fittiboy 1
  • Sovereign

    Sovereign

    This PR adds a guide on how to cut out all middlemen and run this in self-sovereign mode.
    The Bitcoin way.
    Closes #5

    • [ ] How to set up your own node (Just link to Raspiblitz)
    • [ ] How to change the funding source of LNbits
    documentation enhancement 
    opened by Fittiboy 0
  • Enable full self-sovereignty

    Enable full self-sovereignty

    The original purpose of this project was to cut out all middlemen.
    To this end, the only change that has to be made is the LNbits funding source.
    Two short guides are required for this:

    • [ ] How to set up your own node (Just link to Raspiblitz)
    • [ ] How to change the funding source of LNbits

    It should also be considered to potentially use Raspiblitz' LNbits

    documentation enhancement 
    opened by Fittiboy 0
  • Automate Bitclouds.sh Setup

    Automate Bitclouds.sh Setup

    A lot of the setup required for Bitclouds.sh hosting can be automated.

    • [ ] Purchasing a Bitclouds VPS instance
    • [ ] Checking remaining balance
      • [ ] Low balance alerts
        • [ ] Discord webhook?
        • [ ] Telegram bot?
        • [ ] Email?
    • [ ] Getting a top-up invoice
    • [ ] Installing git and python3-venv
    • [ ] Caddy
      • [ ] Adding the repo
      • [ ] Installing caddy
      • [ ] Creating the Caddyfile
    documentation enhancement 
    opened by Fittiboy 0
  • Add hosting guides for #2

    Add hosting guides for #2

    This PR adds guides on how to actually host this publicly.
    Closes #2

    • [ ] Purchasing a Bitclouds VPS instance
    • [ ] Checking remaining balance
      • [ ] Low balance alerts
        • [ ] Discord webhook?
        • [ ] Telegram bot?
        • [ ] Email?
    • [ ] Getting a top-up invoice
    • [ ] Installing git and python3-venv
    • [ ] Caddy
      • [ ] Adding the repo
      • [ ] Installing caddy
      • [ ] Creating the Caddyfile
    documentation enhancement 
    opened by Fittiboy 0
  • Create guide on how to deploy publicly

    Create guide on how to deploy publicly

    Currently, the system is fully functional, but does not yet include a guide on how to publicly deploy.

    • [ ] Acquiring a domain
      • [ ] Full domain name
      • [ ] Duck DNS
    • [ ] Guide on how to self-host
      • [ ] Setting up nginx
        • [ ] SSL cert via certbot
        • [ ] Enabling reverse-proxy
        • [ ] Opening the necessary port (443)
      • [ ] Setting up Cloudflare
        • [ ] Creating an account
        • [ ] Adding domain to Cloudflare
        • [ ] Hiding behind Cloudflare
        • [ ] Whitelisting Cloudflare IP range
    • [ ] Guide on how to host via Bitclouds
      • [ ] Basic Bitclouds setup guide
      • [ ] Keeping Bitclouds instance up (keep funding it!)
      • [ ] Installing git, python3-venv, and Caddy
      • [ ] Creating a Caddyfile
    documentation enhancement 
    opened by Fittiboy 0
Releases(v1.0.2)
  • v1.0.2(Aug 4, 2021)

  • v1.0.1(Aug 3, 2021)

    This small update adds user whitelisting! The whitelist_user.py script allows users to add their user ID to the LNBITS_ALLOWED_USERS environment variable, preventing people from creating wallets on their LNbits instance. This change is reflected in the guide as well.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Aug 3, 2021)

Mizogg-Bitcoin-Tools - A Python Tools for Bitcoin Information Balance, HASH160, DEC

Mizogg-Bitcoin-Tools Tools for Bitcoin Information Balance, HASH160, DEC, Englis

null 48 Jan 2, 2023
Bit is Python's fastest Bitcoin library and was designed from the beginning to feel intuitive, be effortless to use, and have readable source code.

Bit is Python's fastest Bitcoin library and was designed from the beginning to feel intuitive, be effortless to use, and have readable source code.

Ofek Lev 1.1k Jan 2, 2023
Looks for Bitcoin Wallets starting 1 compresses and Uncompressesed, segwit address and MultiSig starting 3.

Looks for Bitcoin Wallets starting 1 compresses and Uncompressesed, segwit address and MultiSig starting 3. Pick your starting and stop numbers to start looking. Need a database of addresses to check. Made with https://pypi.org/project/PySimpleGUI/

null 10 Dec 22, 2022
Generate bitcoin public and private keys and check if they match a filelist of existing addresses that have a nonzero balance

btc-heist Running Install deps, i.e., python3 -m pip install -r requirements.txt Download the CSV dump of all bitcoin addresses with a balance and cut

Denis Khoshaba 103 Dec 5, 2022
Create and finder all address wallet bitcoin and check balance , transaction

BTCCrackWallet Create and finder all address wallet bitcoin and check balance , transaction bitcoin wallet generator generated address wallet , public

MMDRZA 11 Nov 26, 2022
Python Script for signingn LetsEncrypt certificate with certbot, and update them into Fortigate

Python Script for signingn LetsEncrypt certificate with certbot, and update them into Fortigate (to be used into the WEB VPN or Load Balancer certificate)

null 6 Jan 3, 2023
Connects to an active BitCoin Peer and communicates in order to locate a specific block number (height)

BitCoin-Peer-Client Connects to an active BitCoin Peer, and locates a predetermined block number (height) by downloading block headers. Once required

Henry Song 1 Jan 16, 2022
Bitcoin Clipper malware made in Python.

a BTC Clipper or a "Bitcoin Clipper" is a type of malware designed to target cryptocurrency transactions.

Nightfall 96 Dec 30, 2022
The Intelligent Bitcoin Miner, Part II

The Intelligent Bitcoin Miner, Part II At a Glance This app simulates the behavior and profitability of Bitcoin miners for The Intelligent Bitcoin Min

Karim Helmy 20 Dec 16, 2022
ūüďäPython implementation of the Colin Talks Crypto Bitcoin Bull Run Index (CBBI).

Colin Talks Crypto Bitcoin Bull Run Index (CBBI) This is a Python implementation of the Colin Talks Crypto Bitcoin Bull Run Index (CBBI). It makes use

Kamil Monicz 86 Jan 2, 2023
This is a simple Bitcoin non-deterministic wallet address generator coded in Python 3.

This is a simple Bitcoin non-deterministic wallet address generator coded in Python 3. It generates a Private Key in different formats (hex, wif and compressed wif) and corresponding Public Addresses, raw, P2WPKH addresses starting with prefix 1, P2SH addresses starting with prefix 3 as part of Segwit soft fork and Bech32 addresses with prefix bc1 P2WPKH and P2WSH.

null 7 Dec 22, 2022
Bitcoin Wallet Address Generator

Bitcoin Wallet Address Generator This is a simple Bitcoin non-deterministic wallet address generator coded in Python 3. It generates a Private Key in different formats (hex, wif and compressed wif) and corresponding Public Addresses, raw, P2WPKH addresses starting with prefix 1, P2SH addresses starting with prefix 3 as part of Segwit soft fork and Bech32 addresses with prefix bc1 P2WPKH and P2WSH.

null 11 Dec 29, 2022
Address Validator (Bitcoin & Monero)

The Bitcoin address is an identifier of 26-35 alphanumeric characters, beginning with the number 1, 3 or bc1. 0, O, I, l are removed to avoid visual a

null 0 Mar 29, 2022
Simple bitcoin ticker for the Pimorono Inky pHAT Red.

bitcoin-ticker Simple bitcoin ticker for the Pimorono Inky pHAT Red. Equipment Raspberry Pi Zero W v1.1 or Pi 2 model b v1.1 Pimorono Inky pHAT Red (S

null 2 Mar 15, 2022
SimpleWallet - Simple wallet for Bitcoin

Simple Wallet This is a basic python starter package to be used as a template fo

Mystic 1 Jan 8, 2022
BlockVis - Create beautiful visualizations of Bitcoin Blockheaders

BlockVis Create beautiful visualizations of Bitcoin Blockheaders How to run To r

Egge 2 Jan 5, 2022
Bsvlib - Bitcoin SV (BSV) Python Library

bsvlib A Bitcoin SV (BSV) Python Library that is extremely simple to use but mor

Aaron 22 Dec 15, 2022
Bitcoin & Lightning Container Manager for facilitating development tools

Torch-cli Bitcoin & Lightning Container Manager for facilitating development too

Gray Finance 3 Aug 22, 2022
Aplicação de monitoramento de valores de criptos através da API do Mercado Bitcoin.

myCrypto_MercadoBitcoin Aplicação de monitoramento de valores de criptos através da API do Mercado Bitcoin. Apoie esse projeto! ?? ?? Olá! Você pode r

Vinícius Azevedo 122 Nov 27, 2022