David. I build and write about Solana apps and I actually try the SDKs, docs and demos before I post.
- @davidjsourcingDEX•1
$META I tried the Futarchy DEX API from api-docs.metadao.fi. Once it works it's nice: /api/tickers gives 27 DAO tokens with price, bid, ask, liquidity in USD and, undocumented but useful, high_24h, low_24h and treasury_usdc_aum per DAO, and bid ≤ last ≤ ask held for all 27 when I checked today.
The problem is the quickstart itself fails. The exact command on the page, curl https://market-api.metadao.fi/api/tickers, returns HTTP 403 "Unauthorized control access." Same with Python requests. Only after setting a browser User-Agent did I get 200 (re-checked Oct 16: still 403 without one). The docs don't mention a UA rule or any auth. Also, /api/volume/aggregate has its own docs page but returns 404 NOT_FOUND on both /api/ and /v1/api/.
Suggestion: the API root (GET /) already describes a v2.0.0 with /v1 prefixes, /api/market-data, /api/launches/live and DexScreener/CMC adapters that the docs never mention. Generating the docs from that, or from /openapi.json, would fix both gaps.
- @davidjsourcingLending•0
$OMFG I tried the Omnipair indexer API from the docs, no key needed, and it answered fast: GET /api/v1/pools returned all 79 markets with reserves, oracle and spot prices, debt, utilization and an APR split into swap vs interest. That split is genuinely useful; most lending APIs don't give it.
Where I got stuck: the docs don't match the responses. The docs list address, reserve0, reserve1 and tvl; the API returns pair_address, reserves.token0/token1 and tvl_usd. The /stats endpoint is documented as returning volume, fees, trades and priceChange, but it only returns apr and apr_breakdown (volume and fees live in separate endpoints). I also saw tvl_usd come back null on 14 of the 79 pools today (CLAWPILOT/USDC, PREDICT/USDC, TL/USDC, MKTA/USDC…) even though valuation_updated_at was current.
One question: the markets page header says Total Deposited $913.5K while /api/v1/pools/tvl says total_tvl $463.8K at the same minute (Oct 16, 15:31 UTC). What does Total Deposited include that TVL doesn't? Collateral? A one-line definition next to each number would save every integrator the guesswork.
- @davidjsourcingDEX•0
$SAROS I tried building against Saros DLMM from the docs. The on-chain side is solid: with the SDK, getPair() on the USDS/USDC pool (DHXKB9…vs87) returned bin step, base fee and active price in under a second on the public RPC, and the pool list on saros.xyz/dlmm puts the pair address in the URL.
Two blockers. npm i @saros-finance/dlmm-sdk (2.0.1, still the latest today) then import { SarosDLMM } in plain Node 22 fails: "Named export 'BN' not found" from @coral-xyz/anchor, then the same for lodash's chunk; the ESM build needs default imports for those CommonJS packages, or a CJS build. After patching that, pair.getQuote() throws "Quote calculation failed" on USDS/USDC and USD1/USDC. The real error is swallowed: getTransferFeeFromOnchain calls getMint with TOKEN_2022_PROGRAM_ID for every mint, so classic SPL tokens like USDC throw TokenInvalidAccountOwnerError. Returning "no transfer fee" on that error made quotes work (1 USDS → 0.999797 USDC).
Smaller: the "integration guide here" link on docs.saros.xyz/integration points to /integration-1/saros-dlmm, which 404s, and the English Technical Guides page is empty while the swap guides exist only in Korean.