Eiko: historical results first — 3 October 2026 The prior version opened the existing deposit form above the history. That missed the approved result-first discovery intent. The plan now leads with the last completed epoch's percentage versus the passive limit order and its dates. It does not claim a forecast or a wallet's personal return. The amount replay and budget-to-options calculators remain deferred. Loading - Current-vault history has a small same-origin archive for a first visit, plus a localStorage copy of successfully decoded live raw records. - The archive covers all 24 configured current series. A missing completed epoch stays missing; no neighboring strike or invented zero replaces it. - Earlier-vault lists are cached after the first complete source read. They still need that first read; the static archive covers current vaults only. - Restored results remain visible with Updating while a background read runs. Failed updates retain saved results and show update unavailable. - Current fees, balances, deposits and option quotes are not served from this cache. No transaction or valuation formula changed. Correctness - Current history is raw ABI data, decoded again with the existing canonical eight-word record checks and the same passive-limit calculation. - Keys include deployment generation, chain, vault, series, token pair and decimal convention. Pending strike links must match their exact raw strike. - Persisted data cannot restore skip permission. Only a successful live read in the current browser session permits a skip, for at most 60 seconds. - Same-count histories are re-read after that interval: reorg replacements cannot become permanently cached. Normal app refresh is every 90 seconds. - Current count and range are read in one multicall. All earlier sources use one shared block. Partial/unverified earlier sources cannot refresh a cache. - Concurrent same-context consumers share a bounded 30-second read. Timeout or rejection releases the lock. Late responses cannot repaint another asset. - Blocked/quota-full localStorage falls back to memory and live reads. Archive witness scripts/export-eiko-history.mjs made read-only calls through publicnode and the official Base RPC. Both returned byte-identical batches at block 52087161, hash 0x9c652ec74491598305dd5128128af6b3ae5c9cef13fce3aea095ca1f1a35d75f. The block hash was checked again after export. The raw records, address metadata, decimal checks and anchor are in eiko/history-seed.json. Review and tests Fresh Astra review found a delayed-seed/error status race and an equal-time epoch ordering issue. Both were corrected and have regression tests. test-history-cache.mjs: ten cases, real ethers decoding with stubbed fetch; restoration, absent metadata, duplicate reads, same-count replacement, failed update, wrong context, malformed data, timeout recovery, delayed seed and all-source inherited-history completeness. test-plan.mjs checks the headline, negative outcomes, date comparison, equal-time ordering and no automatic deposit opening. All 33 root Eiko JavaScript suites were run: 25 passed, the same eight baseline nonzero exits remained (aave-fork, alpha, chain-focus, core-housekeeping, m-cutover, markets-r2-live opt-in, no-swap-withdraw, vault-generation). check-wiring against 6e119846 and diff whitespace checks passed. Live checks Production /dev/eiko URL only. Desktop 1440x1000 and phone 390x844. Fresh and repeat visits, expanding history, opening the real deposit panel, and console inspection. No transaction was signed. One repeat-visit trace displayed +15.78% with Updating at 820.5ms after navigation (DOMContentLoaded 714.5ms), before the first XHR at 873.8ms. This is an observed trace, not a promised latency. The first archive fetch in the initial visit completed in about 44ms after it started. Final checked console: existing WalletConnect dappUrl warning only; an earlier read exercised RPC fallback and then completed. Independent Eiko implementation only. No Gyro, Merry, Meryl, indexer or beta changes. Committed to local dev; no push.