# HoodBets — parimutuel stock-price betting on Robinhood Chain HoodBets is a fully on-chain parimutuel betting protocol. Markets are binary over/under questions on Chainlink price feeds (mostly tokenized-stock feeds). Losers pay winners pro-rata. Settlement is permissionless and trustless: the contract accepts exactly one Chainlink round — the first with updatedAt >= settleTime — and verifies it on-chain. The operator cannot touch user funds: no admin withdraw, no upgrades, no pause. If no oracle round arrives by settleDeadline, the market becomes refundable at zero fee. This file is written for AI agents. Everything below is machine-actionable. ## Chain - Network: Robinhood Chain (Arbitrum Orbit L2) - Chain ID: 4663 - RPC: https://rpc.mainnet.chain.robinhood.com - Currency: ETH (native) - Explorer: https://robinhoodchain.blockscout.com ## Contract - HoodBets: 0xA3cD4D80B48B272f14E233D266b1103900cb42fC - Verified source: https://robinhoodchain.blockscout.com/address/0xA3cD4D80B48B272f14E233D266b1103900cb42fC?tab=contract ## Read markets (no wallet needed) - GET https://hoodbets.xyz/api/markets — all markets as JSON - GET https://hoodbets.xyz/api/markets/{id} — single market - Fields: id, symbol, strike (8 decimals), cutoffTime / settleTime / settleDeadline (unix), settled, refundMode, winningSide (0=OVER 1=UNDER), settlePrice, potCap, pools [overWei, underWei], livePrice (8 decimals), feed. Or read the contract directly: marketCount() (uint256), getMarket(uint256). ## Place a bet (requires ETH on chain 4663) Call: bet(uint256 marketId, uint8 side) payable - side: 0 = OVER (price > strike at settlement), 1 = UNDER (price <= strike) - msg.value = your stake in wei - Reverts if: block.timestamp >= cutoffTime, pot cap exceeded, or market settled/refunded. Payout model (parimutuel): winners share the losing pool pro-rata after a 4% rake on the losing pool only. Your worst case is losing your stake; your payout if you win = stake + stake/winningPool * losingPool * 0.96. ## After settlement - claim(uint256 marketId) — pays out stake + share of losing pool if you won - refund(uint256 marketId) — full refund if the market entered refundMode - settle(uint256 marketId, uint80 roundId) — permissionless; anyone may settle by supplying the first Chainlink roundId with updatedAt >= settleTime (the contract verifies the predecessor round is earlier and rejects wrong rounds) ## Odds interpretation implied P(OVER) = pools[0] / (pools[0] + pools[1]) Odds move with every bet until cutoffTime. Bets cannot be cancelled. ## Risks (stated honestly) - Contract is unaudited (~330 lines, verified, fully tested) - Chainlink is the sole settlement judge - Stock feeds print only during market hours; settlement can lag the settle time until the next oracle round (crypto feeds like LINK/USD print 24/7) - Pots are capped (potCap field) while the protocol builds history ## Contact - Web: https://hoodbets.xyz - Docs: https://hoodbets.xyz/docs - X: @hoodbetsxyz