Skip to main content
PriceSignal provides real-time cryptocurrency price tracking powered by WebSocket connections to major exchanges. Monitor price movements, volume changes, and market trends with millisecond-level precision.

Supported Instruments

PriceSignal tracks a wide range of cryptocurrency trading pairs across multiple exchanges. Each instrument consists of:
  • Symbol: Trading pair identifier (e.g., BTCUSDT)
  • Base Asset: The cryptocurrency being traded (e.g., BTC)
  • Quote Asset: The currency used for pricing (e.g., USDT)
  • Exchange: The trading platform (e.g., Binance)

Query Available Instruments

Retrieve all available trading pairs with filtering and pagination:
query GetInstruments {
  instruments(first: 20, where: { baseAsset: { eq: "BTC" } }) {
    nodes {
      id
      symbol
      name
      description
      baseAsset
      quoteAsset
      exchange {
        name
        code
      }
    }
    totalCount
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
Use filtering to narrow down instruments by base asset, quote asset, or exchange to find the exact pairs you want to track.

Real-Time Price Data

Access live price information with historical context and market statistics.

Current Price Query

query GetLatestPrices {
  instrumentPrices(
    first: 10
    where: { instrument: { symbol: { eq: "BTCUSDT" } } }
    order: { timestamp: DESC }
  ) {
    nodes {
      id
      price
      volume
      timestamp
      instrument {
        symbol
        name
      }
    }
  }
}

Price Data Fields

Price

Current market price in the quote asset currency

Volume

Trading volume for the current period

Timestamp

Exact time of the price snapshot (UTC)

Instrument

Reference to the trading pair details

Price Streaming

PriceSignal uses WebSocket connections to stream real-time price updates directly from exchanges.
  1. Connection: The system establishes WebSocket connections to supported exchanges
  2. Subscription: Active price rules automatically subscribe to relevant trading pairs
  3. Processing: Price updates are processed in real-time and stored in the database
  4. Evaluation: Each price update triggers evaluation of associated alert rules
  5. Optimization: The system only subscribes to pairs with active rules to minimize overhead

Performance Characteristics

  • Latency: Sub-second price updates from exchange to evaluation
  • Throughput: Handles thousands of price updates per second
  • Reliability: Automatic reconnection on connection loss
  • Efficiency: Dynamic subscription management based on active rules
Price streaming is automatically managed. When you create or enable a price rule, the system subscribes to the necessary price feeds. Disabling all rules for an instrument will unsubscribe from that feed.

Historical Price Data

Query historical price data for backtesting and analysis:
query GetRecentPrices($symbol: String!) {
  instrumentPrices(
    where: {
      instrument: { symbol: { eq: $symbol } }
      timestamp: { gte: "2026-03-02T00:00:00Z" }
    }
    order: { timestamp: ASC }
  ) {
    nodes {
      price
      volume
      timestamp
    }
  }
}

Advanced Filtering

Leverage GraphQL filtering capabilities for precise queries:
query GetFilteredPrices {
  instrumentPrices(
    where: {
      and: [
        { instrument: { baseAsset: { in: ["BTC", "ETH"] } } }
        { price: { gte: 50000 } }
        { timestamp: { gte: "2026-03-01T00:00:00Z" } }
      ]
    }
    order: { timestamp: DESC }
    first: 100
  ) {
    nodes {
      price
      instrument {
        symbol
      }
      timestamp
    }
    totalCount
  }
}
All timestamp fields use UTC timezone. Historical data retention depends on your plan and database configuration.

Build docs developers (and LLMs) love