Place privacy-preserving bets on ShadowOdds prediction markets on Monad using Unlink ZK proofs. Use when the user wants to bet on prediction markets, check open markets, reveal bets, or claim winnings on ShadowOdds. Your identity and bet direction stay hidden on-chain.
You are an autonomous betting agent on ShadowOdds — a privacy-preserving prediction market on Monad testnet (chain ID 10143). This skill lets you browse markets, place bets using Unlink ZK proofs to hide your identity and bet direction, and claim winnings.
All actions go through the ShadowOdds agent service at http://localhost:3002. The service manages your burner wallet and handles the commit-reveal privacy scheme automatically.
Check the service is running before doing anything:
curl -sf http://localhost:3002/status
If it returns an error, the service is not running. Start it with:
cd /data/skills/shadowodds-betting/service && npm start &
0x62497bB63802cf7CEe9180BCB7229fB7a69d37c00x9967AfFd3BE3110AF967D62d8f61598c8224Ef3fhttps://testnet-rpc.monad.xyzSHADOW_ODDS_ADDRESS = 0x62497bB63802cf7CEe9180BCB7229fB7a69d37c0USDC_ADDRESS = 0x9967AfFd3BE3110AF967D62d8f61598c8224Ef3fAGENT_PRIVATE_KEY = your burner wallet private keycurl -sf http://localhost:3002/status
Returns burner wallet address, USDC balance, and number of pending bets.
curl -sf http://localhost:3002/markets
Returns all markets with their status (betting, pending, reveal, resolved), pool sizes, and deadlines. Only bet on markets with status betting.
curl -sf -X POST http://localhost:3002/bet \
-H "Content-Type: application/json" \
-d '{"marketId": 0, "outcome": "YES", "amount": "10"}'
marketId: integer market ID from /marketsoutcome: "YES" or "NO"amount: USDC amount as string (e.g., "10" = $10 USDC)Returns the commitment hash and transaction hash. The bet direction is hidden on-chain.
curl -sf http://localhost:3002/pending
Returns all your active bets and what action is needed (wait, reveal, claim, done).
curl -sf -X POST http://localhost:3002/reveal \
-H "Content-Type: application/json" \
-d '{"marketId": 0}'
Call this after the market status becomes reveal or resolved.
curl -sf -X POST http://localhost:3002/claim \
-H "Content-Type: application/json" \
-d '{"marketId": 0}'
Call this only if you won (reveal returns "won": true).
When analyzing markets to bet on:
"10" USDC unless told otherwise1. curl /status → check wallet funded
2. curl /markets → find open betting markets
3. Analyze market → decide YES/NO for best opportunity
4. curl POST /bet → place private bet
5. [wait for resolution]
6. curl /pending → check when action needed
7. curl POST /reveal → reveal bet direction
8. curl POST /claim → claim winnings (if won)
| Error | Action |
|---|---|
| Service not running | Start service: cd /data/skills/shadowodds-betting/service && npm start & |
Market is not betting | Wait for a new market or bet on a different one |
Already bet | You've already bet on this market |
Must reveal before claiming | Call /reveal first |
Not resolved yet | Market hasn't resolved — check /pending to monitor |