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)

Algo-burner - Burner account for the Algorand blockchain

algo-burner Burner address for Algorand's blockchain Apparently it was a problem

1 Jan 12, 2022
Random Password Generator With Python

Random_Password_Generator example output length

Mahdi Rostami Pooya 2 Dec 22, 2021
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
Python Steganography data hiding in image

Python-Steganography Python Steganography data hiding in image data encryption and decryption im here you have to import stepic module 1.open CMD 2.ty

JehanKandy 10 Jul 13, 2022
Crypto Portfolio Clustering with and without optimization techniques (elbow method, PCA).

Crypto Portfolio Clustering Crypto Portfolio Clustering with and without optimization techniques (elbow method, PCA). Analysis This is an anlysis of c

David L 0 Feb 18, 2022
A bot that escrows crypto transactions on Reddit

EscrowBot I NEED BCH TESTNET FOR TESTING. Please send me some BCH testnet if you have some: bchtest:qz5eur3prqyvd8u77m6fzf9z6cruz9q7vq4qvgdnuk Depende

Nathan Lim 10 Nov 10, 2022
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 02, 2023
SimpleWallet - Simple wallet for Bitcoin

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

Mystic 1 Jan 08, 2022
Mizogg-Bitcoin-Tools - A Python Tools for Bitcoin Information Balance, HASH160, DEC

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

48 Jan 02, 2023
Deriving RSA public keys from message-signature pairs

The repository contains: Experimental code to calculate RSA public keys based on two known message-signature pairs

Silent Signal 120 Dec 31, 2022
BETCOIN BET is a digital currency system created with python

BETCOIN BET is a digital currency created with python and flask with features of a centralized bank, wallet system, and open transaction history of al

Ujjwal Kumar 3 Nov 16, 2021
Hasher Hash, Compare and Verify your files Translations

Hasher Hash, Compare and Verify your files Translations In order to translate Hasher to a language you must add a folder with the language abbreviatio

Jeyson Flores 14 Apr 01, 2022
Tutela: an Ethereum and Tornado Cash Anonymity Tool

Tutela: an Ethereum and Tornado Cash Anonymity Tool The repo contains open-source code for Tutela, an anonymity tool for Ethereum and Tornado Cash use

TutelaLabs 96 Dec 05, 2022
This program can encrypt/ decrypt any string

Ceasar_cipher Hey this is J0ey, this program is a very basic Caesar cipher encoder/decoder. In order to use this program, you will need to have Python

1 Jan 11, 2022
Python Dash app that tracks whale activity in cryptocurrency markets.

Introduction Welcome! This is a Python-based Dash app meant to track whale activity in buy / sell walls on crypto-currency exchanges (presently just o

Paul Jeffries 549 Dec 25, 2022
Get the length of the Instagram encrypted password

instagram-weak-encryption Get the length of the Instagram encrypted password Introduction Instagram and Facebook encrypt the password submitted at log

Giuseppe Criscione 19 Dec 09, 2022
Microllect - Fully automated btc wallet hack,using advanced protocols

Microllect - Fully automated btc wallet hack,using advanced protocols

Arya kaghazkanani 40 Dec 17, 2022
Cryptocurrency trading bot with a graphical user interface with support for simulations, backtests, optimizations, and running live bots.

Cryptocurrency trading bot with a graphical user interface with support for simulations, backtests, optimizations, and running live bots.

Mihir Shrestha 834 Dec 30, 2022
Learn Blockchains by Building One, A simple Blockchain in Python using Flask as a micro web framework.

Blockchain ✨ Learn Blockchains by Building One Yourself Installation Make sure Python 3.6+ is installed. Install Flask Web Framework. Clone this repos

Vaibhaw 46 Jan 05, 2023
Linear encryption software programmed with python

Echoder linear encryption software programmed with python How does it work? The text in the text section runs a function with two keys entered keys mu

Emre Orhan 4 Dec 20, 2021