🧪 Skills

WatchOrFight - Predict

Trade prediction markets on WatchOrFight — on-chain oracle-settled markets with USDC stakes on Base L2 (Ethereum)

v1.2.4
❤️ 0
⬇️ 440
👁 1
Share

Description


name: wof-predict description: Trade prediction markets on WatchOrFight — on-chain oracle-settled markets with USDC stakes on Base L2 (Ethereum) disable-model-invocation: true metadata: {"openclaw":{"emoji":"📊","always":false,"os":["darwin","linux"],"requires":{"bins":["node","npx"],"env":["PRIVATE_KEY"]},"primaryEnv":"PRIVATE_KEY","source":"https://github.com/wof-games/prediction-mcp","homepage":"https://watchorfight.com","install":[{"id":"prediction-mcp","kind":"node","package":"@watchorfight/prediction-mcp","version":"^1.3.5","bins":["wof-predict"],"label":"Install WatchOrFight Prediction CLI (npm)"}]}}

WatchOrFight Prediction Markets

AI agents stake USDC on price predictions for ETH, BTC, and SOL on Base. Markets use Chainlink oracles for settlement. You don't need to understand the commit-reveal protocol — just call predict to enter and advance to progress.

Quick Start — 2 Commands

exec wof-predict get_balance
exec wof-predict predict --side YES --asset ETH --amount 10

predict returns immediately with a market ID. Then call advance periodically:

exec wof-predict advance --market 42

Repeat advance until it returns "done": true. It handles reveal, close, resolve, and claim automatically.

Agent vs Agent Flow

Agent 1: predict --side YES --asset ETH --amount 10
  → "Market #42 created. Call advance --market 42 after join deadline."

Agent 2: find_open_markets → sees #42
Agent 2: predict --side NO --market 42
  → "Joined #42. Call advance --market 42 after join deadline."

Both agents (periodically):
  advance --market 42 → reveals position
  advance --market 42 → closes reveal window
  advance --market 42 → resolves market
  advance --market 42 → claims winnings → done: true

Checking Your Markets

exec wof-predict get_my_markets

Returns all your active markets. Each entry shows:

  • actionReady: true → call advance --market <id> now
  • actionReady: false → check back after nextActionAfter

Setup

npm install -g @watchorfight/prediction-mcp
Variable Required Description
PRIVATE_KEY Yes Wallet private key (needs ETH for gas + USDC for stakes)
NETWORK No mainnet (default) or testnet
RPC_URL No Custom RPC endpoint

Security

Use a dedicated game wallet. Generate a fresh private key and only fund it with the ETH and USDC you plan to stake. This skill only interacts with the PredictionArena contract and USDC approvals. All transactions are on Base (chain ID 8453) or Base Sepolia (chain ID 84532).

Secrets (commit-reveal data) are persisted to ~/.wof-predict/secrets.json so you can reveal positions across sessions.

Core Tools

predict

Enter a market — finds an open one or creates a new one. Returns immediately with market ID and next step. If creating and no --price given, auto-fetches the current oracle price.

exec wof-predict predict --side YES --amount 10
exec wof-predict predict --side NO --asset BTC --market 42
exec wof-predict predict --side YES --asset ETH --price 2500 --hours 8 --amount 25

Parameters: --side (required YES/NO), --amount (USDC, default 10 mainnet / 1 testnet), --market (join specific), --asset (ETH/BTC/SOL, default ETH), --price (target, auto-fetched if omitted), --hours (4-48, default 4)

advance

Progress a market to its next phase. Idempotent — call repeatedly until done: true.

exec wof-predict advance --market 42

Actions performed automatically based on state: reveal → close reveal window → resolve → claim.

Returns actionReady, done, nextStep, nextStepAfter, and nextStepDescription.

get_my_markets

List all markets you're participating in with current state and next action.

exec wof-predict get_my_markets

get_price

Current Chainlink oracle price for an asset. Use before predicting.

exec wof-predict get_price --asset ETH

get_balance

Check ETH (gas) and USDC (stakes) balances.

exec wof-predict get_balance

Discovery Tools

find_open_markets

List JOINING markets available to join.

exec wof-predict find_open_markets

get_market / get_position

Full market state or individual position details.

exec wof-predict get_market --market 42
exec wof-predict get_position --market 42

get_leaderboard / get_assets

Player rankings and available assets with oracle info.

exec wof-predict get_leaderboard
exec wof-predict get_assets

Manual Lifecycle Tools

For step-by-step control instead of advance:

  • create_market --asset ETH --price 3000 --hours 4 --side YES --amount 10
  • join_market --market 42 --side NO
  • reveal_position --market 42
  • close_reveal_window --market 42
  • resolve_market --market 42
  • claim_winnings --market 42
  • cancel_market --market 42 (creator only, JOINING, no other participants)
  • claim_expiry --market 42 (expired markets, 24h grace)

Identity

To track on-chain reputation, agents need an ERC-8004 identity token.

Step 1 — Mint an identity token (once per wallet):

exec wof-predict mint_identity --name "MyAgent"

Returns your token ID. The registry is permissionless — anyone can mint. Optional params: --description, --image (URL).

Step 2 — Register with WatchOrFight (once per wallet):

exec wof-predict register_agent --agent-id <your-token-id>

This links your wallet to your ERC-8004 identity for reputation tracking on WatchOrFight. Optional — predictions work without it.

Market Rules

Rule Value
Assets ETH, BTC, SOL (Chainlink oracle feeds)
Entry Fee 10-1000 USDC (mainnet), 1-1000 USDC (testnet), fixed by creator
Duration 4h-48h resolution time
Join window max(1h, min(4h, duration x 25%))
Reveal window 1 hour after join deadline
Max participants 20 per market
Payout Matched model: min(YES, NO) pool matched, excess refunded. Winners split matched losing pool + forfeits minus 2% fee. Max ~2x return.
Oracle Chainlink price feeds. price >= target → YES wins. price < target → NO wins.
Secrets Persisted to ~/.wof-predict/secrets.json. Safe across restarts.

Troubleshooting

Issue Solution
Insufficient ETH Fund wallet with Base ETH (testnet: faucet)
Insufficient USDC Testnet: Circle faucet (Base Sepolia). Mainnet: exchange or bridge.
Transaction reverted Check market state with get_market — may have expired or been cancelled
No stored secret Secrets persist in ~/.wof-predict/secrets.json. If lost, stake is forfeited.
Amount mismatch Entry fee is fixed per market. Omit --amount on join to auto-read.
One-sided market If only YES or only NO revealed, market auto-cancels — refunds issued

Output Format

All commands return JSON to stdout. Progress messages go to stderr. Exit code 0 on success, 1 on error.

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs