Compatibility

Where Astra matches Hermes, and the places it deliberately does not.

Not supported

  • On-chain verification. binary.data is always [], and vaa is "" when asked for. There is no signed payload, so updatePriceFeeds and any other on-chain Pyth verification cannot work. Astra is for bots, backends, UIs and keepers that read parsed.
  • fixed_rate@50ms. Refused with 400.
  • Market hours. market_hours.next_open and next_close are always null; is_open is set.

Different by design

  • slot and emitter_chain are 0: no chain stands behind the price.
  • ema_price is Astra's own average; see Statuses.
  • Feed attributes are always strings, never null. base and schedule are omitted when unknown.

Errors

As on Hermes, errors are plain text: 400 for malformed input, 404 Price ids not found: … unless ignore_invalid_price_ids=true, and 422 for a malformed ID in a path. A feed with no servable value yet counts as not found. Historical routes and candles answer 503 with an application/problem+json body when history is unavailable.

Routes

RouteKind
GET /v2/price_feeds, GET /v2/price_feeds/{id}Hermes
GET /v2/updates/price/latestHermes
GET /v2/updates/price/streamHermes, SSE
GET /v2/updates/price/{publish_time} and /{publish_time}/{interval}Hermes, history
GET /wsHermes WebSocket
GET /api/latest_price_feeds, /api/price_feed_ids, /api/get_price_feedHermes v1
GET /v1/feeds, GET /v1/candles, GET /v1/statusAstra native

On this page