Skip to content

Stellar Index v0.5.0-rc.118

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jun 20:47

[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_participants index (one row per non-source account an op
    touches — payment destination, trustor, merge target, clawback victim, …,
    derived in the Go extract via xdrjson.ParticipantAccounts). The
    /v1/accounts/{g}/transactions + /operations endpoints now UNION sourced
    activity with participant activity and stamp scope: "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-backfill over the range (operator-gated). The explorer account view copy
    is updated to reflect full (sourced + incoming) history.

  • MEV feed: atomic-arbitrage detection. New /v1/mev endpoint + 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 the arbitrage kind + dedup_key). The explorer
    /mev page now renders the live feed. Paired Prometheus metrics
    (mev_detect_runs_total / _duration_seconds + mev_events_inserted_total).
    profit_usd stays 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/pools now 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_30d in 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_cap now
    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 new supply_1d continuous aggregate (migration 0066, last-known
    supply per asset/day, forward-filled). Off-chain crypto:* reference
    assets (no on-chain supply) return an empty series rather than a fabricated
    cap. Supply is scaled at 7 decimals (matches the spot market_cap_usd).