Learn · Building on Flare
Consume FTSO feeds
FTSO feeds are readable from any contract or app. You resolve the oracle from the on-chain registry, ask for a feed by ID, and get back a value plus its decimals.
Feed IDs
Every feed has a 21-byte ID: a category byte, the ticker (e.g. BTC/USD) as ASCII, and zero padding. You never hard-code contract addresses — resolve the currentFtsoV2 from the ContractRegistry at runtime so upgrades don't break you.
On-chain (Solidity)
// resolve FtsoV2 via the registry, then read a feed
(uint256 value, int8 decimals, uint64 ts) =
ftsoV2.getFeedById(feedId);
// price = value / 10**decimalsThere are batch variants (getFeedsById) and a Wei-scaled variant for 18-decimal math. Some feeds charge a small fee per read; the registry exposes the fee so you can fund the call.
Off-chain (JS / TS)
For frontends, read the same contracts with viem/wagmi (an eth_call togetFeedsById), or consume Flare's published feed endpoints. Block-latency feeds update ~every 1.8s; anchor feeds settle every 90s with an accuracy band — see how a feed forms.
Last reviewed June 2026