Install
$ agentstack add skill-thanasimos-thanas-flare-builders-toolkit-flare-network ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Flare Network — Deployment Registry
Authoritative addresses + endpoints for the Flare-family chains. For protocol architecture (FTSO, FDC, FAssets, Smart Accounts), see the flare-general skill. This skill answers "WHERE is X" questions — concrete addresses, RPC URLs, explorer endpoints, and verification commands.
If you're unsure whether something is in scope: this skill is for deployed contracts and network endpoints. Anything about how a protocol works lives in the protocol-specific skills (flare-ftso, flare-fassets, etc.).
Chain matrix
| Chain | ID | Type | Native | Wrapped Native | Block Time | |---|---|---|---|---|---| | Flare | 14 | Mainnet | FLR | WFLR | ~2s | | Songbird | 19 | Canary mainnet (real $) | SGB | WSGB | ~2s | | Coston2 | 114 | Flare testnet | C2FLR | WC2FLR | ~2s | | Coston | 16 | Songbird testnet | CFLR | WCFLR | ~2s |
RPC endpoints
Public RPCs (rate-limited, 30-block eth_getLogs cap)
flare: https://flare-api.flare.network/ext/C/rpc
songbird: https://songbird-api.flare.network/ext/C/rpc
coston2: https://coston2-api.flare.network/ext/C/rpc
coston: https://coston-api.flare.network/ext/C/rpc
Faster / paid alternatives
| Provider | Notes | |---|---| | Ankr (paid tier) | https://rpc.ankr.com/flare/ — domain-locked browser keys (origin-restricted); separate IP-locked key needed for server-side scripts/forge. Lifts eth_getLogs to ~5k blocks. |
Origin lock note — a browser-locked Ankr key returns Origin not allowed (-32079) to curl / forge-script. Use the public RPC for deploys; reserve Ankr for browser code.
Block explorers
Flare
| Explorer | API | Verifier type | |---|---|---| | https://flare-explorer.flare.network (Blockscout) | https://flare-explorer.flare.network/api/ | blockscout | | https://flarescan.com (Routescan-backed) | https://api.routescan.io/v2/network/mainnet/evm/14/etherscan | etherscan |
Songbird
| Explorer | API | Verifier type | |---|---|---| | https://songbird-explorer.flare.network | https://songbird-explorer.flare.network/api/ | blockscout | | https://songbird.flarescan.com | https://api.routescan.io/v2/network/mainnet/evm/19/etherscan | etherscan |
Coston2
| Explorer | API | Verifier type | |---|---|---| | https://coston2-explorer.flare.network | https://coston2-explorer.flare.network/api/ | blockscout | | https://coston2.flarescan.com | https://api.routescan.io/v2/network/testnet/evm/114/etherscan | etherscan |
Verification command (Foundry)
Both explorer families work via forge verify-contract:
# Blockscout (no API key needed)
forge verify-contract \
--rpc-url flare \
--verifier blockscout \
--verifier-url "https://flare-explorer.flare.network/api/" \
--num-of-optimizations 200 --compiler-version 0.8.24 \
--constructor-args $ENCODED_ARGS \
$ADDRESS \
src/MyContract.sol:MyContract
# Routescan / Etherscan-style (use literal "verifyContract" as the key)
forge verify-contract \
--verifier etherscan \
--verifier-url "https://api.routescan.io/v2/network/mainnet/evm/14/etherscan" \
--etherscan-api-key "verifyContract" \
--num-of-optimizations 200 --compiler-version 0.8.24 \
--constructor-args $ENCODED_ARGS \
$ADDRESS \
src/MyContract.sol:MyContract
Constructor args go in via --constructor-args 0x.... Get them from the broadcast log: broadcast/Deploy.s.sol//run-latest.json → transactions[i].arguments, then cast abi-encode "constructor(...)" to encode.
Cross-chain infrastructure
Permit2 (Uniswap canonical)
0x000000000022D473030F116dDEE9F6B43aC78BA3 — deployed on Flare ONLY (chain 14). NOT deployed on Songbird, NOT deployed on Coston2. Verify via:
cast code 0x000000000022D473030F116dDEE9F6B43aC78BA3 --rpc-url
# Returns full bytecode on Flare; returns 0x on Songbird/Coston2
Implication: Permit2-dependent contracts (batch sweeps, signed-permit flows) cannot be canary-tested on Songbird. Either deploy your own Permit2 fork there (~3000 LOC), use mocks, or skip Songbird and validate via Flare fork tests only.
Multicall3
0xcA11bde05977b3631167028862bE2a173976CA11 on all Flare-family chains (Flare, Songbird, Coston2). Standard Multicall3 ABI. Useful for batched RPC reads.
When defining a custom chain in viem, you must explicitly register contracts.multicall3 or publicClient.multicall(...) will throw silently:
defineChain({
id: 14,
name: 'Flare',
// ...
contracts: {
multicall3: {
address: '0xcA11bde05977b3631167028862bE2a173976CA11',
blockCreated: 3002461,
},
},
})
Tokens
Addresses are case-insensitive on the EVM but stored canonical-checksummed below.
Flare (chain 14)
| Symbol | Address | Decimals | Notes | |---|---|---|---| | WFLR | 0x1D80c49BbBCd1C0911346656B529DF9E5c2F783d | 18 | Wrapped native; FTSO delegation hooks (see flare-dapp-pitfalls) | | sFLR | 0x12e605bc104e93B45e1aD99F9e555f659051c2BB | 18 | Liquid-staked FLR | | USDT0 | 0xe7cd86e13AC4309349F30B3435a9d337750fC82D | 6 | Tether's Flare deployment; blacklistable | | USDC.e | 0xfbDa5F676cB37624f28265A144A48B0d6e87d3b6 | 6 | LayerZero-bridged USDC; blacklistable | | FXRP | 0x9b27dF2BC1AC0F5dE8f43eF1e7df45f5be17Bf08 | 6 | FAssets-bridged XRP (see flare-fassets) | | HLN | 0x140Df95E16D9eF21BD4d97c8E5A1bD4D04d23739 | 18 | Enosys governance token | | APS | 0x6b8758DB1148Cb5e8A6c3D3a2c34a4eFf5Ed0e80 | 18 | Enosys auto-pool stake | | eUSDT | 0x96B41289D90444B8adD57e6F265DB5aE8651DF29 | 6 | Enosys-wrapped USDT | | rFLR | 0x26d460c3Cf931Fb2014FA436a49e3Af08619810e | 18 | Reward FLR (FlareDrops) |
Songbird (chain 19)
| Symbol | Address | Decimals | Notes | |---|---|---|---| | WSGB | 0x02f0826ef6aD107Cfc861152B32B52fD11BaB9ED | 18 | Wrapped native | | USDT_SG | 0x99e1A4329afA76e0fC34C9bd56b016A509ECD37e | 6 | Songbird USDT variant |
Coston2 (chain 114, testnet)
| Symbol | Address | Decimals | |---|---|---| | WC2FLR | 0x767eecF7c0fa1d0F9CC0D75D6b5Bb2B8C0CF8A4b | 18 |
Token lists are not exhaustive — for the long tail (airdrops, dust), discover via the explorer's account.tokenlist API. For Flare:
curl -s "https://flare-explorer.flare.network/api?module=account&action=tokenlist&address=$WALLET"
Concentrated-liquidity DEXes
Three CLMM families on Flare today. Picking the right one depends on whether you need V3-shape (getPool(t0,t1,fee)) or Algebra-shape (poolByPair(t0,t1)) ABI.
Enosys V3 (Uniswap V3-compatible) — Flare
| Contract | Address | |---|---| | Factory | 0x17AA157AC8C54034381b840Cb8f6bf7Fc355f0de | | NonfungiblePositionManager | 0xD9770b1C7A6ccd33C75b5bcB1c0078f46bE46657 | | SwapRouter | 0x5FD34090E9b195d8482Ad3CC63dB078534F1b113 | | QuoterV2 | 0x0A32EE3f66cC9E68ffb7cBeCf77bAef03e2d7C56 | | FtsoRewardRedistributorForNft (FTSO only) | 0x5a0BfF8Ff1AF1DF28619Fce57d07E3bBb7BAF3d7 | | FlaresRewardsRedistributorForNft (legacy, pre-2026-04) | 0x4410B821Fa1041D242f2C199C0EA78E4A5f15F19 | | FtsoRewardRedistributorForAddress (EOA delegations) | 0x45aAa2e37B89f7514DF69FA084f381C67891C381 |
FTSO redistributor naming gotcha (Flare): the active NFT redistributor was rotated 2026-04 from FlaresRewardsRedistributorForNft (0x4410B821…) to FtsoRewardRedistributorForNft (0x5a0BfF8F…). Same ABI shape; only the address changed. Rewards accrued under the legacy contract are still claimable via direct calls — see enosys-dex-v3 for the address-allowlist recovery pattern.
Enosys V3 — Songbird
| Contract | Address | |---|---| | Factory | 0x416F1CcBc55033Ae0133DA96F9096Fe8c2c17E7d | | NonfungiblePositionManager | 0xFC02eB1Ab5079627103357BfbB8167d3BBAc6f1e | | SwapRouter | 0x51bB58357c81523Dc7fc9D05f0C5921b122EE114 | | QuoterV2 | 0x4855f257B4BD4e5724E39D3938128Cd363EDD6C7 | | FtsoRewardRedistributorForNft | 0x421294D3eb38c87390fc7f1442623f5b7DBc5b86 |
SparkDEX V3.1 (Uniswap V3-compatible, no FTSO redistributor) — Flare
| Contract | Address | |---|---| | Factory | 0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652 | | NonfungiblePositionManager | 0xEE5FF5Bc5F852764b5584d92A4d592A53DC527da | | SwapRouter | 0x8a1E35F5c98C4E85B36B7B253222eE17773b2781 | | QuoterV2 | 0x5B5513c55fd06e2658010c121c37b07fC8e8B705 |
LP fees still accrue; FTSO delegation rewards do not (no redistributor deployed for this fork). Position NFT lifecycle is otherwise identical to Enosys V3.
SparkDEX V4 (Algebra V1.9+ with plugins, dynamic fees) — Flare
| Contract | Address | |---|---| | Factory | 0x805488DaA81c1b9e7C5cE3f1DCeA28F21448EC6A | | NonfungiblePositionManager | 0x49BE8AA6c684b15e0C5450e8Fa0b16Bec1435596 | | SwapRouter | 0x69D57B9D705eaD73a5d2f2476C30c55bD755cc2F | | QuoterV2 | 0x6AD6A4f233F1E33613e996CCc17409B93fF8bf5f | | Default pool deployer | 0x59a662Ed724F19AD019307126CbEBdcF4b57d6B1 |
Algebra differs from V3 in three places that matter when integrating:
- Pool resolution —
factory.poolByPair(token0, token1)(no fee tier). - Pool state —
globalState()returns 6 fields (V3'sslot0()returns 7), but
tick is at index 1 in both.
MintParamshasaddress deployerwhere V3 hasuint24 fee. Passaddress(0)
to use the factory's default deployer (current SparkDEX V4 pattern). For non-default-deployer pools, you must pass the actual deployer address; verify by computing factory.computePoolAddress(t0, t1) matches the pool you're targeting.
V2 routers (Uniswap V2-compatible)
Flare
| Router | Address | Selector for swapExactTokensForTokens | |---|---|---| | Enosys V2 Router | 0x088EeCB467B3968Da36c71F05023A1d3133B2B83 | 0x38ed1739 | | BlazeSwap Router | 0xe3A1b355ca63abCBC9589334B5e609583C7BAa06 | 0x38ed1739 |
BlazeSwap quirk — its swapExactTokensForTokens checks amountOutMin against the actual recipient balance change, not the getAmountsOut quote. For fee-on-transfer tokens this means a quote-derived minOut will trip BlazeSwapRouter: INSUFFICIENT_OUTPUT_AMOUNT. See flare-security for the double-FoT-aware integration pattern.
Aggregators
OpenOcean
| Chain | Exchange contract | |---|---| | Flare | 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 |
Function selector for swap: 0x90411a32 (signature swap(address,(SwapDescription),(uint256,uint256,uint256,bytes)[])). Do NOT guess this from the human-readable signature — verify against the actual returned calldata from the OO API:
curl -s '' | jq -r '.data.data[2:10]'
OO API endpoint: https://open-api.openocean.finance/v3/{chainId}/swap_quote. Free, unauthenticated, ~$0.01 minimum-USD-value gate per quote (legs below that get rejected — fall back to V2 routers for dust).
Cross-chain bridges
LayerZero
LayerZero V2 endpoints are deployed on Flare and Songbird. For up-to-date contract addresses, see .
Stargate
Stargate v2 has Flare deployments for USDC and USDT0 routes. See .
Faucets (testnet only)
| Chain | Faucet | |---|---| | Coston2 (C2FLR) | | | Coston (CFLR) | |
Common command snippets
Read deployed bytecode (verify a contract exists at an address)
cast code $ADDRESS --rpc-url flare
# returns 0x if no contract; full bytecode if deployed
Find deployed function selectors in a contract's dispatch table
cast code $ADDRESS --rpc-url flare | grep -oE '63[0-9a-f]{8}1461' | head
# 63XXXXXXXX14 = PUSH4 selector + EQ — that's the dispatcher's selector check
Decode a 4-byte selector into a function signature
cast 4byte 0x90411a32
# returns swap(address,(address,address,address,address,uint256,uint256,uint256,bytes),(uint256,uint256,uint256,bytes)[])
Pull constructor args from a Foundry broadcast log
node -e "console.log(JSON.stringify(require('./broadcast/Deploy.s.sol/14/run-latest.json').transactions.find(t => t.contractName === 'MyContract').arguments))"
Encode constructor args for verification
cast abi-encode "constructor(address,address)" 0xabc... 0xdef...
Foundry config (recommended for Flare-family work)
# foundry.toml
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
optimizer = true
optimizer_runs = 200
solc_version = "0.8.24"
via_ir = true # required for stack-too-deep on complex contracts
fs_permissions = [{ access = "read", path = "config/" }]
[rpc_endpoints]
flare = "https://flare-api.flare.network/ext/C/rpc"
songbird = "https://songbird-api.flare.network/ext/C/rpc"
coston2 = "https://coston2-api.flare.network/ext/C/rpc"
When to use other skills
- Protocol architecture (FTSO, FDC, FAssets, Smart Accounts, FCC/TEE) —
flare-general, then the protocol-specific skill. - FTSO price feeds, anchor feeds, volatility incentives —
flare-ftso. - Flare Data Connector (cross-chain proofs) —
flare-fdc. - FAssets / FXRP minting + redemption —
flare-fassets. - ERC-4337 smart accounts on Flare —
flare-smart-accounts. - Enosys-specific contracts (DEX V3 reward managers, Loans/CDP, governance) —
enosys-contracts,enosys-dex-v3. - Cross-project gotchas (RPC log range, EIP-3855, MetaMask SDK hangs, claim-OOG) —
flare-dapp-pitfalls. - Flare-specific security review of a deployment —
flare-security. - Generic Solidity standards —
solidity(Cyfrin). - Auditing workflow —
audit(checklist) andaudit-contract(adversarial multi-agent).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Thanasimos
- Source: Thanasimos/Thanas-flare-builders-toolkit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.