Astrolabe Markets runs an on-chain firm-quote FX market-making desk on Solana. The API gives programmatic clients a quote → assemble workflow over that desk: you request a price for a pair, receive a firm pathId, and assemble a transaction you sign yourself.
Astrolabe never holds your keys. assemble returns a base64 VersionedTransaction that you sign as userAddr and submit through your own RPC.

The two ways in

This API (programmatic)

POST /sor/quote/v3POST /sor/assemble. Best when you want an explicit quote object, a firm pathId, and a transaction you assemble and sign yourself.

Jupiter / aggregators (on-chain)

Users routed through Jupiter Metis hit the PropAMM directly on-chain — no API call needed. The desk posts the same quotes both paths read.

What it prices

The PropAMM is pair-agnostic: each currency pair is its own on-chain market with its own inventory and QuoteState, so new pairs are added without an API change. Query GET /info/tokens/101 for the pairs quotable right now rather than hard-coding this table. A second source, astrolabe-partner-rfq, is reserved for firm partner inventory and is parked in v1 — its endpoints return 501.

Size-aware pricing

The PropAMM posts a tiered quote: small clips are priced tight (matching deep pools), larger clips are priced wider where those pools slip. Each quote response reports which tier priced it (astrolabe.tier). A clip larger than the top tier is rejected, not clamped — so an assembled transaction always reflects a fill the chain will actually settle.