An oracle print looks like the market. A contract reads one number and treats that number as the book. The feed is the first story. How stale it is, and who may push it, is not.
A feed can keep a pool honest. It can also freeze a liquidation path on an old print. I read an oracle the way a wall clock is read: the face is a claim. The last wind of the spring is the fact.
- A print is the first reading
- A heartbeat is not a live book
- Who may push the number
- Note I kept for a feed called DIAL
- A print that is actually fresh
- Check the last update before you treat the face as the book
A print is the first reading
The problem is easy to name. A lending pool, a perp, or a mint reads one on-chain number. The first reading treats that number as “the market.” The number is a message. The message has an age, a source set, and a path that can stall.
Is the first reading always false? No. Some feeds update often, from more than one source, and the contract refuses a print that is too old. The first reading fails when a single updater can post, when the heartbeat is long next to the risk window, or when a secondary source is named in docs and absent on chain.
My claim is narrow. An oracle print is a posted value. A market is a set of live books. Mixing them turns a clock face into the street.
Opinion, not a law for every feed: the dashboard number is a costume. The last update timestamp is the room.
A heartbeat is not a live book
Many feeds promise an update at least every N seconds. That is a maximum silence, not a tick. Between beats the contract still sees the last print. Liquidations can run, or fail to run, on that silence.
Question I keep on the page: what is the longest allowed gap, and what does the contract do if the gap is exceeded? If it keeps using the old print, write that. Do not call the heartbeat a live tape.
Exception: a contract that pauses when the print is stale is a different object. Pause is a stop. It is not a fresh number.
Who may push the number
Some feeds are a multisig of reporters. Some are a single relayer. Some pull from a second contract that itself has an admin. The print is only as wide as that set.
Observation from public explorers: I have opened an aggregator, counted oracles, and found a threshold of three out of five. A day later two were silent. That count is a fact on a page. It is not a verdict on every hour.
Condition: if docs list ten sources and the live contract lists three, the paper and the chain disagree. Name both. Stop before the ten become the fact.
Note I kept for a feed called DIAL
I keep a note for a made-up feed I call DIAL. Docs: update every 60 seconds, five reporters. On a Wednesday the last print was 19 minutes old. Three reporters had not posted that window. A pool still used the print to size a liquidation. The dashboard still said live.
Question in the margin: live compared with what? Answer I could defend: live as a stored integer. Not live as a 60-second book.
Was I looking at a live book? No. DIAL is a page. The experience was lining heartbeat, last timestamp, and reporter count. A reader can repeat that line on any public feed without taking a position.
Exception I left beside the note: if DIAL later refuses prints older than two minutes, the 19-minute case dies. Until that check exists, the face can lag the street.
A print that is actually fresh
The first reading works when the last update is inside the risk window, when more than one reporter must sign, and when a stale print pauses the path that depends on it. It works for that window.
It fails when one number is treated as the whole book. It fails when a weekend gap is ignored because the face still shows a value.
I do not treat a stale print as a command to act. I treat it as a reason to keep the face and the timestamp on two lines.
Check the last update before you treat the face as the book
The solution that holds under the conditions above is a short check, not a slogan.
Write the feed address. Write the last timestamp and the allowed gap. Write how many reporters must agree. Write what the contract does when the gap is exceeded. If a page will not show the last update, the “market price” sentence is not ready to stand.
If two feeds disagree, say so and stop before the face becomes certain.
The spare thought on the desk is small. A print can be a real message. The spring can still be unwound. I check the last update first. I do not call the face the book because the first reading stopped at the number on the wall.
The articles on this site are not investment recommendations or financial advice. They are structural analysis based on on-chain data and project documents.
Comments
Post a Comment