Skip to content
Snippets Groups Projects

XMRChat - a service for content creators to receive messages and tips in Monero.

Merged FiatDemise requested to merge FiatDemise/xmrchat:xmrchat-branch into master

Who?

Douglas Tuman - Host of popular YouTube show, Monero Talk. Host of weekly show Monerotopia livestreamed in multiple platforms. Creator of Monerotopia annual conference - monerotopia.com. Creator of the Copamonero annual Monero-sponsored soccer tournament - copamonero.com. Sets up booth/tent at Libertarian party conventions and Porcfest to spread Monero awareness. Creator of gratuitas.org coffee beans business (and coffee brewer/bartender at XMR meetups/conventions. Founder of xmrbazaar.com online, p2p marketplace. Founder of plug-n-play XMR node implementation, the Nodo - moneronodo.com. X handle @DouglasTuman.

FiatDemise - Guy with project management experience that joined the Monero community in 2020. Helped save Kuno (kuno.anne.media) and volunteers time there as a moderator. Contributed to testing and provided feature feedback for xmrbazaar. Created a Monero for All brochure that is available in several languages and was distributed at Porcfest 2024. X handle @FiatDemise.

Saeed - Front-end web developer found via Monero Jobs & Proposals Telegram group, GitHub https://github.com/sa8ab. Developed dex alcor.exchange, github.com/avral/alcor-ui. Created raceroms.com. Has a network of other front and back end developers he partners with.

What?

XMRChat is website that provides content creators with a service, allowing them a way to receive messages and tips in Monero. We launched https://xmrchat.com/ on 8/4/2024, using it for the first time in MoneroTopia episode 177, where Doug interviewed Saeed, going over the project and what the site is capable of. https://www.youtube.com/watch?v=f1sy8ICsgBQ. We are looking to raise a total amount of 114 XMR at this time, split in 4 milestones as seen above.

Website: https://xmrchat.com/ X Account: https://x.com/xmr_chat Code: https://github.com/sa8ab/xmrchat

How we got started?

In early 2024, FiatDemise was watching a streamer, one that accepts tips from viewers and reads their messages as part of their show. They accept fiat using YouTube Superchats, Rumble Rants, and Streamlabs. They publicly stated they’d like to accept crypto too. FiatDemise started a conversation with their staff to try to get them to use Luke Smith’s Shadowchat. FiatDemise volunteered to pay for a company to install and configure it too. After some promising back and forth, FiatDemise got a response saying the team’s web dev / admin was too busy with current projects and they didn’t want to devote any time towards installing or managing Shadowchat. FiatDemise learned that the market wanted a very simple solution that doesn’t require any installation, hosting, or technical knowledge.

At the time, FiatDemise was volunteering as a tester for xmrbazaar and raised the idea of a simple, hosted superchat solution in that Matrix group. Doug supported it right away, and we began working on requirements and giving shape to the vision with a Balsamiq wireframe. We worked with one developer to create a rough proof of concept. Then we found Saeed, a talented developer who could take the project to the next level. We saw the limitation of RPC, only being able to monitor incoming tips for one wallet, which wouldn’t work with the goal of hosting a solution for many content creators. After research, trial and error, and consultations with VTNerd and Radanne, we got LWS to work. After several more updates, the MVP was launched.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
    • Resolved by plowsoff

      A lot of fluff here. Is this a retroactive funding request?

      amount: 114
      milestones:
        - name: Milestone 1 - MVP (minimum viable product) using LWS
          funds: 42
          done: 8/4/2024
          status: finished
        - name: Milestone 2 - video display of xmrchats with Streamyard and OBS, find creator page, private xmrchats, making repo open source
          funds: 32
          done: 11/20/2024
          status: finished
        - name: Milestone 3 - creator specific minimum tip amount, links to more creator content + new tab UI for that and other settings, audio tip received notification, How To section in FAQ, old xmrchats expiration, admin page, site monitoring.
          funds: 15
          done:
          status: unfinished
        - name: Milestone 4 - on screen special effects and notifications based on tip tier, moderator / cohost page, feature currently live streams, fee system
          funds: 25
          done:
          status: unfinished    
  • Author Contributor

    Caught up on the conversation in Monero Community Workgroup, saw some questions on self hosted vs not, fees, and illegal streams.

    We aim to be a 3rd party service provider, hosting an instance of XMRChat where many content creators can create tip pages. XMRChat software is also available for self hosting. The setup instructions in the readme are for both dev and prod environments.

    We plan to introduce premium features at some point. Verified accounts, notification options for tip over certain amount, channel featured on main page when live, visual effects for higher tip tiers, etc. The project is fully open source, so these will be available for both our service, and self hosted.

    There are two fees, both only for the service. We will not collect any fees from those that self host. The first fee is a small initial charge of .001 XMR for tip page creation. The purpose of that is only to to discourage people from squatting on many tip page URLs.

    The second fee is what we hope will make the service sustainable. For users that pass a threshold of XMR earned, we plan to show a popup or email asking them to tip XMRChat. We'll show the amount of XMR earned last month and an option to tip XMRChat a portion of what they've received. Options will likely be 0%, 2%, 4%, remind me later. Those that tip 4% get get access to the premium features.

    The XMRChat service will need to limit content to only legal content. We'll reserve the right to disable the tip page of any user we catch engaged in criminal activity.

  • Author Contributor

    Adding some more info on Milestone 3 items:

    Creator specific minimum tip amount - allow each content creator to specify their own minimum amount of XMR they'd accept for an xmrchat. Range is as low as 0.0001 XMR (~$0.02) to as high as they'd like. Completed 11/23/2024. https://x.com/xmr_chat/status/1860292262527213689

    Links to more creator content + new tab UI for that and other settings. On the tip page, under the content creator's name, clickable icons appear with links to X, a website, YouTube, Rumble, Twitch and Substack. Completed 12/6/2024. https://x.com/xmr_chat/status/1865139392223797687

    Audio tip received notification - content creators can have xmrchats displayed on screen using Streamyard or OBS. For OBS, we give the option of playing a sound when a tip is received. Completed 11/30/2024. https://x.com/xmr_chat/status/1862962932188897676

    How To section in FAQ - main site, https://xmrchat.com/, has a FAQ with answers for 3 questions. Plan to add a 4th that would explain how to use XMRChat from point of view of content creator and fan. Work on this feature has not yet started. Why tip with XMRChat? Why does XMRChat use Monero? Where to get Monero?

    Old xmrchats expiration - We created a poll to get feedback from our followers on proposal to delete old xmrchats. We want to provide fans the fun experience of interacting with content creators, without creating a trove of data that could one day be abused. We're considering deleting old xmrchats for better privacy, less data = less problems. Based on results of the poll, we plan to offer creators the option of keeping xmrchats for 1yr, 180days, 90days, with the default being 90 days. https://x.com/xmr_chat/status/1863209170679296319 Work on this feature has not yet started.

    Admin page - Create Admin Role. Admin role gets new Admin Page category in Sidebar. Admin page shows list of all tip pages. Shows 1) page slug 2) count of tips 3) xmr earned (actual, not entered) 4) All user entered fields 5) ability to make tip page not load, show not available message or something (in case content illegal). Work on this feature has not yet started.

    Site monitoring - want to get emails to support address when CPU usage > 80%, when a payment expires after 30 minutes, and when automated recurring test tip fails. Work on this feature has not yet started.

    Edited by FiatDemise
  • Author Contributor

    Positive community support received so far:

    Post on X, 19 reposts and 49 likes. https://x.com/xmr_chat/status/1867206910933344389

    Post on monero.town 4 upvotes. https://monero.town/post/5242646

    Updated 12/19/2024.

    Edited by FiatDemise
  • The below quote is from Doug in the linked Youtube video:

    "I've been supplying some funds to Fiat[Demise] as needed and Fiat[Demise] has been supplying funds as well to pay the devs to help us build this [...] it's going to be [...] censorship resistant [...] we're trying to work down what a potential revenue stream might be but as of now yes, no fee [...] these [tools] can't just be charity cases right, we need these tools to be self sufficient, they need to be earning money"

    XMRchat

    • Retroactive funding request for XMRchat.com (source @ https://github.com/sa8ab/xmrchat) + further funded work.
    • Creators sign up after paying an anti spam fee.
    • Primary address/secret view key are manually provided / created off site.
    • Each person signing up will receive a customised tips page @ XMRchat which looks like https://xmrchat.com/monerotalk - comments can be attached to donations and displayed here.
    • a twitch 0auth bot is required Optional. this bot will relay comments to a twitch stream. streamlabs will then take this comment and overlay it onto your stream. OBS source is also supported.

    We'll show the amount of XMR earned last month and an option to tip XMRChat a portion of what they've received. Options will likely be 0%, 2%, 4%, remind me later. Those that tip 4% get get access to the premium features[..]: Verified accounts, notification options for tip over certain amount, channel featured on main page when live, visual effects for higher tip tiers, etc.

    • a Wikipedia 'remind me later' funding model. with extras as above^ like twitter.
    • Monero-lws integration. One of the main plus points imo.

    TipXMR

    • instead of a 0auth twitch bot relaying comments to a twitch stream, TipXMR gives a browser-source which is "one of the most versatile sources available in OBS" and comments are displayed there.
    • no monero-lws integration. monero-wallet-rpc is used. this will not scale - and will only be useful for a site that scrapes fees directly from donations and forwards to creators addresses imo.
    • monero-ts / monero WASM wallet integration huge plus point for ux.
    • delayed by technical difficulties
    • Still not sure about monetisation / afraid of legal aspects.
    Edited by plowsoff
  • Hey there, first up, we as the tipxmr dev team have to apologize to the monero community and most of all to those that originally funded our CCS proposal. We were young and naive and thought "how hard can it be to code this up" - harder than we thought it turned out. We had very high standards, trying to use WASM wallets on the client-side where no info is leaked to the hoster of the TipXMR service, but this lead to a high barrier - which in turn lead to us never shipping anything, which is a real shame. Then XMRchat came and is making the dream for streamers to fund their streams with XMR real. Not quite the same way we envisioned, but at least there is a start and something to build on.

    As @plowsofff has stated, TipXMR wanted to have use a OBS browser source instead of a twitch plugin for having a more robust and censorship resistance method of funding streams. As well not "leaking" view keys to the hoster of the platform. But under the condition that XMRchat vows to pick up these goals, i.e. make it so that streamers only have to use OBS and no plugin and working towards minimizing the information a streamer has to share with the hoster of the platform, we are willing to step aside and let them take our already funded amount.

    We wanted to make something for the Monero community, and did not succeed until now. There were spurts of effort and coding, but not for the past few months. To be realistic, we don't think we will finish our efforts any time soon. For that we apologize. Nevertheless, we learned a lot about coding, the web, and monero along the way.

    Hopefully XMRchat will be everything that TipXMR aspired to be.

    I speak for the entire team here: We are okay to deprecate the TipXMR CCS proposal and pass our collected funds on to this XMRChat proposal.

    Godspeed to XMRchat, @DouglasTuman and @FiatDemise - you rock and we are so happy to see you doing the work :heart:!

  • I can only second the post of @AlexAnarcho. TipXMR was something special to me and I feel some kind of ashamed of how it turned out, but we learned so much. XMRChat is awesome, @DouglasTuman is awesome. It will only get better from now. Maybe some ideas of TipXMR can live in XMRChat some day :smile:

  • Author Contributor

    Thank you very much AlexAnarcho and hundehausen!

    On OBS, XMRChat has this too. Content creators can choose between using Streamyard+Twitch or OBS to display xmrchats on screen. Every content creator automatically gets an OBS browser source page, it's the same as their tip page, but with /obs at the end. For example, tip page xmrchat.com/monerotalk also has xmrchat.com/monerotalk/obs. There's a settings section where the streamer can copy their OBS link, choose to play a sound when an xmrchat comes, and they can choose between having the message stay up or fade away after 30 seconds. I have attached a screenshot of the OBS portion of the settings sidebar. And here is a link to a video when tuxsudo was trying out OBS, relevant portion in minutes 1 to 3.

    https://x.com/tuxpizza/status/1850703160677150821

    On WASM wallets, I admit I don't know anything about those, but we could look into it. Or, if someone with experience wants to submit a pull request to add that, we'll review and test it out.

    settings_sidebar_obs

    Edited by FiatDemise
  • Thank you for the positive encouragement here and handing over of the torch @hundehausen @AlexAnarcho. You both have made contributions to the ecosystem that now far outweigh TipXMR (be it outreach work via presentations / organising meetups... the creation of many other valuable tools) and i commend you both for it.

    Now that we have confirmed XMRchat does support the browser source for OBS i consider it fulfilling its promise of not being centralised and thus completing Milestone 3 - Finished product and launch of service (36 XMR) of TipXMR.

    However @FiatDemise, Milestone 2 - Working Prototype with implemented WASM wallet and front-end mockups has not been achieved. This accounts for 48% of TipXMR's CCS and undoubtedly is/was an important feature for UX++.

    Should the community agree to (rightfully so) award the 36 XMR for completion of Milestone 3, then i would have to contest the funds from Milestone 2 being released. This work can be implemented, and those funds can be used for it still.

    Also, I would like Doug or yourself / and community members to address his comments, specifically:

    these [tools] can't just be charity cases right, we need these tools to be self sufficient, they need to be earning money"

    Perhaps this pushes people toward only wanting to support the self-hosted version this project. Or nobody cares, better to gauge consensus none the less.

  • Author Contributor

    I'll address Doug's comment. The whole project is open source. Any feature developed for the service will also be available in the self-hosted XMRChat. OBS, content links, search page, premium features too like notifications will be available for both. Our goal for the service is to collect enough XMR in tips to pay for ongoing costs of hosting, maintenance, and support. If a long time goes by where we don't see any progress towards that goal, then that would be an unexpected shame, and we'd eventually shut down the service. But even in that worst case scenario, the self-hosted XMRChat will remain. Hope that provides what you're looking for.

    Edited by FiatDemise
  • Author Contributor

    Looks like the reason to use a WASM wallet is to avoid the streamer having to give over their private view key. Is that right? Am I missing any other benefits the WASM wallet provides for the streamer or the tipping fan?

  • Author Contributor

    Forgot to @ @hundehausen and @AlexAnarcho for my WASM benefits question above, please take a look.

    Also, in tipxmr, I see "Once the WASM wallet of the streamer sees the transaction on the network, it is displayed on the stream." Does the streamer run something on their machine that sends data to tipxmr service, so the message gets displayed on OBS? If so, what data is sent? How does tipxmr match up the message to be displayed from the tipping fan to the 0 conf payment?

    Edited by FiatDemise
  • This proposal will be brought up today at the meeting https://github.com/monero-project/meta/issues/1130

  • @FiatDemise yeah, you got it - we wanted to allow the streamer to keep their view secrets to themselves. So the idea was that the streamer will have a browser with their WASM wallet open, which will establish a websocket connection to the tipxmr server. When a streamer receives a donation, they would let the tipxmr server know about it, then tipxmr would update everything accordingly.

    It's kinda convoluted... All for keeping view-only secrets private. Which can be pretty easily worked around if the streamer just creates a new wallet for their streaming purposes.

  • plowsoff mentioned in merge request !530 (merged)

    mentioned in merge request !530 (merged)

  • plowsoff
  • plowsoff added 1 commit

    added 1 commit

    Compare with previous version

  • plowsoff
  • plowsoff
  • plowsoff added 1 commit

    added 1 commit

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading