Flare RPC: The L1 With Oracles Built Into the Protocol
On most chains, getting external data into a smart contract means integrating a third-party oracle — deploy against Chainlink, wire up feeds, manage the dependency. Flare inverts that: the oracle is part of the chain. Decentralized price feeds (FTSO) and cross-chain/Web2 data verification (FDC) are enshrined protocol primitives — contracts read them natively, with no external oracle to deploy or pay. For a developer, Flare is a standard EVM L1 on the surface (chain ID 14, ordinary eth_*, viem/ethers/foundry unchanged) — but its native data layers are the reason to build here, and they're all reachable over the same RPC. Here's the map.
The essentials
Flare mainnet is chain ID 14, an EVM Layer 1 with:
- FLR as the gas token (18 decimals).
- ~1.8-second blocks with near-instant finality — once a block is accepted, it's final.
- Snowman++ / Federated Byzantine Agreement consensus (Avalanche-derived) — fast, BFT-style finality.
- EVM-compatible — Solidity, ABIs, and standard tooling work directly.
Connecting is boringly standard EVM:
import { createPublicClient, http } from "viem";
import { flare } from "viem/chains"; // chain ID 14
const client = createPublicClient({
chain: flare,
transport: http("https://rpc.swiftnodes.io/rpc/flare?key=YOUR_API_KEY"),
});
await client.getBlockNumber(); // just works
What makes Flare different: enshrined data protocols
Flare's reason to exist is bringing trustworthy external data on-chain natively. Two protocols are built into the base layer:
- FTSO (Flare Time Series Oracle) — decentralized price and time-series feeds, sourced from a set of independent data providers and delivered on-chain. Instead of integrating an external price oracle, a Flare contract reads FTSO feeds directly.
- FDC (Flare Data Connector) — lets contracts verify state from other blockchains and Web2 sources. It's the "is this true on chain X / at URL Y?" primitive, enshrined so contracts can trust attested external data.
The key point for RPC consumers: you access these the same way you access any contract — with eth_call. FTSO and FDC are exposed through on-chain system contracts, so reading a price feed or a verified data attestation is a normal EVM read against a known address. There's no separate oracle API and no special RPC namespace — the "oracle" is just more state your standard eth_call can reach.
// FTSO feeds and FDC attestations are read like any contract — standard eth_call.
const price = await client.readContract({
address: ftsoRegistryOrFeedAddress, // Flare's enshrined FTSO system contract
abi: ftsoAbi,
functionName: "getFeedById", // exact method depends on the FTSO version/interface
args: [feedId],
});
The developer implication is that a DeFi app needing prices, or a cross-chain app needing to verify a deposit on another network, does that with native reads rather than a third-party oracle integration. If you're pulling several feeds at once, batch the calls to cut round-trips — it's the same JSON-RPC batching you'd use anywhere.
Finality: near-instant, so drop the reorg defenses
Flare's FBA/Snowman++ consensus gives near-immediate finality — once a block is accepted, it doesn't roll back. Practically:
- No reorgs to defend against. The whole class of reorg-handling patterns — waiting N confirmations, keying on
(txHash, logIndex), tolerating tip rollbacks — collapses to "confirm once." Index at the head and trust it. - This matters doubly for oracle-consuming apps: a price read or a cross-chain attestation you acted on won't be undone by a reorg. That's the kind of guarantee you want when a feed drives liquidations or a bridge.
It's the same fast-finality profile as other BFT-style EVM L1s we've covered, like Kaia and Sei — code written to wait 12 confirmations is just adding latency here.
What carries over unchanged
Aside from the native data layers, treat Flare as a standard EVM chain:
eth_call,eth_getBalance,eth_getLogs,eth_getTransactionReceipt,eth_estimateGas,eth_sendRawTransaction,eth_subscribeall behave normally — including reading receipts for your own transactions.- Solidity contracts, ABIs, and the viem/ethers/hardhat/foundry toolchain deploy and run as-is.
- FLR is the gas token with 18 decimals; WebSocket subscriptions (
newHeads,logs) work; at ~1.8s blocks, stream rather than poll.
The short version
Flare (chain ID 14) is an EVM L1 with oracles enshrined in the protocol: FTSO delivers decentralized price/time-series feeds and FDC verifies cross-chain and Web2 data, both read through on-chain system contracts with ordinary eth_call — no third-party oracle to deploy or pay. It's standard EVM otherwise (FLR gas, ~1.8s blocks, viem/ethers/foundry unchanged), with near-instant finality so you can drop confirmation-counting and reorg defenses. Build it like any EVM chain, and lean on the native data layers instead of bolting on an external oracle.
Building DeFi that needs price feeds, or cross-chain apps that verify external state? A flat-rate Flare RPC endpoint gives you chain 14 over HTTP and WebSocket alongside 75+ other chains under one key. Grab a free key and point your stack at:
https://rpc.swiftnodes.io/rpc/flare?key=YOUR_API_KEY
Related posts
- WEMIX RPC: Building on a Gaming-First EVM Chain
WEMIX3.0 is a Korean gaming L1 from Wemade — EVM-compatible (chain ID 1111), ~1s blocks, WEMIX gas. viem and ethers just work, but two things shape how you build: a stake-based PoA council means instant finality and no reorgs, and the traffic is game-heavy. Here's the developer map.
- Story RPC: Querying the Chain Where IP Is a Protocol Primitive
Story (chain ID 1514) is an EVM L1 purpose-built for intellectual property — registration, licensing, and royalties as protocol modules. It's CometBFT under the hood, so finality is instant, and it's standard eth_* on top, so viem just works. Here's the developer map, including how to read the IP graph.
- Rootstock RPC: An EVM Chain Where Gas Is Bitcoin
Rootstock (RSK) is an EVM sidechain merge-mined by Bitcoin — chain ID 30, RBTC gas pegged 1:1 to BTC, ~30s blocks. viem and ethers connect in one line, but two things trip up Ethereum devs: gas is denominated in Bitcoin, and addresses use an EIP-1191 checksum that standard tooling gets 'wrong'. Here's the map.