Anchors
Pin an answer to on-chain state, so the number your agent acted on can be checked by anyone, later, without trusting us.
Writing an answer to chain is not built. Reading one is, and it is live on mainnet: answers are checked against on-chain references and labelled anchored when they agree, with the feed, the value, the round timestamp and the tolerances all recorded on the trace.
The two get spoken of as one thing and are not. Reading an anchor means comparing an answer against chain state before delivering it. Writing one means leaving a record on chain that this answer was delivered, at this time, at this level, which a third party can check without asking us anything.
What reading gives you today
Chainlink Data Feeds on Solana, read from the aggregator's own account state rather than from an API in front of it. Six mainnet pairs are wired: SOL, BTC, EURC, JLP, JUP and WBTC. Exchange rate feeds are deliberately excluded, because a ratio is not a price and comparing a USD answer against a BTC-denominated ratio would diverge on every call.
Every round carries a timestamp, and it is checked against a limit derived from the heartbeat that feed publishes for itself. Mainnet heartbeats run from 180s to 600s by pair, so the limit is per feed. A price that agrees but is older than the feed's own guarantee does not earn the label.
If the reference is unreachable, the check fails rather than passing by omission. The oracle disagreeing and the oracle not answering are different events, and a system reporting them identically is reporting neither. Both are named in the trace, along with which oracle answered and whether the read came from chain state or from an oracle's HTTPS service.
Choosing what counts
By default an independent signed oracle read over HTTPS also earns the anchored label, and the answer says which through anchorKind. A caller who meant chain state specifically can set requireOnChainAnchor, and the off-chain fallback is then skipped rather than substituted. Combined with a minimum level, that turns into a refusal at no cost instead of a quiet substitution.
What writing would add
A commitment made at delivery time that cannot be revised afterwards. Useful when an agent has to defend a decision to someone who was not in the room and has no reason to take our word for what it was told. It is the difference between a log you hold and evidence someone else can verify.
The design constraints are already clear. It has to be optional, because a chain write costs something real and most calls do not need one. It has to be priced separately rather than folded into the call. And it has to commit to the trace rather than only to the value, since a number without its reasoning is exactly the thing this product exists to stop shipping.
What we will not do
Publish an anchored answer as proof of correctness. An on-chain record proves what was delivered and when. It does not make the number right, and a product that let those two be confused would be selling certainty it does not have.