Skip to content

Latest commit

 

History

History
95 lines (83 loc) · 4.7 KB

File metadata and controls

95 lines (83 loc) · 4.7 KB

Feature Support & Compliance

This document details the feature support and compliance status for each exchange. PMXT enforces a strict compliance standard to ensure protocol consistency across all implementations.

Functions Status

Category Function Polymarket Kalshi Limitless Probable Baozi Myriad Opinion Metaculus
Market Data fetchMarkets Y Y Y Y Y Y Y Y
fetchEvents Y Y Y Y Y Y Y Y
fetchMarket Y Y Y Y Y Y Y Y
fetchEvent Y Y Y Y Y Y Y Y
Public Data fetchOHLCV Y Y Y Y Y Y Y -
fetchOrderBook Y Y Y Y Y Y Y -
fetchTrades Y Y Y Y Y Y - -
Private Data fetchBalance Y Y Y Y Y Y - -
fetchPositions Y Y Y Y Y Y Y -
fetchMyTrades Y Y Y Y - Y Y -
Trading createOrder Y Y Y Y Y Y Y Y
cancelOrder Y Y Y Y Y - Y Y
fetchOrder Y Y Y Y Y - Y -
fetchOpenOrders Y Y Y Y Y Y Y -
fetchClosedOrders - Y Y - - - Y -
fetchAllOrders - Y Y - - - Y -
Calculations getExecutionPrice Y Y Y Y Y Y Y -
getExecutionPriceDetailed Y Y Y Y Y Y Y -
Real-time watchOrderBook Y Y Y Y Y Y Y -
watchTrades Y Y Y - - Y Y -

Legend

  • Y - Supported
  • - - Not supported
  • E - Emulated (backed by a non-native mechanism)

NOTE: the grid above is regenerated by generate:compliance from core/src/exchanges/*/index.ts. The Hunch column below is documented inline until the next regeneration picks it up.

Hunch

Hunch is a parimutuel prediction market on Base (USDC). Markets are pool-based — there is no CLOB and no AMM curve; prices are implied odds. Settlement is x402 / EIP-3009 transferWithAuthorization (the bettor's wallet signs a USDC authorization; the relayer sponsors gas). Identity is keyless — the wallet IS the account, so reads need no API key.

Category Function Hunch Notes
Market Data fetchMarkets Y GET /api/agent/v1/markets
fetchEvents Y No event tier — each market wrapped as a single-market event
fetchMarket Y GET /api/agent/v1/markets/{id}
fetchEvent Y Synthetic single-market event
Public Data fetchOHLCV Y From research oddsHistory (flat candles)
fetchOrderBook E Emulated: single level at the implied price, pool as depth
fetchTrades Y research oddsHistory as the public tape
Private Data fetchBalance Y GET .../wallet/{address}/readiness → USDC balance
fetchPositions Y GET /api/agent/v1/positions?wallet=
fetchMyTrades - Not exposed (use fetchPositions / proof)
Trading createOrder Y Self-hosted Base x402 money path; market orders only
cancelOrder - Parimutuel pool — bets cannot be cancelled
fetchOrder - Parimutuel — no resting orders
fetchOpenOrders Y Always [] (no resting orders)
Real-time watchOrderBook E Poll-based emulation
watchTrades E Poll-based emulation

createOrder accepts only side: 'buy' and type: 'market'; outcomeId encodes the Hunch side as "{marketId}:{side}" where side is yes/no for binary markets or the parimutuel bucket key for N-way ladder / date-window markets. Bets above the $10 "simple tier" first fetch a price-locked quote.

Compliance Policy

  • Failure over Warning: Tests must fail if no relevant data (markets, events, candles) is found. This ensures that we catch API breakages or unexpected empty responses.

Tests with authentication

requires a dotenv in the root dir with

POLYMARKET_PRIVATE_KEY=0x...
# Kalshi
KALSHI_API_KEY=...
KALSHI_PRIVATE_KEY=... (RSA Private Key)
# Limitless
LIMITLESS_PRIVATE_KEY=0x...
# Myriad
MYRIAD_API_KEY=...
MYRIAD_WALLET_ADDRESS=0x...
# Metaculus (required for API access — unauthenticated requests return 403)
METACULUS_API_TOKEN=...
# Hunch (reads are keyless; privateKey signs the x402 USDC payment on Base)
HUNCH_PRIVATE_KEY=0x...
HUNCH_WALLET_ADDRESS=0x...   # optional; derived from HUNCH_PRIVATE_KEY when absent