Seraphim Lab Live

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**decimals

There 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.

Full interfaces, fee handling and starter repos:https://dev.flare.network/ftso.

Last reviewed June 2026