agentsclimarketplace

Flare network

Skill Thanasimos/Thanas-flare-builders-toolkit/flare-network

Comprehensive Claude Code skill bundle for Flare-family EVM development: chain registry, FTSO/FDC/FAssets/Smart Accounts protocols, Enosys + SparkDEX integrations, Flare-specific security overlays, and audit/gas/test workflows.

Install
npx -y skills add Thanasimos/Thanas-flare-builders-toolkit --skill flare-network

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Concrete deployment registry for the Flare-family chains (Flare, Songbird, Coston2, Coston). Use when you need: a chain ID, an RPC URL, a block explorer URL, a token address (WFLR, USDT0, sFLR, FXRP, USDC, etc.), or the address of an ecosystem contract (Permit2, Multicall3, Enosys V3 / SparkDEX V3.1 / SparkDEX V4 / BlazeSwap / OpenOcean factories/routers/quoters/position-managers). Trigger on any mention of: "what's the address of X on Flare", "RPC for Songbird", "explorer API for Coston2", "is Permit2 deployed on Songbird", "WFLR address", "Multicall3 on Flare", "verify contract on flarescan", or any chain-info / address-lookup question. Pair with `flare-general` for protocol/architecture descriptions; this skill is the addresses- and-endpoints registry.

SKILL.md

14.3 KB, as published. Nobody here has run it

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

ChainIDTypeNativeWrapped NativeBlock Time
Flare14MainnetFLRWFLR~2s
Songbird19Canary mainnet (real $)SGBWSGB~2s
Coston2114Flare testnetC2FLRWC2FLR~2s
Coston16Songbird testnetCFLRWCFLR~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

ProviderNotes
Ankr (paid tier)https://rpc.ankr.com/flare/<KEY> — 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

ExplorerAPIVerifier 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/etherscanetherscan

Songbird

ExplorerAPIVerifier type
https://songbird-explorer.flare.networkhttps://songbird-explorer.flare.network/api/blockscout
https://songbird.flarescan.comhttps://api.routescan.io/v2/network/mainnet/evm/19/etherscanetherscan

Coston2

ExplorerAPIVerifier type
https://coston2-explorer.flare.networkhttps://coston2-explorer.flare.network/api/blockscout
https://coston2.flarescan.comhttps://api.routescan.io/v2/network/testnet/evm/114/etherscanetherscan

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/<chainId>/run-latest.jsontransactions[i].arguments, then cast abi-encode "constructor(...)" <args...> to encode.

Cross-chain infrastructure

Permit2 (Uniswap canonical)

0x000000000022D473030F116dDEE9F6B43aC78BA3deployed on Flare ONLY (chain 14). NOT deployed on Songbird, NOT deployed on Coston2. Verify via:

cast code 0x000000000022D473030F116dDEE9F6B43aC78BA3 --rpc-url <chain>
# 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)

SymbolAddressDecimalsNotes
WFLR0x1D80c49BbBCd1C0911346656B529DF9E5c2F783d18Wrapped native; FTSO delegation hooks (see flare-dapp-pitfalls)
sFLR0x12e605bc104e93B45e1aD99F9e555f659051c2BB18Liquid-staked FLR
USDT00xe7cd86e13AC4309349F30B3435a9d337750fC82D6Tether's Flare deployment; blacklistable
USDC.e0xfbDa5F676cB37624f28265A144A48B0d6e87d3b66LayerZero-bridged USDC; blacklistable
FXRP0x9b27dF2BC1AC0F5dE8f43eF1e7df45f5be17Bf086FAssets-bridged XRP (see flare-fassets)
HLN0x140Df95E16D9eF21BD4d97c8E5A1bD4D04d2373918Enosys governance token
APS0x6b8758DB1148Cb5e8A6c3D3a2c34a4eFf5Ed0e8018Enosys auto-pool stake
eUSDT0x96B41289D90444B8adD57e6F265DB5aE8651DF296Enosys-wrapped USDT
rFLR0x26d460c3Cf931Fb2014FA436a49e3Af08619810e18Reward FLR (FlareDrops)

