Inspiration
Live streaming runs on trust that nobody can verify. Bot farms fake audiences with round-the-clock pre-recorded restreams. Giveaways are picked by web randomizers that anyone can tamper with, so chat suspects the prizes go to friends. Charity streams run on spreadsheets and counters, and donors hold back when goals cannot be audited.
Honest streamers have no cheap way to prove they are honest. We wanted to give them a green check that viewers and sponsors can verify themselves.
What it does
Digital Trust Live (shown as MD Trust Live on Android) is a trust layer for Twitch with two parts, backed by a verification service:
- Android companion: the streamer's phone signs a live activity journal (session start, recurring pulses, session end) with a P-256 key stored in Android Keystore.
- Twitch Extension: viewers see a green verified activity status that combines journal integrity, pulse freshness and Twitch live status. FairDrop adds giveaways whose results can be checked against a committed seed and a frozen participant list.
We are explicit about scope: we sign device activity, not the video itself. The video travels directly through Twitch.
Why it is convenient
- No wallet, no crypto, no account and no installation for viewers
- No outside sign-ups for streamers: link the channel with a six-digit pairing code, valid for five minutes
- Evidence can be exported and checked offline, outside the extension
- An interface in 7 languages (EN, ES, DE, FR, RU, UA, JA)
How it works
Phone signs events → backend verifies signatures and continuity → the Twitch panel shows the status → optionally, a Merkle root of a range of events is published to Solana in a Memo transaction.
Every record is linked to the previous one, so altering or reordering the journal is detectable. Short-lived server nonces and timestamp checks limit replay of earlier requests:
$$H_n = \text{SHA256}\left(H_{n-1} \parallel \text{canonical record}\right)$$
Any change to any record breaks the chain, so tampering is visible to everyone who checks.
How we built it
We built the Twitch Extension, the backend and the Android companion with OpenAI Codex, using the Twitch API.
- Flutter interface and a native Android signing and session service; keys never leave Android Keystore
- TypeScript backend (EBS) with PostgreSQL migrations and tests, deployed with Docker
- Records are canonical JSON hashed with SHA-256, delivered idempotently with retries
- Solana anchoring is optional and stores prepared transaction bytes before broadcast, so delivery survives interruptions
- Viewers never touch a wallet
Challenges
- Separating "the device session is active" from "the stream is really live on Twitch", while keeping the blockchain invisible to viewers
- Proving that a real device is active without analyzing video. We deliberately verify device activity and the integrity of the event log, not the video itself, which keeps it cheap, private and friendly to VTubers and faceless streamers
What we learned
The real fraud on live platforms is not a swapped face. It is bot-farm restreams and tampered randomizers, and both become much harder with signed device activity and a reproducible giveaway.
Accomplishments
- A working demonstration on Twitch Hosted Test and Android, with screenshots, a protocol specification and validation results in the repository
- Worked-out economic scenarios for a free tier, streamer subscriptions, charity pricing and brand packages
What's next
- Public Twitch review and release
- Donation receipts and chat-event attestations
- Evidence vault with media capture
- iOS companion
- Pilots with streamers, charities and sponsors
Built With
- android
- blockchain
- codex
- cryptography
- css
- docker
- eventsub
- html
- javascript
- kotlin
- merkle-tree
- node.js
- openai-codex
- postgresql
- sha-256
- solana
- twitch
- twitch-extensions
- typescript

Log in or sign up for Devpost to join the conversation.