Stellar Index v0.5.0-rc.118
Pre-release[v0.5.0-rc.118] — 2026-06-18
Changed
- ADR-0027 (LCM cache tiering) accepted. The dual-source read path +
trim/rehydrate operators are implemented and gated behind the safe-by-default
ColdTieringEnabled()flag, so the design is the architecture of record. The
status note records that production activation (enable flag + bulk trim) is a
single operator-gated step — enabling §3 without §4 only adds the cold-path
failure mode with no headroom benefit. ADR-0012 (quorum-set composition)
remains Proposed by design: it's a deliberate placeholder gated on the
post-launch Tier-1 validator rollout (ADR-0004 Phase 3), not an open decision
we can make pre-launch without fabricating a validator trust set.
Added
-
Account incoming/participant history (ADR-0038 Phase B completion). A new
stellar.operation_participantsindex (one row per non-source account an op
touches — payment destination, trustor, merge target, clawback victim, …,
derived in the Go extract viaxdrjson.ParticipantAccounts). The
/v1/accounts/{g}/transactions+/operationsendpoints now UNION sourced
activity with participant activity and stampscope: "all"(was"sourced").
Live capture fills the index going forward (the extract is shared by the live
sink +ch-backfill); historical incoming coverage requires re-running
ch-backfillover the range (operator-gated). The explorer account view copy
is updated to reflect full (sourced + incoming) history. -
MEV feed: atomic-arbitrage detection. New
/v1/mevendpoint + a
detection worker (internal/aggregate/mev, runs in the aggregator every
5 min) that flags atomic arbitrage — a single transaction where one taker
trades a closed asset cycle (≥2 legs returning to a starting asset) across
pools/venues. This is the one MEV pattern the served trade data supports
unambiguously (rows lack intra-ledger tx ordering, so cross-tx sandwich
detection would be guesswork). Each event stores its evidence (assets /
venues / cyclic legs / USD notional); idempotent via a dedup key
(migration 0067 adds thearbitragekind +dedup_key). The explorer
/mevpage now renders the live feed. Paired Prometheus metrics
(mev_detect_runs_total/_duration_seconds+mev_events_inserted_total).
profit_usdstays null — v1 detects the cycle structurally, it does not
estimate profit (leg direction is ambiguous in the served rows). -
Blend per-pool lending stats.
/v1/lending/poolsnow lists pools seen in
EITHER the auction OR position stream and adds a 30-day net-flow proxy per
pool (net_supplied_30d/net_borrowed_30din token base-units +
utilization_30d_pct); the Lending protocol page gains a Net position by
pool table. These are event-derived WINDOW deltas, not all-time TVL or
on-chain utilisation — real current-state TVL + supply/borrow APYs
(reserve b_rate/d_rate) still need the Soroban pool-storage reader, which
these fields explicitly stand in for. -
Crypto market-cap-over-time.
/v1/chart?price_type=market_capnow
serves on-chain (native / classic / Soroban) base assets instead of
returning 501: each day's market cap = the existing daily USD price series
(with the stablecoin-USD proxy fallback) × that day's circulating supply
from a newsupply_1dcontinuous aggregate (migration 0066, last-known
supply per asset/day, forward-filled). Off-chaincrypto:*reference
assets (no on-chain supply) return an empty series rather than a fabricated
cap. Supply is scaled at 7 decimals (matches the spotmarket_cap_usd).