Skip to main content
Prediction markets are platforms where users can trade on the outcome of future events. Allium provides comprehensive prediction market data from both decentralized blockchain-based platforms and centralized exchanges, enabling analysis of market activity, volumes, and participant behavior across supported protocols.

Supported Protocols

ProtocolTypePlatformData Coverage
PolymarketDecentralizedPolygonTrades, enriched trades, markets, prices, user actions, wallets, positions, open interest, market orderbook
KalshiCentralizedOff-ChainTrades, enriched trades, markets, events, hourly candlesticks, daily open interest, market orderbook
JupiterDecentralizedSolanaTrades, enriched trades, Kalshi markets (uses Kalshi as liquidity provider)

Prediction Markets Data Coverage

CategoryProtocols SupportedNotes
TradesPolymarket, Kalshi, JupiterCore trade data and enriched trades with market metadata
MarketsPolymarket, Kalshi, JupiterComprehensive market metadata with API data and outcomes
PricesPolymarket, KalshiDaily price tracking (Polymarket) and hourly candlesticks (Kalshi)
User DataPolymarketUser actions, wallets, positions, and open interest
Open InterestPolymarket, KalshiDaily open interest snapshots
EventsKalshiEvent metadata and categorization
Market OrderbookPolymarket, KalshiOrderbook snapshots with bid/ask price levels

Platform Coverage

PlatformProtocolNotes
Polygon (EVM)PolymarketDecentralized prediction markets on Polygon blockchain
SolanaJupiterPrediction markets using Kalshi as liquidity provider
CentralizedKalshiRegulated prediction market exchange

Models Supported

The following models are supported for prediction markets:
ModelPolymarketKalshiJupiterDescription
TradesCore trade data for all prediction market platforms
Trades EnrichedEnhanced trades with market metadata and categorization
MarketsComprehensive market metadata with API data and outcomes
Events-Event metadata
Prices Daily--Daily price snapshots (Polymarket)
Candlesticks Hourly--Hourly OHLCV candlestick data (Kalshi)
User Actions--User deposits, withdrawals, transfers (Polymarket only)
Wallets--Wallet creation events (Polymarket only)
User Positions--Daily snapshots of user holdings (Polymarket only)
Open Interest Daily-Daily open interest tracking with market pricing data
Market Orderbook-Orderbook snapshots with bid/ask price levels

Sample Query

Query all trades on Polymarket in the last 30 days.
select
  event_name,
  project,
  protocol,
  maker,
  taker,
  price,
  collateral_amount_raw,
  collateral_token_address,
  collateral_token_name,
  collateral_token_symbol,
  usd_exchange_rate,
  usd_collateral_amount,
  block_timestamp,
  transaction_hash,
  unique_id
from polygon.predictions.trades
where block_timestamp >= current_timestamp - interval '30 days'
order by block_timestamp desc
LIMIT 100
WITH kalshi_fixed AS (
  SELECT
    day,
    CASE 
      -- Map Kalshi categories to Polymarket equivalents
      WHEN LOWER(category) IN ('elections', 'politics') THEN 'politics'
      WHEN LOWER(category) IN ('science and technology', 'technology') THEN 'technology'
      WHEN LOWER(category) IN ('climate and weather', 'weather') THEN 'weather'
      WHEN LOWER(category) IN ('world', 'international') THEN 'international'
      WHEN LOWER(category) IN ('financials', 'economics', 'companies') THEN 'business'
      WHEN LOWER(category) IN ('entertainment', 'mentions', 'social') THEN 'culture'
      WHEN LOWER(category) = 'crypto' THEN 'crypto'
      WHEN LOWER(category) = 'sports' THEN 'sports'
      WHEN LOWER(category) IN ('education', 'health', 'transportation', 'covid-19') THEN 'other'
      WHEN category IS NULL THEN 'other'
      ELSE 'other'
    END AS fixed_category,
    open_interest AS oi_usd
  FROM
    common.predictions.kalshi_open_interest_daily
  WHERE
    day >= CURRENT_DATE - INTERVAL '30 days'
),
kalshi_oi AS (
  SELECT
    day,
    fixed_category AS category,
    SUM(oi_usd) AS oi_usd
  FROM
    kalshi_fixed
  GROUP BY day, fixed_category
),
poly_oi AS (
  SELECT
    day,
    LOWER(category) AS category,
    SUM(open_interest_usd) AS oi_usd
  FROM
    polygon.predictions.open_interest_daily
  WHERE
    day >= CURRENT_DATE - INTERVAL '30 days'
  GROUP BY day, LOWER(category)
)
SELECT
  COALESCE(k.day, p.day) AS day,
  COALESCE(k.category, p.category) AS category,
  COALESCE(k.oi_usd, 0) AS kalshi_open_interest_usd,
  COALESCE(p.oi_usd, 0) AS polymarket_open_interest_usd,
  COALESCE(k.oi_usd, 0) + COALESCE(p.oi_usd, 0) AS combined_open_interest_usd
FROM
  kalshi_oi k
FULL OUTER JOIN
  poly_oi p
ON
  k.day = p.day
  AND k.category = p.category
ORDER BY
  day DESC,
  combined_open_interest_usd DESC