LiveZEC: ZEC Shielded Tipping for Streamers

Hey everyone, how’s it going?

We are super excited to share the latest project built by the Zcash Brazilian team and community.

App: https://zec.live/
X account: LiveZEC (@LiveZEC) / X

The liveZEC is a tipping platform for streamers that lets you get tipped in shielded ZEC, bringing some features that no other platform out there can match:

  • Privacy. (No KYC, no tracking, total freedom).
  • Self-custody. (Tips go straight to the streamer’s wallet. We only use the wallet’s UFVK to show shielded addresses on the stream overlay).

Right now, if a streamer wants to accept crypto, they have to either use a custodial gateway that holds their funds, charges fees, and forces KYC, or just paste an address in the chat and kill all community interaction. Plus, on transparent blockchains, every tip and message becomes a permanent public record, doxxing the financial identities of both the streamer and the donor forever.

With liveZEC, the viewer scans a QR code and can make a donation from any Zcash wallet, with no KYC, no account creation, and no intermediaries. In addition to the donation, the viewer can send a message through the encrypted shielded memo directly on the Zcash blockchain. In block explorer you can publicly view the transaction memo.

The liveZEC platform uses only the Unified Full Viewing Key (UFVK) to read transactions; Donations go directly to the streamer’s wallet, and the platform holds no control or custody over these funds.

NOTE: Our plans are to integrate with, for example, Noir Wallet and dashboard so that this truly becomes a dApp on Zcash and has zero friction to scale.

The donation notification, along with the memo, appears in OBS in real time following the transaction’s confirmation on the mainnet via SSE, featuring text-to-speech narration by Piper (TTS), as well as customizable notification sounds and overlays.

Authentication on the platform does not require email verification (the email acts as an account identifier and is stored as a hash in the system’s database). During registration, a 12-word BIP-39 Seed Phrase is generated in the browser, and the hash of this seed is stored in the database. This Seed Phrase is used exclusively for account recovery. To recover an account, it is necessary to provide the username or email along with the Seed Phrase.

State of the Streaming Market and Competitor Landscape

The way the internet influences our daily lives has changed aggressively in recent years. Today, being a streamer or an influencer is no longer considered merely a hobby for many, but a legitimate profession.

During a live stream, viewers can actively interact with both the streamer and one another. Currently, at Zcash Brazil, we host weekly live streams to engage with our community, generating richer, more participatory content and strengthening our community bonds. In the current live-streaming landscape, it is evident that beyond advertising and platform payouts, viewers actively participate by sending donations and gifts, demonstrating how streamers have become a profound economic and social phenomenon.

By mid-2024, live streaming was officially recognized as a profession by the Chinese government (Source: Says).
Also in 2024, research by Oxford Economics revealed that YouTube content creators alone contributed approximately £2.2 billion to the UK economy, supporting around 45,000 jobs (Source: BBC).
Brazil is considered one of the largest global markets for live broadcasting. While pinpointing the exact number of streamers in Brazil is challenging, a November 2025 report by Exame indicates that there are 3.8 million influencers in the country, driving a market worth U$4 billion annually (Source: Exame).

There are indeed many platforms similar to liveZEC. In Brazil, most operate using the “Pix” instant payment system, which requires a bank account linked to a KYC (Know Your Customer) identity, imposes fees ranging from 5% to 7%, and offers zero financial privacy. Globally, the majority of platforms rely on PayPal or credit cards options that compromise privacy as both require strict KYC protocols.

Therefore, liveZEC stands out as the only platform capable of guaranteeing absolute privacy, requiring zero KYC for both the streamer and the donor. The only costs incurred are the underlying blockchain transaction fees. Furthermore, the memo sent to the streamer’s overlay is encrypted directly on the blockchain. In a shielded transaction, the only public metadata visible on the network are the timestamp, the transaction fee, and the block confirmations.

Roadmap:

  • Migrate from SQLite to PostgreSQL.
  • Implement a logging system for platform monitoring.
  • Implement automated testing.
  • Achieve comprehensive i18n (internationalization).
  • Establish CI/CD pipelines.
  • Deploy a tested periodic backup system.
  • Integrating with the Noir wallet/dashboard to reduce user friction regarding the UFVK.
  • Conduct a third-party security audit.
  • Introduce donation goals featuring progress bars.

Tools and Tech Stack

