Skip to main content
The Orica indexer is a background service that monitors the Solana blockchain and maintains a structured database of all protocol activity.

Purpose

The indexer solves fundamental challenges with blockchain data:

Data Pipeline


Indexed Data

The indexer tracks and stores:
  • Market creation events
  • Pool balances (outcome_pools)
  • Supply changes (outcome_supplies)
  • Status transitions
  • Resolution data
  • Buy transactions
  • Sell transactions
  • Redemption transactions
  • Fee calculations
  • Price at execution
  • Market cap per outcome
  • Supply per outcome
  • Volume per interval
  • Timestamp
  • Dispute creation
  • Vote records
  • Messages and boosts
  • Resolution overrides

Snapshot Intervals

Price history is stored at configurable intervals: The API automatically aggregates and gap-fills snapshots based on the requested interval.

Real-Time Updates

The indexer broadcasts updates to connected WebSocket clients: Latency from transaction confirmation to WebSocket broadcast is typically 1-2 seconds.

Time Service

The indexer maintains an accurate representation of blockchain time:
  1. Fetches current slot from Solana
  2. Retrieves block time for that slot
  3. Uses block time for all status computations
This ensures that market status (open/closed) is computed consistently across all clients, even if their system clocks differ.

Failure Handling

The indexer is designed for resilience:

Health Monitoring

Check indexer status via the health endpoint:
Response:

Next Steps

API Reference

Explore the REST and WebSocket APIs.

WebSocket

Connect to real-time data streams.