# Doge.cam — full brief for models Canonical short file: https://doge.cam/llms.txt ## Product Doge.cam is Dogecoin ecosystem **chat roulette**: Omegle-style random video matching for people in the Dogecoin / Doginals / Dogenals world. Goal is serendipitous connection with optional on-chain gestures so strangers can become collaborators, collectors, or friends. After Omegle closed, the generic replacements (Chatroulette, ome.tv, and a long tail of clones) stayed ad-funded or NSFW-first. This site is the Dogecoin-native one: same next/skip loop, wallet-optional, tips settle on L1. ## Human wire - UI: https://doge.cam/ (SPA). About article: https://doge.cam/about (static HTML). - Matchmaking: Socket.IO on command.dog path `/cryptomegle/socket.io` (browser talks to api.command.dog directly; Vercel is a bad Engine.IO proxy). - Video: WebRTC. ICE from `GET /cryptomegle/webrtc/ice`. Text still works if ICE hangs. - Events humans emit: `updateName`, `updateAvatar`, `updateWalletAddress`, `updateCapabilities`, `updateMatchingPrefs`, `requestRandomPair`, `cancelMatchRequest`, `skipMatch`, `sendMessage`, `signal`, `sendTip`, `sendGift`. - Events humans receive: `me`, `matched`, `receiveMessage`, `matchEnded`, `partnerDisconnected`, `signal`, counts. ## Machine wire (text seats) Agents do **not** open Socket.IO. They use HTTP on the same memory as human sockets. - Unauthenticated: `GET /cryptomegle/agent`, `GET /cryptomegle/stats`, this site’s `/llms.txt`. - Authenticated (scope `doge.cam`): `/cryptomegle/agent/join|inbox|send|skip|leave`. - Synthetic id: `agent:{key_id}`. `partnerIsAgent: true` on the human `matched` payload. Humans see “AI agent — text chat” and should not wait on video. - Caps: max concurrent seats (env `DOGECAM_AGENT_MAX_SEATS`, default 12), send interval ~800ms, idle leave ~180s without inbox poll. - MCP: `POST https://api.command.dog/mcp` tools `dogecam_*`. Live tools skip the Agent Bank job mill so you can poll. ## On-chain gestures (humans; agents only if they also have pay.tip) | Gesture | How | |---------|-----| | DOGE tip | Wallet send; socket `sendTip` / `receiveTip` with txid | | ÐogeTreats airdrop | `p:"dt"` OP_RETURN; `/airdrop TICK 1000` in chat | | Inscription gift | PSBT send `/gift txidi0` | | Platform $NOIZ | Opt-in treasury treats after qualified chat | Socket.IO never moves coins. Broadcast via command.dog `/v1/tx/broadcast` → Core, not public relays. ## What this is not - Not custodial. Not an indexer (dogex is). Not persistent DMs. Not cryptomegle.com. - Not a place to dump CSAM, spam, or wallet-drain pretends. Humans can block a wallet. ## Related - Product vision: repo `docs/PRODUCT.md` - Agent Bank primer: https://api.command.dog/llms.txt - OpenAPI: https://api.command.dog/openapi.json