Donations additional to the CCS are always welcome 84H6qm4apZhg4jTvjyanfRfcmd1TtTjkpYMX7MFdPFxQPGsPmmFPYwte2hWBh9EyMQdCTeEpEhfGpTkN3W6ovWAwBrKckBL
- You must have docker and docker-compose installed and ready to go
- Execute the following command to install the project modules and setup the database
git clone https://github.com/tipxmr/tipxmr.git
cd tipxmr
- To start the TipXMR, please run thru the Installation first.
- Start the docker service on your computer (linux:
sudo systemctl start docker
) - From the project root, start the database container with
docker-compose up
- π‘ If you start actively developing on TipXMR, it may be useful to create a bash alias for bringing up the docker container.
- Here is an example for your
.bashrc
or.zshrc
(make sure to adjust the path to the project root path):alias tipxmrdb="sudo systemctl start docker; cd ~/PATH/TO/tipxmr; docker-compose up"
- Here is an example for your
npm run dev
: bring up the tipxmr webapp (localhost:3000
)β οΈ As the project develops, the database models change. Therefore, sometimes it may be necessary tomigrate
the changes (npm run migrate -- dev
)
Run the development server with the following command:
NODE_OPTIONS='--max_old_space_size=4096' next dev
- TipXMR features a payment engine for the steamers to acitvate their account. For this to work (meaning
src/lib/serverWallet
) you need to start amonero-wallet-rpc
.- π‘ Make sure you have
monero-wallet-rpc
installed and in your$PATH
- π‘ Make sure you have
- You can start the
monero-wallet-rpc
with (from the project root):
monero-wallet-rpc --config-file monero/walletRpc.conf
- To kickstart the wallet you can visit http://localhost:3000/api/initServerWallet
We want to provide an open source, non-custodial service for streamers all around the world to accept XMR in their live streams and display some information about the donor.
This will allow for a censorship resistant income source, independent of the big players like Twitch, YouTube, PornHub π and the like.
In the end, TipXMR will be an open source techstack for hosters to provide an OBS-driven donation faucet to streamers.
Thanks to the awesome monero-ts library of woodser that includes a Monero WASM wallet, we can provide users with a non-custodial Monero wallet in their local browser. We are able to write the logic, interface and features beforehand and let our users utilize them themselves. With the Web Assembly Wallet, the hoster of the service is at no time in control of the keys of the users.
- π‘ A streamer chooses to monetize their stream with TipXMR.live.
- π» The streamer then navigates to https://tipxmr.live or any other website hosting this project code.
- β On the site the streamer follows the Sign-up process, generates a new seed in their browser and picks a username
- π The new account is now created and ready to be customized. The streamer will have multiple options to make the donation model fit their brand and style.
- π¬ The streamer now adds a new browser source to their OBS setup. Just like with Streamlabs, this is a unique URL that points to a blank website. New donations will be displayed here and overlayed in the stream.
- π₯οΈ Now the streamer just needs to link their viewers to their TipXMR url (something like
https://tipxmr.live/<StreamerName>
) where donors can enter their messages and are displayed QR codes/XMR-addresses. - πΈ Donations will be sent to streamers WASM wallet, which should be swept in regular intervals.
As you can see, the endusers (i.e. streamer and donors) are not required to have a deep understanding of the Monero network. TipXMR delivers an easy path for streamers to monetize their content powered by the best privacy coin out there.
TipXMR requires very little information about the streamer who creates an account. There is no KYC process or even email required. After picking the username, the streamer can sign in by using their seed or with their private view key and primary address. While it may seem dangerous at first glance to enter a XMR seed into a browser, since TipXMR uses the WebAssembly wallet the seed never leaves the local computer. Of course, a compromised machine would leak the seed and risk loosing funds. However, in the end is OpSec a personal responsibility and we could never guarantee safety. Therefore, we simply recommend sweeping the TipXMR wallet regularly in addition to other cybersafety measures.
On login, the local browser hashes the private view key and primary address. TipXMR will save that cryptographic hash in its database. The hash is used on the server side to authorize the user and log them in.
Once logged in the streamer is presented a dashboard, which offers stats, settings and a basic wallet. While the wallet interface is still a work in progress, the design should be minimal. The wallet should not be used as a store for large amounts, because of the inherent risk of being on a machine connected to the internet. The streamer will be able to provide a withdrawal address in the settings and be able to sweep the entire balance to this address with an easy button.
- π A donor sees that a streamer uses TipXMR and clicks on a link
- π₯οΈ The
https://tipxmr.live/<StreamerName>
site is brought up, which has an embedded video player of the stream and a simple form to specify a message. - β Users can type their message and give themselves a name.
- πͺ The users continues to the next page, which displays an XMR address/QR code and is prompted for payment.
- π± The user uses a mobile wallet or desktop wallet to create the transaction and broadcast it to the network.
- π₯ Once the WASM wallet of the streamer sees the transaction on the network, it is displayed on the stream.
The tipping process is very easy for anybody familiar with a mobile wallet. Monero and cryptocurrencies as a means for payment is still very niche. So we expect in the early days to be used mostly in the Monero community, where usage is not an issue. Nevertheless, we hope that TipXMR can expand the use-case and educate more people on how to use it.
Note: Donors are always anonymous. They do not require an account to tip. This may lead to abusive messages, which could cause trouble for the streamer on a platform like Twitch. Therefore we plan to have an option to approve messages before they are displayed in the stream.
βοΈAGPL-3.0 License