Skip to main content

Independent · open · public-tier free

The Stellar Futurenet Explorer

Every ledger, transaction, account, asset, and Soroban contract on Stellar Futurenet — complete, verified, per-protocol on-chain data through a public REST API. Every panel below shows the exact API call that produced it.

24h volume
Stellar on-chain (SDEX + DEXes)
Active markets
trading in last 24h
Assets indexed
classic + native
Sources online
on-chain sources
Ledger tip
ingest cursor

Network

Stellar pulse

classic assets indexed
current ingest tip
Open ledgers

System health

Loading…

Diagnostics

Watch the indexer tick.

Per-source ingest cursors, refreshed every 15 seconds — see every backfill chunk advance in real time.

Open diagnostics

Recently shipped

What landed in the last release. Scrolling history at /changelog.

  • Fixedv0.46.1 · 2026-08-28

    Transitive pricing was shipped INERT in v0.46.0. Verified on r1 after that deploy: all four binaries on v0.46.0, and CAUP7NFA… still served no price_usd. applyAssetRowToDetail early-returns on sql.ErrNoRows, and a Soroban-native contract asset has no classic_assets row *by definition* — that table requires a G-issuer. The whole premise of transitive pricing is "the catalogue cannot reach this asset", so the one branch the feature had to survive was the one the fill sat behind. Both arms now route through a shared fillTransitivePrice, with a regression test proven red against the shipped bug.

  • Addedv0.46.0 · 2026-08-28

    Soroban-native assets are priceable through one substance-gated hop. The catalogue prices the long tail through exactly two hard-coded shapes (direct_usd, asset_vs_xlm), both built on classic_assets, which is structurally classic-only (issuer_g_strkey NOT NULL) — so no Soroban contract asset could reach either, however deep its market. CAUP7NFA… traded $71.8k over 6,418 trades in 7 days and served no price. Now price(A) = vwap(A/hop) × price(hop), with both legs independently substance-gated: a two-hop price inherits its weakest leg, and an ungated intermediate could reprice everything quoted against it. Served last (never overriding an observed price) and marked price_basis: "transitive".

  • Addedv0.46.0 · 2026-08-28

    ECB standby for the fiat-FX feed. massive is a paid feed and was the only series in stellarindex_external_fx_last_quote_unix, so a lapse or a 429 broke every fiat-quoted pair once the 7-day forex-snap lookback expired. ECB is free, keyless and authoritative; rates are rebased onto USD (usdRate(X) = eurRate(X) / eurRate(USD)). fx_quotes.source and the metric label follow the feed that actually served.

Latest from the blog

Engineering notes + product updates. Sourced from docs/blog/*.md in the public repo.

All posts

Stellar Index API

One verified price for every Stellar pair.

The API behind this explorer — the same data, machine-readable. VWAP, TWAP, and OHLC computed from every CEX, DEX, and oracle we index, served over REST + SSE with deterministic closed-bucket semantics, alongside the ledger, contract, asset, supply and history endpoints. Anonymous reads are free forever; an API key raises your rate limit from 60 to 1,000+ requests a minute, with tiers and SLAs beyond that.

GET /v1/price
Latest closed-bucket VWAP for any pair.
GET /v1/price/tip
Rolling live price, sub-minute freshness.
GET /v1/ohlc
Candles — daily history back to 2015.
GET /v1/price/stream
Server-Sent Events push feed.

Try the API

The free public tier needs no key — pick an example and paste it straight into a terminal. An API key lifts the rate limit when you outgrow it.

$ curl 'https://api.futurenet.stellarindex.io/v1/price?asset=native&quote=USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN'

No auth needed for the public tier — every endpoint here responds in milliseconds. Hit ▶ to run live; click any example tab above to see the curl.