Owncast

Live video event sidecar tested — L1→L4

Register an admin webhook for chat presence events — viewers support the streamer per second watched.

What gets metered

live viewing presence — Owncast emits USER_JOINED / USER_PARTED chat events to a registered admin webhook; the sidecar bills (parted − joined) × RATE micro-USDC per second on part.

Attach surface — no fork

Owncast's own outbound-webhook mechanism: an admin registers the sidecar URL via POST /api/admin/webhooks/create, subscribed to USER_JOINED / USER_PARTED. Zero Owncast change.

Quickstart

Run the sidecar, then register the webhook against the running Owncast admin API:

PLATFORM=owncast \
FACILITATOR_URL=https://facilitator.example FACILITATOR_API_KEY=… \
STREAMER_KEY=stream \
PAYER_WALLETS='{"<viewer-username>":"0x…"}' \
CREATOR_WALLETS='{"stream":"0x…"}' \
RATE=1000 npx up-integration          # micro-USDC per second

# register the outbound webhook (wraps POST /api/admin/webhooks/create):
./register-webhook.sh                 # → USER_JOINED / USER_PARTED
                                      # → http://up-sidecar:8410/owncast

All values above are placeholders — supply your own facilitator, wallets, and rate. The shared prerequisites (a deployed StakeVaultFactory, a running facilitator, a wallet registry) are covered in the admin overview.

Verify

npm run e2e:owncast -w @universal-paywall/integrations

Drives the real sidecar HTTP server with the byte-exact JSON Owncast posts, through the facilitator to an on-chain settle — asserts the streamer is paid (parted − joined) × RATE.

Notes & caveats

Links

← All integrations