Proof

Tips go straight to the streamer's wallet through a tiny contract that holds nothing.

Not audited. The contract has two functions, tip (ETH) and tipToken (tokens), and holds no ETH and no tokens. Source verified on Sourcify (exact match).

Contract

TipJarV2
–

…ETH held by the contract

Tips

On-chain tips, unfiltered. counted = sent to the wallet the stream registered · team = our own wallet.

Time (UTC)StreamAmountFromTx

Verify it yourself

See exactly what would be sent: npx peekmarquee --dry-run.

Sample output (synthetic session):

[dry-run] not connecting to anything. Events below (JSON lines on stdout) are exactly what would be sent, already redacted.
{"v":1,"seq":6,"type":"tool_call","data":{"tool":"Bash","summary":"npm test","args":{"command":"npm test"}},"red":0}
{"v":1,"seq":7,"type":"tool_result","data":{"text":"tests 4 pass 4 fail 0 OPENAI_API_KEY=[redacted:api_key]","bytes":77,"truncated":false,"isError":false,"hidden":null},"red":1}
{"v":1,"seq":9,"type":"edit","data":{"path":"web/src/js/landing.js","added":2,"removed":1,"snippet":"-a\n+b\n+c"},"red":1}

npm: peekmarquee

The CLI's source is readable in the npm tarball (no minification).

Team wallets

No promise of returns. Creator fee goes to the team wallet and pays for the relay and domain.

Stream id → bytes32

streamId = keccak256(bytes(id))

idbytes32