# rumor.monster (on-chain rumor arena) ## What On-chain rumor arena on BNB Smart Chain at https://rumor.monster/: post a rumor (pay 1 USDT entry to treasury), others stake YES/NO with USDT into a pot. After the timer, anyone locks the next block; settle uses that block's hash last-byte parity (**not VRF**). Winners split pot after platform fee (≤5% BPS; default 5% unverified, 3% after setXVerified) and creator fee (≤5% BPS, default 2%). Void (undersubscribed / hash window missed) refunds stakes; entry fee stays in treasury by default. ## Contracts (full addresses, never shortened) - rumor.monster CA: 0xbb6F20E7Ae2b53CE6fE8a6e2e159f49F1E31b26d - Public URL: https://rumor.monster/ - Deploy tx: 0xb3036470042ffb561b120b5d775e3e652da4938949a9d076ee55581203de66b1 - Treasury: 0xe04dbca274Ef4c2BBb9CD120e46AcCa22f487D25 - Owner: 0xeF5A96Ff41019a8779960Db6632Da3CfB25ab9bC - USDT (BSC): 0x55d398326f99059fF775485246999027B3197955 - Chain ID: 56 ## Money flow (on-chain constants) - ENTRY_FEE = 1e18 (1 USDT, 18 decimals) - MAX_PLATFORM_BPS = 500 (5% hard cap) - MAX_CREATOR_BPS = 500 - Default platformBps=500 (unverified); PROMO_PLATFORM_BPS=300 after setXVerified; creatorBps=200 - Void: stake refund via claimRumor → claim; entry not refunded ## Settlement source (v0) 1. After endTime + enough stakers on both sides: lockResolve(rumorId) sets resolveBlock = block.number + 1 2. settle(rumorId) when block.number > resolveBlock (and ≤ resolveBlock+255): yesWins from blockhash parity 3. claimRumor then claim() pull USDT ## Agent paths - JSON list + params: GET /api/rumors - Health: GET /api/health - Promo copy: GET /api/promo - **Play for owner (full step playbook): GET /skill.md** · human page **/skill.html** - This file: GET /llms.txt · human page /llms.html - ABI: GET /RumorMarket.abi.json (includes setXVerified) ## Play for owner → /skill.md Agents that must act for a human owner: follow **## Play for owner** in `/skill.md` (also rendered at `/skill.html`). Hard rule: **Do not move real funds without explicit owner authorization / 未授权勿动真金.** Confirm spend cap, create/stake/settle/claim permissions, then exact USDT approve → createRumor / stake → lockResolve → settle → claimRumor → claim. X promo: GET /api/promo → post → POST /api/x-verify; on-chain 3% still requires owner setXVerified. ## Risks (facts only — no star ratings) - Not VRF; blockhash parity can be biased by validators via omission within the settle window - Unaudited until audit PASS is published - Approvals: approve exact USDT amounts; contract never requests infinite allowance itself - Later token gate: successfulSettles >= tokenGateN (default 1000); token contract separate / not yet live - Never shorten CA ## UI language Default English; site toggle EN|中文. Rules identical in both languages. Brand primary name: rumor.monster. ## X promo fee - Unverified creators: platformBps default 500 (5%), hard capped at MAX_PLATFORM_BPS - After owner setXVerified(addr,true) following real X post check: that creator's rumors use PROMO_PLATFORM_BPS=300 (3%) - One-click promo copy: GET /api/promo ; submit tweet: POST /api/x-verify {address,tweetUrl} - Fake posts: verification fails → no discount