Songbird (chain 19)

SymbolAddressDecimalsNotes
WSGB0x02f0826ef6aD107Cfc861152B32B52fD11BaB9ED18Wrapped native
USDT_SG0x99e1A4329afA76e0fC34C9bd56b016A509ECD37e6Songbird USDT variant

Coston2 (chain 114, testnet)

SymbolAddressDecimals
WC2FLR0x767eecF7c0fa1d0F9CC0D75D6b5Bb2B8C0CF8A4b18

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

ContractAddress
Factory0x17AA157AC8C54034381b840Cb8f6bf7Fc355f0de
NonfungiblePositionManager0xD9770b1C7A6ccd33C75b5bcB1c0078f46bE46657
SwapRouter0x5FD34090E9b195d8482Ad3CC63dB078534F1b113
QuoterV20x0A32EE3f66cC9E68ffb7cBeCf77bAef03e2d7C56
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

ContractAddress
Factory0x416F1CcBc55033Ae0133DA96F9096Fe8c2c17E7d
NonfungiblePositionManager0xFC02eB1Ab5079627103357BfbB8167d3BBAc6f1e
SwapRouter0x51bB58357c81523Dc7fc9D05f0C5921b122EE114
QuoterV20x4855f257B4BD4e5724E39D3938128Cd363EDD6C7
FtsoRewardRedistributorForNft0x421294D3eb38c87390fc7f1442623f5b7DBc5b86

SparkDEX V3.1 (Uniswap V3-compatible, no FTSO redistributor) — Flare

ContractAddress
Factory0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652
NonfungiblePositionManager0xEE5FF5Bc5F852764b5584d92A4d592A53DC527da
SwapRouter0x8a1E35F5c98C4E85B36B7B253222eE17773b2781
QuoterV20x5B5513c55fd06e2658010c121c37b07fC8e8B705

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

ContractAddress
Factory0x805488DaA81c1b9e7C5cE3f1DCeA28F21448EC6A
NonfungiblePositionManager0x49BE8AA6c684b15e0C5450e8Fa0b16Bec1435596
SwapRouter0x69D57B9D705eaD73a5d2f2476C30c55bD755cc2F
QuoterV20x6AD6A4f233F1E33613e996CCc17409B93fF8bf5f
Default pool deployer0x59a662Ed724F19AD019307126CbEBdcF4b57d6B1

Algebra differs from V3 in three places that matter when integrating:

  1. Pool resolution — factory.poolByPair(token0, token1) (no fee tier).
  2. Pool state — globalState() returns 6 fields (V3's slot0() returns 7), but tick is at index 1 in both.
  3. MintParams has address deployer where V3 has uint24 fee. Pass address(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

RouterAddressSelector for swapExactTokensForTokens
Enosys V2 Router0x088EeCB467B3968Da36c71F05023A1d3133B2B830x38ed1739
BlazeSwap Router0xe3A1b355ca63abCBC9589334B5e609583C7BAa060x38ed1739

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

ChainExchange contract
Flare0x6352a56caadC4F1E25CD6c75970Fa768A3304e64

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 '<OO API endpoint>' | 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 https://docs.layerzero.network/v2/deployments.

Stargate

Stargate v2 has Flare deployments for USDC and USDT0 routes. See https://stargateprotocol.gitbook.io/stargate.

Faucets (testnet only)

ChainFaucet
Coston2 (C2FLR)https://coston2-faucet.flare.network
Coston (CFLR)https://coston-faucet.flare.network

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 incentivesflare-ftso.
  • Flare Data Connector (cross-chain proofs)flare-fdc.
  • FAssets / FXRP minting + redemptionflare-fassets.
  • ERC-4337 smart accounts on Flareflare-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 standardssolidity (Cyfrin).
  • Auditing workflowaudit (checklist) and audit-contract (adversarial multi-agent).

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.