Skip to content
Small red and white spheres form eye shape
Abstract eye shape

Flare Zaman Serisi Oracle

High-integrity, block-latency data feeds.

Flare Time Series Oracle provides secure, fast and decentralized data feeds on Flare.

80 registered

59

32.8B ($669M)$669M

1.8s

High-integrity, block-latency data feeds.

Flare Time Series Oracle provides secure, fast and decentralized data feeds on Flare.

80 registered

59

32.8B ($669M)$669M

1.8s

What is FTSO?


Flare Time Series Oracle (FTSO) is an enshrined oracle the provides decentralized data feeds to Flare.

Nasıl çalışır

Data sources go to 100 Data Providers which go to verifiable randomness function and commit reveal under FTSO. Block-latency feeds and anchor feeds go from the previous two to every block 1.8s and every voting epoch 90s, respectively, under Flare, which both lead to application contracts.
The FDC verifies user-submitted attestation requests. Verified responses are organized into a Merkle tree, with only the Merkle root stored on-chain. Users retrieve attestation responses and Merkle proofs from data providers and submit them to smart contracts.
Data sources go to 100 Data Providers which go to verifiable randomness function and commit reveal under FTSO. Block-latency feeds and anchor feeds go from the previous two to every block 1.8s and every voting epoch 90s, respectively, under Flare, which both lead to application contracts.

Integrate FTSO

Leverage FTSO’s decentralized data feeds in your application today.

import "@flarenetwork/flare-periphery-contracts/flare/ContractRegistry.sol";
import "@flarenetwork/flare-periphery-contracts/flare/FtsoV2Interface.sol";

contract FtsoV2Consumer {
    FtsoV2Interface internal ftsoV2;

    constructor() {
        ftsoV2 = ContractRegistry.getFtsoV2();
    }

    function getFlrUsdPrice() external returns
        (uint256 value, int8 decimals, uint64 timestamp) {
        return ftsoV2.getFeedById(0x01464c522f55534400000000000000000000000000);
    }
}
import { Web3 } from "web3";

export async function main() {
  const w3 = new Web3(RPC_URL);
  const ftsov2 = new w3.eth.Contract(
    JSON.parse(ABI), FTSOV2_ADDRESS
  );

  const res = await ftsov2.methods
    .getFeedById("0x01464c522f55534400000000000000000000000000")
    .call();

  console.log(
    "Value: %s, Decimals: %s, Timestamp: %s", 
    res["0"], res["1"], res["2"],
  );
}
import asyncio
from web3 import AsyncHTTPProvider, AsyncWeb3


async def main() -> None:
    w3 = AsyncWeb3(AsyncHTTPProvider(RPC_URL))
    ftsov2 = w3.eth.contract(address=FTSOV2_ADDRESS, abi=ABI)

    res = await ftsov2.functions.getFeedById(
        "0x01464c522f55534400000000000000000000000000"
    ).call()

    print(f"Value: {res[0]}, Decimals: {res[1]}, Timestamp {res[2]}")
use alloy::{providers::ProviderBuilder, sol};
use eyre::Result;

sol!(
    FtsoV2,
    "abi/FtsoV2.json"
);

#[tokio::main]
async fn main() -> Result<()> {
    let provider = ProviderBuilder::new().on_http(RPC_URL);
    let ftsov2 = FtsoV2::new(FTSOV2_ADDRESS, provider);

    let FtsoV2::getFeedByIdReturn { _0, _1, _2 } = ftsov2
        .getFeedById("0x01464c522f55534400000000000000000000000000")
        .call()
        .await?;

    println!("Value:{}, Decimals:{}, Timestamp{}", _0, _1, _2);
    Ok(())
}
package main

import (
  "context"
  "fmt"
  "github.com/ethereum/go-ethereum/accounts/abi/bind"
  "github.com/ethereum/go-ethereum/ethclient"
)

func FtsoV2Consumer() {
  client, _ := ethclient.Dial(RPC_URL)
  ftsov2, _ := NewFtsoV2(FTSOV2_ADDRESS, client)
  var res []interface{}
  opts := &bind.CallOpts{Context: context.Background()}

  ftsov2.FtsoV2Caller.contract.Call(
    opts, &res, "getFeedById", "0x01464c522f55534400000000000000000000000000"
  )

  fmt.Println("Value: %i, Decimals: %i, Timestamp: %i", res[0], res[1], res[2])
}

Use cases


Lending and borrowing

Facilitate efficient loan issuance and settlement processes while mitigating risks by automatically liquidating undercollateralized positions.

Kinetic logo
XDFI logo

Perpetual futures and options

Enable complex financial products like perpetual futures and options by dynamically adjusting funding rates in real-time to maintain platform solvency.

Raindex logo
Sparkdex logo

Cross-chain order books

Match orders seamlessly across multiple blockchain networks, reducing transaction latency for a smoother trading experience. 

Layer Zero logo
Raindex logo

Real World Assets

Accurately determine collateral levels for stablecoins and power on-chain treasury yields by integrating real-world asset data.

Clearpool logo
FAssets Use Case Logo
FAssets Use Case Logo

FAssets

FAssets allows non smart contract tokens like BTC, DOGE and XRP to be used with smart contracts on Flare. The FTSO is used to provide decentralized data feeds to price tokens in the FAssets system.

FTSO secures the Flare ecosystem with decentralized data

Lock icon
Lock icon

Secure

FTSO is enshrined in the Flare blockchain, inheriting its full economic security to ensure robust data.

Icon of man running with wind behind him
Icon of man running with wind behind him

Fast

FTSO provides block-latency feeds that update approximately every 1.8 seconds, delivering real-time data.

Icon of arrows pointing up, right, down, and left
Icon of arrows pointing up, right, down, and left

Scalable

Supporting up to 1,000 feeds across equities, commodities, and cryptocurrencies, FTSO scales with the growing DeFi ecosystem.

Icon of profile of human head with lines running through the mind
Icon of profile of human head with lines running through the mind

Manipulation-resistant

Each feed is backed by around 100 independent data providers, selected by Flare users through delegated stake.

Icon of dollar sign in circle
Icon of dollar sign in circle

Cost-effective

Access to block-latency feeds is completely free on Flare, lowering barriers and fostering broad participation and innovation.