Skip to Content
APIMarkets API (Meteora)

Markets API (Meteora)

Public, IP rate-limited endpoints that read a token’s Meteora market and build unsigned trades. They work for Etch launches of both kinds and for any other mint (Etch discovers DBC and DAMM v2 pools on chain; for DAMM v2 only pools paired with wSOL or USDC count, wSOL first, deepest liquidity first, so a pool against some other token can never be quoted or traded).

Launch modeMarket before graduationMarket after
pool (instant pool)Meteora Dynamic AMM v1 (kind: "amm_v1", use the pool routes in Signal)—
dbc (bonding curve)Meteora Dynamic Bonding Curve (kind: "dbc")Meteora DAMM v2 (kind: "damm_v2")

Get a market

GET /api/markets/:mint

{ "mint": "3avH…", "kind": "dbc", "graduated": false, "curve": { "pool": "Fohp…", "config": "FajH…", "baseMint": "3avH…", "quoteMint": "So11…112", "quoteSymbol": "SOL", "quoteDecimals": 9, "creator": "5qgF…", "quoteReserve": 0.198, "threshold": 0.5, "progress": 0.396, "price": 1.33e-9, "startPrice": 1.12e-9, "endPrice": 1.69e-9, "points": [{ "raised": 0, "price": 1.12e-9 }, "…"], "migrationProgress": 0, "isMigrated": false, "budgetPercent": 20, "creatorTradingFeePercent": 50, "finishedAt": null }, "damm": null, "launch": { "id": "…", "mode": "dbc", "status": "success", "graduatedAt": null, "params": { "preset": "steady", "quote": "SOL", "goal": 0.5, "budgetPercent": 20 }, "daoTreasury": "9xHH…", "daoTreasuryFunded": false } }

curve.points samples the curve (price against quote raised) for a chart. After graduation kind is "damm_v2" and damm carries { pool, price, quoteReserve, baseReserve, feeBps }.

Quote

GET /api/markets/:mint/quote?side=buy|sell&amount=<raw>&slippageBps=100

amount is raw units of the input (lamports / USDC base units for a buy, token base units for a sell). Before graduation the quote comes from the bonding curve, after it from DAMM v2.

{ "venue": "dbc", "pool": "Fohp…", "side": "buy", "amountIn": "200000000", "amountOut": "161813069824462411", "minAmountOut": "160194939126217786", "fee": "2000000", "priceImpactPct": null, "fillsCurve": false, "slippageBps": 100, "graduated": false }

A buy bigger than what is left on the curve is filled up to the funding goal (fillsCurve: true, amountIn = what is actually spent); the rest of the input is never taken.

Build a swap

POST /api/markets/:mint/swap-tx

{ "owner": "Hf…", "side": "buy", "amountIn": "200000000", "minAmountOut": "160194939126217786", "priorityMicroLamports": 10000 }

Returns the standard unsigned transaction (transaction, feePayer = owner, blockhash, lastValidBlockHeight, summary) plus venue and pool. The owner signs and sends it.

Nudge graduation

POST /api/markets/:mint/graduate

Runs the graduation keeper for one Etch bonding-curve launch now (it also runs every 5 minutes). A no-op until the curve is full. Migration is permissionless on chain; Etch only pays network fees.

Preview a curve

GET /api/markets/preview → { enabled, cluster, presets, goalLimits }

POST /api/markets/preview with { totalSupply, allocation, vesting?, dbc } returns the launch’s start and graduation price, price multiple, production budget, liquidity locked at graduation and a chart sketch — computed with Meteora’s own curve builder, before anything is launched.

Last updated on