SaverFi · public

Prices, and where every one of them comes from

Read on the server, on mainnet, when this page was requested: no wallet, no session and no client-side fetch. Each figure is printed with its age, its slot or its source, because a number without its provenance goes stale in silence. Anything that would not read says so and takes nothing else down with it.

Accounts read at
slot 460178652
Chain clock
2026-10-22T20:55:36Z (epoch 1065)
Ages measured against
the Clock sysvar, never this server's wall clock
Page built at
2026-10-22T20:55:36.972Z (this server's clock, used for nothing else)

1 · Pyth, where it already stops money

SOL/USDC: the pool against the oracle

This is the one place in SaverFi where an oracle is not decoration. Before the keeper converts a vault's saved SOL into the USDC a purchase is paid in, it prices that hop against Pyth's SOL/USD and USDC/USD push accounts and refuses the conversion when the oracle is too old or too far from the route it captured. Both bars are read from the keeper's own source, below.

Pool mid, SOL/USDC

$103.05

Raydium CLMM 3ucNos4NbumPLZNWztqGHNFFgkHeRMBQAVemeeomsUxv, sqrt price at slot 460178652. A mid, not a quote: it is the price at zero size, before any fee or impact.

Pyth SOL/USD ÷ USDC/USD

$103.08

SOL/USD $103.06 published 3 s ago; USDC/USD $0.9997 published 3 s ago. Both accounts are owned by the Pyth receiver and carry the feed ids this repository pins, or they are not read at all.

Pool against oracle

-3 bps

Signed, as bps of the oracle's rate, taken in the same 1e18 unit the keeper's own gate compares in.

The guard that is already live

In packages/solana-keeper/src/invest-decision.ts, oracleConvertDecision will not price the SOL hop when the stalest of the two publishes is more than 60 s behind the chain's clock, and skips the hop when the route it captured and the oracle disagree by more than 500 bps of the oracle's rate, in either direction. The keeper calls it from its investment tick, packages/solana-keeper/src/invest-tick.ts. A skipped hop means the vault's SOL stays SOL: the product would rather not buy than buy at a price nothing vouched for.

The two numbers above are read out of that file by a test in this repository, so this paragraph cannot outlive the code it describes. What the keeper compares is the route it captured for the turn; this page compares the pinned pool's mid, which is the closest thing a public page can show without a wallet or a quote.

What the bars say about this reading

both arms pass

At this reading the oracle is inside 60 s and inside 500 bps, so a conversion would be priced. It is a reading, not a promise: the keeper re-reads both at the moment it moves money.

2 · the xStock and its underlying

SPYx: the pool against Pyth's SPYX/USD

SPYx is the only asset on this shelf that SaverFi reads a Pyth push account for. That account is refreshed by a third party on that party's schedule, not SaverFi's — an equity feed can be minutes or hours old — so the age sits beside the price and you can judge it instead of trusting it.

Pool mid, per SPYx token

$764.04

Raydium CLMM 6truu3rZuiB9rKQg4VYC3Dt3QwV7DgwGqXrYUcrvnDDE at slot 460178652. The pool trades RAW units; the mint's live scaledUiAmount multiplier is folded in first, so this is a price for one token as a holder's balance counts it.

Pyth Crypto.SPYX/USD

$762.58

Push account 27Tv3HxU34AKxZ8MgfFAA1gCbWa96msMG5BvSWAHkBfj, owned by the Pyth receiver, feed id 2817b78438c76935…. Published 1 h 07 min before the chain's clock. Nobody in this product refreshes it.

Pool against the feed

+19 bps

Pool $764.04 against the feed's $762.58, as bps of the feed. Both sides are priced per UI-scaled token. Read the age above before reading this: a gap against a reading that old is as much a fact about the feed as about the pool.

Why the multiplier matters here. XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W has 8 decimals and carries Token-2022's scaledUiAmount extension with a multiplier of 1.005714560286254 (its scheduled record, whose timestamp has arrived). A raw-unit price compared with a per-token price without folding that in would be off by about 57 bps — larger than most of the gaps this page exists to show.

3 · the PreStock

ANTHROPIC: the pool, the issuer's own numbers, and the fee

PreStocks publishes its own marks at prestocks.com/api/prestocks — public, keyless, and fetched here on the server. The issuer also controls the mint: the transfer fee below is read from the mint account, not from the API, and the rate written for a future epoch is read there too.

Units, checked before any premium

the two sides count the same token

the mint's own supply, read from the same account as the fee (7680935244157 raw at 9 decimals, scaledUiAmount multiplier 1), is the supply the API reports, so the API's dollars are dollars per UI-SCALED token and the pool's raw mid — scaled the same way — is the same quantity

Pool mid, per ANTHROPIC token

$1,020.47

Raydium CLMM 47MsbowAJnPPt6jgSGLK4hdCtKqRRcKT5pTFHPV7WBPt at slot 460178652, the pool this product reads the leg's price from. It is not the route a purchase takes: the keeper buys through Jupiter, which picks its own.

PreStocks tokenPrice

$1,021.61

The issuer's own figure, read from prestocks.com/api/prestocks when this page was requested. The API has no timestamp in it, so its age is this request's age and nothing better; the entry was matched to the mint Pren1FvFX6J3E4kXhJuCiAD5aDmGEb7qJRncwA8Lkhw, never to the symbol alone.

PreStocks markPrice

$972.69

The issuer's mark for the same token, same answer, same request. The two differ because they are two different numbers the issuer publishes, not two readings of one.

Pool against tokenPrice

-11 bps

Pool $1,020.47 against $1,021.61, as bps of the issuer's figure.

Pool against markPrice

+491 bps

Pool $1,020.47 against $972.69, as bps of the issuer's mark.

Transfer fee, from the mint

100 bps

In force since epoch 1050, read from Pren1FvFX6J3E4kXhJuCiAD5aDmGEb7qJRncwA8Lkhw's TransferFeeConfig at the epoch in the Clock sysvar above. Nothing higher is written for a later epoch.

Depth, at the size a purchase really uses

$698

USDC held by the pinned pool 47MsbowAJnPPt6jgSGLK4hdCtKqRRcKT5pTFHPV7WBPt, counted at slot 460178652 from the vault the pool itself names. The size one leg of a full basket spends at this product's shipped caps is $200, and an asset is only put on the shelf when a venue covers that 50× — $10,000. This pool is one pinned price source, and the keeper counts the accounts the CHOSEN route names at the moment it spends, which is a different and smaller number: depth is a moment, not a property of an asset.

4 · the eight PreStocks

Why each one is or is not offered

The shelf is not hand-picked. It is every asset the rules in @sip/solana-core find nothing wrong with, and the sentences below are those rules' own — measured on mainnet on the date each one names, not written for this page. A reader who disagrees with an exclusion can re-run its rule.

  • ANTHROPIC

    on the shelf

    Anthropic PreStock

    Every rule below passed at the reference leg. The keeper still re-measures depth and price inside the turn that spends the money.

    Pren1FvFX6J3E4kXhJuCiAD5aDmGEb7qJRncwA8Lkhw

  • FIGUREAI

    not offered

    Figure AI PreStock

    • HELD — it was read under one of these bars recently and is held out until 2026-10-20, when a fresh reading may clear it

    PreZad18qfPtbxNpMtMuAuX2zVpvkEU8DnJx56faCWd

  • OPENAI

    not offered

    OpenAI PreStock

    • PRICE_AT_SIZE — a $200.00 buy was quoted 29.8 bps worse than a $12.50 probe (Manifest 6Gi6cz… at both sizes, read 2026-09-21), over the 25 bps this keeper allows a turn's own impact
    • FLOOR — no Raydium CLMM/USDC pool is pinned for it, and SaverFi reads a leg's price from nothing else

    PreweJYECqtQwBtpxHL171nL2K6umo692gTm7Q3rpgF

  • NEURALINK

    not offered

    Neuralink PreStock

    • DEPTH — Manifest G3LHQo… held $8,995.00 (venue-wide, read 2026-09-21), under the $10,000.00 that covers a $200.00 leg 50x
    • PRICE_AT_SIZE — a $200.00 buy was quoted 77.9 bps worse than a $12.50 probe (Manifest G3LHQo… at both sizes, read 2026-09-21), over the 25 bps this keeper allows a turn's own impact
    • FLOOR — no Raydium CLMM/USDC pool is pinned for it, and SaverFi reads a leg's price from nothing else

    PrekqLJvJ3qVdXmBGDiexvwUTF4rLFDa6HWS4HJbw9S

  • SPACEX

    not offered

    SpaceX PreStock

    • DEPTH — Meteora DLMM Chroid… held $7,542.00 (venue-wide, read 2026-09-21), under the $10,000.00 that covers a $200.00 leg 50x
    • PRICE_AT_SIZE — a $200.00 buy was quoted 27 bps worse than a $12.50 probe (Meteora DLMM Chroid… at both sizes, read 2026-09-21), over the 25 bps this keeper allows a turn's own impact
    • FLOOR — no Raydium CLMM/USDC pool is pinned for it, and SaverFi reads a leg's price from nothing else

    PreANxuXjsy2pvisWWMNB6YaJNzr7681wJJr2rHsfTh

  • POLYMARKET

    not offered

    Polymarket PreStock

    • DEPTH — Manifest J4PjSn… held $7,264.00 (venue-wide, read 2026-09-21), under the $10,000.00 that covers a $200.00 leg 50x
    • FLOOR — no Raydium CLMM/USDC pool is pinned for it, and SaverFi reads a leg's price from nothing else

    Pre8AREmFPtoJFT8mQSXQLh56cwJmM7CFDRuoGBZiUP

  • KALSHI

    not offered

    Kalshi PreStock

    • DEPTH — Meteora DLMM (reached through a first hop that changed between readings) held $4,229.00 (venue-wide, read 2026-09-21), under the $10,000.00 that covers a $200.00 leg 50x
    • PRICE_AT_SIZE — a $200.00 buy was quoted 96.7 bps worse than a $12.50 probe (GoonFi V2 + Meteora DLMM at 200 USDC vs Raydium CLMM + Scorch + Meteora DLMM at 12.50, read 2026-09-21), over the 25 bps this keeper allows a turn's own impact
    • FLOOR — no Raydium CLMM/USDC pool is pinned for it, and SaverFi reads a leg's price from nothing else

    PreLWGkkeqG1s4HEfFZSy9moCrJ7btsHuUtfcCeoRua

  • ANDURIL

    not offered

    Anduril PreStock

    • DEPTH — Manifest BeUdSs… (a Meteora DLMM answered the probe instead) held $2,016.00 (venue-wide, read 2026-09-21), under the $10,000.00 that covers a $200.00 leg 50x
    • PRICE_AT_SIZE — a $200.00 buy was quoted 33.3 bps worse than a $12.50 probe (Manifest BeUdSs… at 200 USDC vs Meteora DLMM Gug9Tr… at 12.50, read 2026-09-21), over the 25 bps this keeper allows a turn's own impact
    • FLOOR — no Raydium CLMM/USDC pool is pinned for it, and SaverFi reads a leg's price from nothing else

    PresTj4Yc2bAR197Er7wz4UUKSfqt6FryBEdAriBoQB

SPYx is on the same shelf under the same rules and has its own block above. All eight PreStocks were read on 2026-09-21 with one key — WV9PJN7XTmTLVwbutCLFxp8TyePee6Xq5mRq6Fti5Wc — holding every one of their mint, freeze, permanent-delegate, transfer-fee-config authorities, and every one of them is pausable. That is as true of the one that is offered as of the seven that are not, and it is why the transfer fee above is read from the mint on every request rather than remembered.

5 · the second path to the same oracle

Pyth's own service, beside the account the keeper trusts

Section 1 reads a Pyth push account: bytes on Solana, refreshed by whoever chooses to refresh them, and the reading the keeper's gate actually consults before it converts a vault's saved SOL. Pyth answers for the same feed id directly too, over its Hermes service, as of now. Two independent paths to one oracle — so the figure worth printing is not the second price, it is the drift between them: how far the reading a money decision rests on sits from what Pyth publishes at this instant.

A drift is a fact about two readings taken at two moments, not an accusation, and neither path is the corrected version of the other. The account is what the chain can see; Hermes is what Pyth says now. Read the gap and the two publish times together.

Pyth Hermes

could not be read

Pyth's Hermes answered HTTP 403: Not entitled: feed ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d (no grant accepts this feed (asset type 'crypto', instrument type 'spot')). The push-account figures above are unaffected: this page waits at most two and a half seconds on Hermes and then renders without it.

Measured 2026-09-25 against this deployment’s own credential: the free tier reaches the crypto majors — Crypto.SOL/USD and Crypto.USDC/USD, the two feeds the keeper’s gate reads — and answers 403 "Not entitled: feed" for the tokenised-stock and equity feeds (Crypto.SPYX/USD, Crypto.NVDAX/USD, Equity.US.SPY/USD, Equity.Index.ANTHROPIC/USD). So this page asks Hermes for those two feeds and for nothing else.

Equity.Index.ANTHROPIC/USD — still not read

A PreStock's underlyinghas no feed this page can reach. SPYx above has a Pyth push account; the equity index behind a PreStock has neither that nor an entitled Hermes feed on this credential, so no figure anywhere on this page is the underlying company's price. The issuer's own marks are the issuer's.

Both readings above are taken in src/lib/prices-data.ts, on the server. The app's pinned Content-Security-Policy lists no Hermes origin for the browser, and a credential has no business in a bundle: it travels in an Authorization header from this server and appears in nothing this page returns.

Every figure here is a public account or a public API, read on the server at request time. Mids are mids: they are the price at zero size, before a fee, before impact, and before a router picks a venue. Nothing on this page is advice, and nothing on it is a quote you can trade on.