FRONT-END Technology
Core React 18.3 + TypeScript 5.6
Build Vite 7.3 (+ node-polyfills, static-copy)
Styling TailwindCSS 3.4 + PostCSS + Autoprefixer
Routing React Router DOM 6.26
Icons Lucide React
Charts Recharts 2.12
Crypto/Seed bip39 (client-side generation)
QR Code qrcode 1.5
Local TTS @mintplex-labs/piper-tts-web + onnxruntime-web
Anti-bot reCAPTCHA v3
API SERVER Technology
Runtime Node.js 20+ (ESM)
Framework Express 4.21
ORM Prisma 7.8 + better-sqlite3 adapter
Database SQLite (better-sqlite3 12.11)
Auth jsonwebtoken 9 + bcryptjs
2FA otplib 13 (TOTP)
Security Helmet 8, strict CORS, express-rate-limit 8.5
Crypto node:crypto, AES-256-GCM, HMAC-SHA256 (blind index)
TTS Piper (server-side)
SCANNER (SHARD) Technology
Runtime Node.js + Express 4.21
Blockchain Zkool (Zcash wallet) via GraphQL
GQL Client graphql-request 6.1 + graphql 16
Local State better-sqlite3 (mappings)
Logs Pino 10
Security Helmet, X-Internal-Key, AES-256-GCM transit cipher

liveZec_diagram_en

15 Likes

Have you seen the recent Glasspane hackathon submission? I’m not familiar enough with either to say anything about the feasibility, but it might be interesting to look into integrating its selective viewing approach with LiveZEC, instead of having streamers share their viewing key.

And is this project open source? I can’t find a repository link.

4 Likes

Amazing job! A important step to mass adoption IMHO.

3 Likes

The code isn’t open-source yet, but it’s definitely on our roadmap. Right now, we’re just laser-focused on getting the production build stable :rocket:.

4 Likes

Thanks for this project, for being patient with me, for the accounts created, the design team who helped with the launch, for buying a superior and expensive domain, for taking the heat regarding the deadlines I set, and for everything done internally as a team.

I would like to share an insight that I learned with zec.live.

This project offered me a unique experience and a learning opportunity. We have so many great projects in the ecosystem, but they often die out after the final milestone precisely because they lack plans for continuity regarding the internal team, business development, marketing, and design. Unlike ZODL, an exceptional case that secured $25 million in private funding, we don’t see other projects with similar potential charting a path forward or leveraging their work to drive adoption of ZEC as a wallet does.

There is a massive gap here due to this lack of continuity or because a project only has 1 individual and not a team. Another example is ZGo - The Zcash Payments App, and if we consider how many payment gateway/aggregators were funded after it, yet it got lost in the crowd due to a lack of team members, expansion, marketing, and business development. I could list so many other examples here.

This is an honest, personal reflection, not something generated by AI lmao. This is an extremely painful reflection on the reality of open-source and grant-driven ecosystems, but it affects a large part of Web3: the gulf between delivering code and building a product.

I believe that for approved projects (system/code) in our ecosystem, we need to have plans in place, such as strategies for expansion and marketing, and see them as products beyond just the Zcash user base, so on, rather than just focusing on code, delivering the final milestone, and leaving local communities to sustain the projects on their own.

There’s a term here in Brazil: “cachorro magro, come e vai embora”. “A skinny dog ​​eats and leaves”.

The real value lies in the human element, human attention is so expensive right now, and this project, for instance, can be an experiment born with a dev team, a designer, a support team, and a leader dedicated to expanding the product.

10 Likes

Congrats! Great tool for a new Steam era.

4 Likes

ZEC Streamers. That’s cool!

4 Likes

I ran a test stream over on Odysee:

6 Likes

That is cool! And worked :smiling_face_with_sunglasses:

4 Likes

Thanks for the donuts. :wink::+1:

Some feedback:

  • It seems something’s off with the weekly overview. Every week starts on Monday, except the last one, which might have started when a donation came in. Not sure what’s happening there.
  • Is there a way to set the timezone? Looks like it’s set to UTC+8 for some reason, even though - I think - neither of us are there.
  • The QR code is a little refined, which could be problematic with suboptimal connections. I scaled it up from the default, and suppose one could put the address in the description as well, but (optionally) taking out the Zcash logo - moving it to the label - would reduce it to a 2-sector. And support for ZcashNames would even make it a single sector QR code.
    I suppose you could hide it and instead add a custom QR code using an image source in OBS, but that wouldn’t respond to incoming donations.
  • For the TTS I’d like to suggest adding customization options for the message itself, using placeholders. For instance “New donation of %A. %M” as default. Possibly with support for different currencies, so it could say “Donation of %ZEC received, equivalent to %EUR”.
  • Tangential to that, I would change the display duration setting to functioning as a minimum, instead of disabling it when TTS is enabled.
  • Would also be cool (with customization) if it understood centizec and millizec, instead of reading out all those zeros.
  • The memo visibility tooltip is in Spanish; mostrar/ocultar memo.
  • In the overlay settings, I’d expect clicking (without dragging) an element in the preview to - like the buttons right below it - set the active/focussed element.
  • I think many streamers would appreciate having more theming options, especially for the donation message. Things like colour schemes, fonts or even a border image. Maybe just a custom CSS option that switches out the style settings with a text input field.
5 Likes

Thank you for the feedback. :wink:

I will focus on addressing the points that were raised. I already have some improvements running on localhost, and a few others are still in the conceptual phase regarding their implementation.

Thanks again for the feedback :innocent:

2 Likes

Odysee mentioned :grinning_face_with_smiling_eyes:

3 Likes