Jito Streaming Surfaces

Real-time streaming surfaces from Jito infrastructure — the wss tip_stream for continuous bundle-tip percentile updates, the ShredstreamProxy SubscribeEntries gRPC method for sub-slot Solana shred delivery, and the SearcherService SubscribeBundleResults gRPC stream of bundle inclusion and rejection events.

Jito Streaming Surfaces is one of 10 APIs that Jito Labs publishes on the APIs.io network, described by an AsyncAPI event-driven specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Solana, MEV, Streaming, ShredStream, and WebSocket. The published artifact set on APIs.io includes API documentation, an API reference, an AsyncAPI specification, and 1 Naftiko capability spec.

AsyncAPI Specification

jito-streaming-asyncapi.yml Raw ↑
asyncapi: 3.0.0
info:
  title: Jito Streaming Surfaces
  version: '1.0'
  description: >-
    Real-time streaming endpoints exposed by Jito infrastructure: the WebSocket
    bundle tip stream and the gRPC ShredStream for low-latency Solana shred
    delivery. These are the canonical out-of-band feeds for searchers, HFT
    bots, and validators that need sub-slot insight into network state and
    bundle market pricing.
servers:
  tipStream:
    host: bundles.jito.wtf
    protocol: wss
    description: WebSocket stream of recent tip percentiles.
  shredStream:
    host: mainnet.block-engine.jito.wtf
    protocol: grpc
    description: gRPC ShredStream for low-latency shred delivery to validators and infra operators.
channels:
  tipStreamChannel:
    address: /api/v1/bundles/tip_stream
    description: Continuous push of landed tip percentile snapshots.
    messages:
      tipUpdate:
        $ref: '#/components/messages/TipFloorUpdate'
  shredStreamChannel:
    address: ShredstreamProxy.SubscribeEntries
    description: Server-streaming gRPC method that emits Solana Entry messages reconstructed from shreds.
    messages:
      entry:
        $ref: '#/components/messages/Entry'
  bundleResults:
    address: SearcherService.SubscribeBundleResults
    description: Server-streaming gRPC delivery of bundle inclusion / rejection results.
    messages:
      bundleResult:
        $ref: '#/components/messages/BundleResult'
operations:
  receiveTips:
    action: receive
    channel:
      $ref: '#/channels/tipStreamChannel'
  receiveShreds:
    action: receive
    channel:
      $ref: '#/channels/shredStreamChannel'
  receiveBundleResults:
    action: receive
    channel:
      $ref: '#/channels/bundleResults'
components:
  messages:
    TipFloorUpdate:
      payload:
        type: object
        properties:
          time:
            type: string
            format: date-time
          landed_tips_25th_percentile:
            type: number
          landed_tips_50th_percentile:
            type: number
          landed_tips_75th_percentile:
            type: number
          landed_tips_95th_percentile:
            type: number
          landed_tips_99th_percentile:
            type: number
          ema_landed_tips_50th_percentile:
            type: number
    Entry:
      payload:
        type: object
        description: Solana Entry reconstructed from shreds.
        properties:
          slot:
            type: integer
          entries:
            type: string
            description: Bincode-serialized array of Solana Entries.
    BundleResult:
      payload:
        type: object
        properties:
          bundle_id:
            type: string
          accepted:
            type: object
            description: Set when the bundle was accepted for inclusion.
          rejected:
            type: object
            description: Set with reason when the bundle was rejected.
          processed:
            type: object
            description: Set when the bundle was processed by a validator.
          finalized:
            type: object
            description: Set when the bundle was finalized on chain.