# FAQs

> Frequently Asked Questions for developers building on Flare.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

Source: https://dev.flare.network/support/faqs

This page answers common questions encountered by developers building applications on Flare networks.

## Network & Tokens[​](#network--tokens "Direct link to Network & Tokens")

### Where can I get testnet tokens (faucet)?[​](#where-can-i-get-testnet-tokens-faucet "Direct link to Where can I get testnet tokens (faucet)?")

Flare provides faucets for its public testnets:

-   **Flare Testnet Coston2:** Get C2FLR, FXRP, and USDT0 from the [Coston2 Faucet](https://faucet.flare.network/coston2). Use Coston2 for testing applications intended for Flare mainnet.
-   **Songbird Testnet Coston:** Get CFLR from the [Coston Faucet](https://faucet.flare.network/coston). Use Coston for testing applications intended for the Songbird canary network.

### What if I need more testnet tokens than the faucet gives me?[​](#what-if-i-need-more-testnet-tokens-than-the-faucet-gives-me "Direct link to What if I need more testnet tokens than the faucet gives me?")

The faucet is rate limited per address, which is enough for most development and testing. If your application genuinely needs more, for example because it registers TEE machines or runs a keeper loop, ask on one of the [support channels](#where-can-i-get-technical-support-or-ask-questions) and say how much you need and why.

Do not expect testnet tokens to be sent to a pasted address on request.

### Which network should I build against while developing?[​](#which-network-should-i-build-against-while-developing "Direct link to Which network should I build against while developing?")

Use **Coston2** unless you have a specific reason not to. It is the primary dApp testnet, it is the network the developer guides target, and it is where testnet FXRP and USDT0 are available from the faucet.

Some things are network specific:

-   [Flare Confidential Compute](/fcc/overview) is only available on Coston2 while it is in development.
-   FAssets also run on [Songbird](/fassets/songbird), which uses different [parameters](/fassets/operational-parameters) from Flare Mainnet.

### How do I add Flare/Songbird networks to my wallet (e.g., MetaMask)?[​](#how-do-i-add-flaresongbird-networks-to-my-wallet-eg-metamask "Direct link to How do I add Flare/Songbird networks to my wallet (e.g., MetaMask)?")

The easiest way is to visit the respective block explorer, click on **Connect** in the top right corner, and approve adding the network to your wallet.

-   **Flare Mainnet:** [Flare Explorer](https://flare-explorer.flare.network/)
-   **Coston2 Testnet:** [Coston2 Explorer](https://coston2-explorer.flare.network/)
-   **Songbird Canary-Network:** [Songbird Explorer](https://songbird-explorer.flare.network/)
-   **Coston Testnet:** [Coston Explorer](https://coston-explorer.flare.network/)

Alternatively, you can add them manually using the details on the [Network Configuration](/network/overview#configuration) page.

### What's the difference between Flare and Songbird?[​](#whats-the-difference-between-flare-and-songbird "Direct link to What's the difference between Flare and Songbird?")

-   **Flare (FLR):** The main production network with real economic value.
-   **Songbird (SGB):** A "canary network" - blockchain used for testing protocol-level features and dApps in a live environment with real consequences before they are potentially deployed to Flare. It serves as a proving ground.

Read more on the [Network Overview](/network/overview) page.

### Which RPC endpoint should I use?[​](#which-rpc-endpoint-should-i-use "Direct link to Which RPC endpoint should I use?")

-   **For Development/Testing:** The [Public RPCs](/network/overview#configuration) are convenient for getting started. However, they have rate limits and shared resources.
-   **For Production Applications:** It is **strongly recommended** to use a dedicated RPC endpoint from a provider for better performance, reliability, and support. See the [Developer Tools](/network/developer-tools#rpcs) page for options.
-   **For Running Nodes:** You can also run your own [RPC node](/run-node#rpc-node).

### Do I need an API key for the RPC endpoints or the block explorer?[​](#do-i-need-an-api-key-for-the-rpc-endpoints-or-the-block-explorer "Direct link to Do I need an API key for the RPC endpoints or the block explorer?")

No. The public RPC endpoints and the explorer APIs work without a key, so an `.env` variable such as `FLARE_RPC_API_KEY` can be left empty. That is enough for development, with the rate limits described above.

The one key you do need for FDC work is the [verifier API key](#where-do-i-get-the-fdc-verifier-api-key), which is also public.

### What is the block time and finality on Flare?[​](#what-is-the-block-time-and-finality-on-flare "Direct link to What is the block time and finality on Flare?")

Flare networks use the Snowman++ consensus protocol.

-   **Block Time:** Approximately 1.8 seconds.
-   **Finality:** Near-instantaneous (single-slot finality). Once a block is accepted by consensus, it's considered final.

Learn more on the [Consensus](/network/consensus) page.

## Development Resources[​](#development-resources "Direct link to Development Resources")

### Where can I find the addresses of Flare's core smart contracts?[​](#where-can-i-find-the-addresses-of-flares-core-smart-contracts "Direct link to Where can I find the addresses of Flare's core smart contracts?")

The addresses for contracts like `WNat`, `FtsoV2`, `FdcHub`, etc., vary by network.

1.  **Use the `FlareContractRegistry`:** This contract acts as a directory. It has the **same address** (`0xaD67FE66660Fb8dFE9d6b1b4240d8650e30F6019`) on **all** Flare networks (Flare, Coston2, Songbird, Coston). You can query its [`getContractAddressByName`](/network/solidity-reference/IFlareContractRegistry#getcontractaddressbyname) or [`getAllContracts`](/network/solidity-reference/IFlareContractRegistry#getallcontracts) methods to find the addresses of other contracts on the specific network you are connected to.
2.  **Check the Solidity Reference:** Deployed contract addresses for each network are listed on the relevant reference pages for convenience:
    -   [Network Reference](/network/solidity-reference)
    -   [FSP Reference](/network/fsp/solidity-reference)
    -   [FTSOv2 Reference](/ftso/solidity-reference)
    -   [Scaling Reference](/ftso/scaling/solidity-reference)
    -   [FDC Reference](/fdc/reference)
    -   [FAssets Reference](/fassets/reference)

### Are there official developer tools or SDKs?[​](#are-there-official-developer-tools-or-sdks "Direct link to Are there official developer tools or SDKs?")

Flare maintains several resources to aid development:

-   **Language-Specific Guides:** Tutorials for interacting with Flare using [JavaScript](/network/guides/flare-for-javascript-developers), [Python](/network/guides/flare-for-python-developers), [Go](/network/guides/flare-for-go-developers), and [Rust](/network/guides/flare-for-rust-developers).
-   **Starter Kits:** Pre-configured project templates for [Hardhat & Foundry](/network/guides/hardhat-foundry-starter-kit).
-   **Developer Tools List:** A curated list of [RPCs, Indexers, Bridges, SDKs, and more](/network/developer-tools).

### Where can I learn about Flare-specific terminology?[​](#where-can-i-learn-about-flare-specific-terminology "Direct link to Where can I learn about Flare-specific terminology?")

Learn more about the terminology used in the Flare ecosystem (like FTSO, FSP, PDA, etc.) on the [Terminology](/support/terminology) page.

### How do I give an AI coding agent accurate Flare context?[​](#how-do-i-give-an-ai-coding-agent-accurate-flare-context "Direct link to How do I give an AI coding agent accurate Flare context?")

Agents that work from memory alone tend to invent contract addresses and outdated protocol names. Two options give them the current documentation instead:

-   [Flare AI Skills](/network/guides/flare-ai-skills) packages Flare protocol knowledge for coding agents.
-   The [Flare Developer Hub MCP Server](/network/guides/flare-developer-hub-mcp-server) exposes these docs to any MCP-capable client.

## FTSO and Randomness[​](#ftso-and-randomness "Direct link to FTSO and Randomness")

### How do I show a live FTSO price in a frontend?[​](#how-do-i-show-a-live-ftso-price-in-a-frontend "Direct link to How do I show a live FTSO price in a frontend?")

Read the feed offchain rather than paying for a transaction on every page load. The [Read feeds offchain](/ftso/guides/read-feeds-offchain) guide covers querying `FtsoV2` directly from JavaScript, Python, Go, and Rust.

If your application logic needs the price onchain, expose a public method on your own contract that reads the feed, and call that.

### Can I get a secure random number within a specific range?[​](#can-i-get-a-secure-random-number-within-a-specific-range "Direct link to Can I get a secure random number within a specific range?")

Yes. The protocol provides a uniformly distributed random number, and you constrain it in your own contract, typically with a modulo of the range size. See [Secure Random Numbers](/network/guides/secure-random-numbers), and always check the `isSecure` flag before using a value.

## Flare Data Connector[​](#flare-data-connector "Direct link to Flare Data Connector")

### Where do I get the FDC verifier API key?[​](#where-do-i-get-the-fdc-verifier-api-key "Direct link to Where do I get the FDC verifier API key?")

The public verifier API key is `00000000-0000-0000-0000-000000000000`, listed with the verifier endpoints under [API Resources](/network/overview#api-resources) on the Network Overview page. The starter kits ship it in `.env.example`, which you copy to `.env` before running any script.

For higher DA Layer rate limits, open an [API Key Request](https://github.com/flare-foundation/developer-hub/issues/new/choose) issue.

### Why does the verifier return 401 Unauthorized?[​](#why-does-the-verifier-return-401-unauthorized "Direct link to Why does the verifier return 401 Unauthorized?")

Almost always the header name rather than the key. The verifier expects the key in an `X-API-KEY` header; header names such as `X-apikey` are rejected with a `401`.

Each verifier also publishes an interactive API document, for example [the XRP verifier](https://fdc-verifiers-testnet.flare.network/verifier/xrp/api-doc), which is the fastest way to confirm your request shape outside your own code.

### Why did no data providers pick up my attestation request?[​](#why-did-no-data-providers-pick-up-my-attestation-request "Direct link to Why did no data providers pick up my attestation request?")

The providers voted that they could not prove it. On the [AttestationRequests](https://coston2-systems-explorer.flare.rocks/attestation-request) page of the Flare Systems Explorer, each provider's bit vote is shown, and a request nobody can prove never enters the Merkle tree, so the DA Layer has no proof to return.

The usual causes, in order of how often they come up:

1.  The API returns a different value to each provider, so their response hashes disagree.
2.  Query parameters are embedded in the `url` field instead of `queryParams`.
3.  The endpoint is slow, private, or rate limited, so providers cannot fetch it at all. A locally correct request that mocks slow work in the background will still fail here.

The [FDC Troubleshooting](/fdc/troubleshooting) page works through each case with fixes.

### How long does an attestation take, and which voting round should I query?[​](#how-long-does-an-attestation-take-and-which-voting-round-should-i-query "Direct link to How long does an attestation take, and which voting round should I query?")

Attestation is round based, so a request takes minutes by design rather than returning within a transaction. Treat that as part of your architecture: submit the request, then complete the flow when the proof exists.

The round to query is derived from the timestamp of the block that contains your request, not one you choose. The [Web2Json guide](/fdc/guides/hardhat/web2-json) shows the calculation, and offsets differ between networks.

### Where can I find the list of authorized signers for FDC attestations?[​](#where-can-i-find-the-list-of-authorized-signers-for-fdc-attestations "Direct link to Where can I find the list of authorized signers for FDC attestations?")

There is no separate FDC-specific signer list. FDC does not move assets across chains itself; it produces verifiable attestations about events on other chains or Web2 sources. The signers backing an attestation are the current members of the [Flare Signing Policy](/network/fsp), the same validator set used across the Flare Systems Protocol, not a list maintained by FDC.

### Does FDC only verify data from other blockchains?[​](#does-fdc-only-verify-data-from-other-blockchains "Direct link to Does FDC only verify data from other blockchains?")

No. FDC verifies Web2 data as well through the [Web2Json](/fdc/attestation-types/web2-json) attestation type, alongside the chain-specific types such as [Payment](/fdc/attestation-types/payment) and [EVMTransaction](/fdc/attestation-types/evm-transaction).

## FAssets and FXRP[​](#fassets-and-fxrp "Direct link to FAssets and FXRP")

### Which assets are available as FAssets today?[​](#which-assets-are-available-as-fassets-today "Direct link to Which assets are available as FAssets today?")

FXRP is live. Other non-smart-contract assets are planned but not available yet, so build on FXRP today.

For testing, the [Coston2 faucet](https://faucet.flare.network/coston2) provides both FXRP and USDT0 alongside C2FLR. FXRP is also an [Omnichain Fungible Token](/fxrp/oft), so it can move to and from other chains over LayerZero rather than being confined to Flare.

### Can I choose which agent handles my redemption?[​](#can-i-choose-which-agent-handles-my-redemption "Direct link to Can I choose which agent handles my redemption?")

No. Redemption takes tickets from the front of a [FIFO queue](/fassets/redemption#redemption-tickets-and-the-redemption-queue), which prevents users from selecting agents and keeps the workload spread across them.

Minting no longer involves picking an agent either. See [Minting](/fassets/minting) for the current flow.

### Do I have to redeem whole lots?[​](#do-i-have-to-redeem-whole-lots "Direct link to Do I have to redeem whole lots?")

No. [`redeemAmount`](/fassets/developer-guides/fassets-redeem-amount) takes an arbitrary amount in UBA, and [`redeemWithTag`](/fassets/developer-guides/fassets-redeem-with-tag) does the same while requiring an XRPL destination tag on the payout, which is what exchange and custodial deposits need.

Redemption by whole lots still exists, but new integrations should not build on it.

### I sent XRP for a direct mint but received no FXRP. What now?[​](#i-sent-xrp-for-a-direct-mint-but-received-no-fxrp-what-now "Direct link to I sent XRP for a direct mint but received no FXRP. What now?")

The underlying XRP is not lost. Recovery depends on how the payment was addressed, so start with the [Minting Troubleshooting](/fassets/troubleshooting/minting-troubleshooting) page.

If you minted through Smart Accounts, follow [Recover Stuck Mint Transaction](/smart-accounts/guides/typescript-viem/recover-stuck-mint-transaction-ts).

### How do I read agent information, and can I register my own agent on testnet?[​](#how-do-i-read-agent-information-and-can-i-register-my-own-agent-on-testnet "Direct link to How do I read agent information, and can I register my own agent on testnet?")

Enumerate agents with [List Agents](/fassets/developer-guides/fassets-list-agents), and read collateral ratios, names, and icons with [Agent Details](/fassets/developer-guides/fassets-agent-details).

Agents are whitelisted through Flare governance, so you cannot register one for a test or a demo. Build against the existing agents instead, and prefer flows that do not name a specific agent.

## Smart Accounts[​](#smart-accounts "Direct link to Smart Accounts")

### Where is the starter code for Smart Accounts?[​](#where-is-the-starter-code-for-smart-accounts "Direct link to Where is the starter code for Smart Accounts?")

The [TypeScript and viem guides](/smart-accounts/guides/typescript-viem/custom-instruction-ts) are the fastest path, and the [Flare Hardhat Starter](https://github.com/flare-foundation/flare-hardhat-starter) includes Smart Accounts contracts.

### Why does my XRPL transaction succeed while the instruction never executes?[​](#why-does-my-xrpl-transaction-succeed-while-the-instruction-never-executes "Direct link to Why does my XRPL transaction succeed while the instruction never executes?")

Two things account for most of these.

1.  **The personal account has no funds.** A custom instruction that sends value out of the personal account reverts if that account is empty, and the XRPL side still looks successful. Fund the personal account address printed by the script from the [Coston2 faucet](https://faucet.flare.network/coston2) before running it.
2.  **You are looking for the wrong transaction.** The `MasterAccountController` is the entry point, so your instruction runs as an internal transaction rather than a top-level transaction from your own address. Check the internal transactions of the personal account on the explorer.

## Flare Confidential Compute[​](#flare-confidential-compute "Direct link to Flare Confidential Compute")

### Is Flare Confidential Compute available to build on?[​](#is-flare-confidential-compute-available-to-build-on "Direct link to Is Flare Confidential Compute available to build on?")

Yes, on **Coston2**. The Flare Confidential Compute (FCC) is [in the final stages of development](/fcc/overview) and not yet a fully public production system, so treat interfaces as subject to change, but the guides run end to end today.

Start with [Build Your First Extension](/fcc/guides/getting-started), then the [Private Key Extension](/fcc/guides/sign-extension) and [Weather Insurance Extension](/fcc/guides/weather-insurance-extension) examples.

### Do I need a Google Cloud Confidential Space VM?[​](#do-i-need-a-google-cloud-confidential-space-vm "Direct link to Do I need a Google Cloud Confidential Space VM?")

Not for development. Set `SIMULATED_TEE=true` and run the stack locally with Docker against the live Coston2 chain, tunnelling your extension proxy over HTTPS. Only the attestation is simulated; everything else is the real network.

Confidential Space hardware belongs to production hosting, and no paid cloud service is needed to work through the guides.

### How do I get Coston2 indexer database credentials?[​](#how-do-i-get-coston2-indexer-database-credentials "Direct link to How do I get Coston2 indexer database credentials?")

The local `ext-proxy` reads TEE events from Flare's C-chain indexer. The host, port, and database name are already in [step 3 of Build Your First Extension](/fcc/guides/getting-started#step-3-configure-the-indexer-database); only the read-only username and password are missing from the guide, since they are issued per requester and rotated periodically. Request them through [technical support](https://flare.network/resources/technical-support) or [X](https://x.com/FlareDevs) and say what you are building.

Credentials shared in community chats go stale faster than the guide does. Older repository documents may also point at the Coston (not Coston2) indexer, which uses different credentials and needs a VPN; Coston2 does not.

### Where are the FCC registry addresses for Coston2?[​](#where-are-the-fcc-registry-addresses-for-coston2 "Direct link to Where are the FCC registry addresses for Coston2?")

In the scaffold, at `config/coston2/deployed-addresses.json`, which the deploy tooling reads for you. This is temporary while FCC is in development; on release, the addresses will resolve through the [`FlareContractRegistry`](/network/guides/flare-contracts-registry) contract like every other Flare protocol.

Take the addresses from that file rather than from a chat message or an older guide, because the Coston2 deployment is still moving.

### Why does my TEE machine stay INITIALIZED with a 404 on the availability check?[​](#why-does-my-tee-machine-stay-initialized-with-a-404-on-the-availability-check "Direct link to Why does my TEE machine stay INITIALIZED with a 404 on the availability check?")

First check whether you are running with `SIMULATED_TEE=true`. A simulated attestation is not something the real Coston2 data providers can cosign, so the availability check never gets voted on and the machine stays at INITIALIZED forever, with every poll for it returning `404`. This is expected for local development and does not mean your extension is broken; it just means this particular machine will never show PRODUCTION onchain.

Beyond that, the availability check and the Coston2 data providers work, so a machine that never reaches production is nearly always a local mismatch: a stale stack pointing at a retired deployment, or a registered URL that no longer resolves because a quick tunnel restarted.

Start by reading your own onchain state with the scaffold's `query-tee` tool, then work through [FCC Troubleshooting](/fcc/troubleshooting#tee-machine-never-reaches-production).

### Why does my custom instruction emit onchain but never reach my extension?[​](#why-does-my-custom-instruction-emit-onchain-but-never-reach-my-extension "Direct link to Why does my custom instruction emit onchain but never reach my extension?")

If other instructions from the same extension relay normally, check the operation names. The `F_` prefix and the system command names are reserved, and a custom operation that reuses one is not delivered without reporting an error.

See [Instructions never reach your extension](/fcc/troubleshooting#instructions-never-reach-your-extension) for the reserved names and the fix.

### How do I get a private key or API credential into the enclave?[​](#how-do-i-get-a-private-key-or-api-credential-into-the-enclave "Direct link to How do I get a private key or API credential into the enclave?")

Never store the secret onchain. Encrypt it with the TEE's public key and deposit it with the proxy, or for a Web2 credential, set it in the environment so it is loaded into enclave memory at startup and never exposed. The [Private Key Extension](/fcc/guides/sign-extension) guide shows both the key generation and the signing flow.

Recovery plan. A TEE machine can go down, and an extension should be treated as stateless, so decide up front how a key survives the loss of the machine.

### My Web2Json verifier request fails only against the OpenWeatherMap URL from the Weather Insurance example, why?[​](#my-web2json-verifier-request-fails-only-against-the-openweathermap-url-from-the-weather-insurance-example-why "Direct link to My Web2Json verifier request fails only against the OpenWeatherMap URL from the Weather Insurance example, why?")

Check your OpenWeatherMap plan before assuming the verifier is broken. The [Weather Insurance Extension](/fcc/guides/weather-insurance-extension) example calls an endpoint that needs a paid OpenWeatherMap plan, so a free-tier key fails there even though the same verifier works correctly against other URLs.

### Are Protocol Managed Wallets available yet?[​](#are-protocol-managed-wallets-available-yet "Direct link to Are Protocol Managed Wallets available yet?")

Not yet. [Protocol Managed Wallets](/fcc/overview) are still in development.

If you need to control an account on another chain today, do it with a Flare Compute Extension that holds the key inside the TEE, which is the pattern the [Private Key Extension](/fcc/guides/sign-extension) guide demonstrates.

## Community & Support[​](#community--support "Direct link to Community & Support")

### I have a project I would like to build on Flare. Can I get a grant?[​](#i-have-a-project-i-would-like-to-build-on-flare-can-i-get-a-grant "Direct link to I have a project I would like to build on Flare. Can I get a grant?")

Yes! The Flare Foundation offers grants to support innovative projects that contribute to the ecosystem's growth. Learn more and apply on the [Flare Grants Program](https://flare.network/resources/grants) page.

### Where can I get technical support or ask questions?[​](#where-can-i-get-technical-support-or-ask-questions "Direct link to Where can I get technical support or ask questions?")

Connect with Flare's developer community and the team through these channels:

-   **Flare Experts:** Get dedicated [Technical Support](https://flare.network/resources/technical-support) from a Flare expert.
-   **Telegram:** The primary channel for community Q&A and developer discussions. Join [Flare Network on Telegram](https://t.me/FlareNetwork).
-   **GitHub:** Report issues, contribute to code, or explore the open-source repositories at [Flare Foundation GitHub](https://github.com/flare-foundation/). (Best for code-specific issues, not general Q&A).
