- A crypto oracle posts outside prices onto a blockchain as signed, timestamped claims, because a smart contract cannot look anything up for itself.
- When an oracle stops signing, its last price stays on-chain, and each protocol's own age limit decides whether its loans freeze or keep running on that old number.
- With Switchboard's support ending on 25 September 2026, Solana protocols were pointed to Pyth or RedStone, and switching oracles can move a loan's marked price with no trade.
A DeFi loan never sees the market. Every price it acts on was put there by a crypto oracle, a service that writes outside facts, usually prices, onto a blockchain. A smart contract cannot look anything up for itself, so somebody has to write the price in. What the oracle writes is a signed claim about what something is worth, and the contract acts on the latest claim until a newer one arrives.
On Solana, that arrangement stopped being invisible on 19 September 2026. Switchboard Technology Labs deprecated every Switchboard implementation that day, effective immediately, with all support services ending on 25 September. Solana Compass listed Kamino Finance, Jito, MarginFi and Drift among the protocols relying on its feeds. Each had six days to move to Pyth Network or RedStone. When an oracle stops signing, the last price stays on the chain. Whether a loan then freezes or carries on with that old number was settled by each protocol long before anyone announced anything.
Ava and Nina work through it at the two desks in the observatory, late, after the building has gone quiet. Ava reads any system by asking where the pressure sits and who set the limit on it. She explains without ever talking down. Nina opened her first brokerage account last October, and she fact-checks finance posts the way other people do crosswords. The first hour is bare structure: how a price reaches a chain, who pays to post it, and who decides how old it can get. The Switchboard shutdown goes on top afterwards, dates and all.
Nina arrives with her phone already unlocked. The post on her screen reads Solana DeFi breaks on Friday, and a few thousand people have liked it. Behind it, in another app, sits the position she actually cares about: a stack of SOL posted as collateral against a small USDC loan. She borrowed in April, because selling felt like quitting.
"Yes or no," she says, and sets the phone face up between them. "Does my loan break on Friday?"
Ava reads the post twice and slides the phone back. "Neither, yet. It depends on a number your app picked long ago. I'd rather show you the number than guess."
What is a crypto oracle, and why can't a blockchain check the price itself?
Nina fact-checks first, because that is what she does. She puts an exchange quote for SOL beside her app's price. The two are a few cents apart, which to Nina is a lead.
"One of them is lying," she says.
"Neither is," Ava says. "The exchange shows you a trade from a moment ago, between two people who both wanted it. Your app shows the last price somebody posted for your loan. Same box, two different things."
That second price is the reason a crypto oracle exists. A blockchain only works if every node reaches the same result from the same inputs. That agreement is the whole product. Now picture a program that stops mid-transaction to ask a website for the price of SOL. Different machines would get slightly different answers a second apart, and the network could no longer agree on what happened. So a contract never asks. It reads a value already sitting on the chain, and an outside price only gets there if somebody writes it in first.
"So the oracle is a messenger," Nina says.
"Closer to a notary," Ava says. "It collects prices from sources it trusts, combines them into one figure, signs the result and posts it. What lands on the chain is a signed, timestamped claim. Your loan believes it because of whose signature is on it. It has no other way of knowing."
Nina looks at the two prices again, and this time the gap reads differently. One number is a trade. The other is a note somebody left for her loan, and the note has a time written on it.
Who pays to post the price in a push or pull oracle?
A note with a time on it raises her next question by itself: who leaves the note, and how often does anyone bother?
Ava answers with a pen and the back of a printout. She draws two timelines, and on the first she puts marks at regular intervals, plus extra ones wherever the line jumps. That is a push oracle. The publisher posts on a schedule, and again whenever the price moves past a set threshold, paying the network fee for every post. Between two marks the price just sits there and ages. A contract reading it in the gap gets the last post, not the market.
The second timeline stays empty until a transaction arrives. That is a pull oracle, and its signed prices wait off the chain, refreshed constantly, until somebody pays to bring one in, usually inside the very transaction that needs it. Whoever wants to act carries the latest price in with them: a borrower repaying, say, or a liquidator closing a position.
"So the price only shows up when someone needs it?" Nina asks.
"When someone needs it and pays for the post," Ava says. "That's why 'the oracle stopped' means two different things. A push feed that stops simply stops posting, and the old price sits there getting older. A pull feed stops when nobody will sign a new price. The old one stays put, and nobody can carry in a fresher one at any price."
Nina turns that over for a while. Somebody always pays for freshness, either the publisher on a schedule or the person acting on the spot. The moment nobody pays, the price stops being news.
It becomes a memory with a signature on it.
Who decides how old a price can be?
"So who decides when the note is too old?" Nina asks. "The oracle, I'd guess, since it's their price."
"The oracle decides what the price was," Ava says. "Your app decides whether it's still fresh enough to act on."
Every read has an age: the gap between now and the timestamp on the last post. Nina's app compares that age with a limit its developers wrote in, and it decides what happens past the limit. It can refuse the price outright. The read fails, and whatever needed the price waits for a fresh one. Or it can accept the old price and carry on. That happens when the limit is generous, or when nobody wrote a check at all.
"Then why would anyone accept an old price?" Nina asks. "That sounds like choosing to be wrong."
"Because a strict limit fails on ordinary days too," Ava says. "Networks get congested and updates arrive late, and a tight limit stops the protocol every time. A generous one rides through those minutes, then pays for it on the day the minutes turn into days. There is no setting that avoids both."
Chainlink's explainer on blockchain oracles fits both outcomes into one sentence. If a contract's only oracle goes offline, it warns, the contract "will not have access to the data required for execution, or will execute improperly based on stale data". Read quickly, that is a warning about oracles. Read slowly, it is a menu each protocol orders from.
Nina gets there before Ava says it. "So the question was never whether the oracle is good," she says. "It's what my app does when the price is late."
"And your app answered it before you ever deposited," Ava says.
That is the quiet part of every lending protocol, and it is where the word trustless starts to strain. A loan on a blockchain trusts a signature and a clock. Somebody else decided how patient the clock would be. Nobody asked Nina when she deposited, because nobody asks depositors, and so the setting that matters most on her loan is one she has never read.
What happens when a crypto oracle stops for good?
Nina turns her phone around, Switchboard's announcement open on the screen. "Now Friday," she says. "And 'deprecated' is a very calm word for closing."
"It's a precise one, though," Ava says. "Deprecated means stop building on this, starting now. Support ending on the 25th means nobody answers for it after that. Neither date tells you the minute the last signature arrives."
The reasons, at least, are on the record, and none of them is a breach. Solana Compass reports three, all commercial. AI has lowered the cost of building your own oracle. A long bear market has squeezed the budgets of new chains and protocols, and direct data deals now bypass the oracle layer entirely.
The mechanism sits in Switchboard's own documentation. Its Solana feeds are pull-based: in the pattern the docs teach, a signed update rides in the same transaction as the program that reads it. That program brings its own age limit, a count of Solana slots called `max_stale_slots`. The switchboard-on-demand crate's example sets it to 100, with the comment "Maximum slots before data is considered stale". Past that age, the read fails, and so does the transaction. At roughly 400 milliseconds a slot, that is about forty seconds. That number comes not from any named protocol but from a documentation example.
So when the signing stops, nothing new can be posted, and the last price stays in the feed. From that moment its age only grows. Each protocol's limit decides the rest. Ava walks it through on Nina's own loan, one branch at a time, without guessing which branch her app is on.
If the limit is strict, the reads start failing once the last price ages past it. Anything on Nina's loan that needs a price then waits for a new feed to be wired in. That can include taking her SOL back out, because an app has to price a loan before it lets collateral leave. The same limit blocks a liquidation too. Her loan sits frozen in both directions, protected from a sale it might deserve and locked against an exit she might want.
If the limit is loose, or nobody wrote a check, the loan keeps being marked at the old number. Should SOL fall after the last post, the app still believes her collateral covers the loan. A liquidation that ought to fire does not, or fires late, after the collateral is worth less than the debt. That shortfall can end up with the pool's depositors, which makes a fresh price part of what a lending deposit is really trusting. Should SOL rise, she can't borrow against the gain. Meanwhile anyone watching the gap can borrow against collateral at a price the market has already left.
That is how a stale feed turns into somebody else's opportunity.
Nina reads the two branches back to herself and asks the question she came in with. "So what actually happens to my loan on Friday?"
| If your protocol's price limit is… | What it does with the last posted price | What it means for a loan like Nina's |
|---|---|---|
| Strict | Refuses to read it once it is older than the limit | Anything that needs a fresh price stops until a new feed is wired in |
| Loose, or never checked | Keeps reading it | The loan is marked where the market was, not where it is |
| Moved to a new oracle | Reads a new feed with its own sources and rules | The marked price can step with no trade |
None of those outcomes is a forecast. Whichever one applies to her app was chosen by whoever wrote its contract, and Friday only decides whether that choice gets tested. On the loose branch, the failure runs straight through how a DeFi liquidation actually fires. The sale that protects a lender waits on a price, and a price that stops arriving removes that protection without announcing it.
It is the mirror of the Ostium exploit in July, where a signed price from the future was accepted because nothing checked when it was from. The danger here runs the other way. A price from the past gets kept, because nobody can post a newer one, and the same unasked question sits underneath both cases.
Does switching to Pyth or RedStone fix a stale price?
Switching looks like the obvious fix, and Nina reaches for it first. "Pyth or RedStone, done by Friday, and the problem is solved?"
"Problem moved," Ava says. "A migration swaps not just the vendor but the ruler."
Every oracle builds its price from its own publishers and combines them its own way, so two feeds for the same asset rarely agree to the cent. When a protocol switches, every position gets re-marked against the new ruler in that moment, with nobody trading. For a loan far from liquidation, the step is noise. For a loan sitting close to it, the step can decide the outcome, and it comes from a change in plumbing the borrower never saw.
Both named replacements offer pull-based feeds, so the age question travels with the protocol. It will set a limit on the new feed too, and that limit is the next thing worth reading. A push feed would not retire the question either. The same Chainlink explainer describes push delivery "on a predefined schedule (e.g., every minute or whenever the asset price changes by 1%)". Between those posts the price ages like any other. A contract reading a push feed still has to compare each post's timestamp with the schedule. Skip the check, and an outage hands it a stale price.
"Is this like when the chain itself stops?" Nina asks.
"Nearly the opposite," Ava says. "When the chain stops, nothing moves, your loan included. When the price stops, the chain keeps running, and your loan keeps being judged by a number that stopped."
Switchboard's week also shows that a price feed is not a feature of the chain but somebody's service, with somebody's budget behind it. Her loan depends on that business too.
Nina's risk includes a board meeting she will never attend.
What to check before a price feed changes under you
Nina builds the check herself, out loud. She starts with who posts the price her loan is marked at, because until tonight she assumed the answer was the market. That leads to whether the price arrives on a schedule or only when someone pays to bring it in, since the answer tells her what "stopped" would even mean. Once she knows that, she needs the age limit, and what the app does with a price past it. The last question is the one Friday made urgent: whether the source is about to change, and to what.
"The post was wrong about Friday," she says. "Friday doesn't decide anything. A setting in my app decided it long before anyone announced a date. It was right about one thing, though. I had no idea who sets the price on my loan."
The one thing she does before bed is read. She finds her app's own migration notice and looks for which feed it is moving to and what age limit comes with it. She doesn't touch the loan, because tonight was about knowing which branch she is sitting on, and for the first time since April, she can find out.
A loan on a blockchain is judged by a note somebody paid to post and a clock somebody else set. Switchboard's shutdown made the note visible for a week. The clock was always there, and it belongs to whoever wrote the contract.
Which outside price would you check your own position against, and how old would you let it get before you stopped trusting it? Open a Solana short at 5x in the simulator, read the liquidation price its Liquidation Risk panel shows, and write both answers beside it. The $5,000 balance is simulated, which makes it the cheapest place to decide how stale a price you are willing to be judged by.










