Compatibility
Where Astra matches Hermes, and the places it deliberately does not.
Not supported
- On-chain verification.
binary.datais always[], andvaais""when asked for. There is no signed payload, soupdatePriceFeedsand any other on-chain Pyth verification cannot work. Astra is for bots, backends, UIs and keepers that readparsed. fixed_rate@50ms. Refused with400.- Market hours.
market_hours.next_openandnext_closeare alwaysnull;is_openis set.
Different by design
slotandemitter_chainare0: no chain stands behind the price.ema_priceis Astra's own average; see Statuses.- Feed attributes are always strings, never
null.baseandscheduleare 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
| Route | Kind |
|---|---|
GET /v2/price_feeds, GET /v2/price_feeds/{id} | Hermes |
GET /v2/updates/price/latest | Hermes |
GET /v2/updates/price/stream | Hermes, SSE |
GET /v2/updates/price/{publish_time} and /{publish_time}/{interval} | Hermes, history |
GET /ws | Hermes WebSocket |
GET /api/latest_price_feeds, /api/price_feed_ids, /api/get_price_feed | Hermes v1 |
GET /v1/feeds, GET /v1/candles, GET /v1/status | Astra native |