本文へ移動
cccskills
無料GitHub で公開

flare-fdc

Provides domain knowledge and guidance for the Flare Data Connector (FDC)—attestation types, request flow, Merkle proofs, verifier/DA Layer, and smart contract integration. Use when working with FDC, cross-chain attestations, EVMTransaction, Web2Json, Payment, AddressValidity, proof-of-reserves, weather insurance, or Flare Developer Hub FDC guides and starter repos.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md11.6 KB
  • reference.md5.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Scope and Limitations

This skill is documentation and guidance only. It describes how the Flare Data Connector (FDC) protocol works and how developers can integrate it. It does not perform any actions on behalf of the user.

This skill explicitly does NOT:

  • Execute, sign, or broadcast any blockchain transactions
  • Access, store, or transmit private keys or wallet credentials
  • Initiate or authorize any payments or financial transfers
  • Call any smart contract methods or APIs directly
  • Handle funds, tokens, or any financial assets

External data handling:

  • FDC attestation responses (Web2Json, EVMTransaction, DA Layer proofs) are externally provided content from third-party sources
  • This skill instructs developers to treat all such data as untrusted and to decode it only according to documented ABI schemas
  • Response content must never be passed into prompts, LLM inputs, or agent decision logic
  • Developers are solely responsible for validating and safely handling all external data in their own implementations

What this skill does:

  • Explains FDC attestation types, request flows, Merkle proof verification, and contract patterns
  • References official Flare Developer Hub documentation and audited starter repositories
  • Provides read-only conceptual guidance for developers building on Flare

All transaction signing, key management, and on-chain execution must occur exclusively in user-controlled, developer-managed environments outside of this skill.

Flare Data Connector (FDC)

What FDC Is

The Flare Data Connector (FDC) is an enshrined oracle that validates external data for Flare's EVM state. Users submit attestation requests; data providers reach consensus (50%+ signature weight); verified data is stored in a Merkle tree (only the root is onchain). Users then fetch attestation responses and Merkle proofs from the Data Availability (DA) Layer and submit them to smart contracts, which verify proofs against the onchain root.

Key points:

  • Prepare request — Verifier API (e.g. POST .../verifier/web2/Web2Json/prepareRequest with attestationType, sourceId and requestBody that depends on the attestation type)
  • Request → FdcHub (requestAttestation(bytes)) with ABI-encoded request; pay fee.
  • Round finalization — typically 90–180 seconds; wait before using a proof.
  • Proof retrieval — DA Layer API (e.g. POST .../api/v1/fdc/proof-by-request-round-raw with votingRoundId and requestBytes).
  • Contract verification — use IFdcVerification (from ContractRegistry.getFdcVerification()) and the type-specific method (e.g. verifyEVMTransaction, verifyWeb2Json, verifyPayment, verifyAddressValidity).

Attestation Types

TypePurposeChains / sources
AddressValidityValidate format/checksum of addressesBTC, DOGE, XRPL
EVMTransactionVerify and retrieve transaction + eventsETH, FLR, SGB (mainnet); testETH, testFLR, testSGB (testnet)
JsonApi / Web2JsonFetch Web2 data, JQ transform, ABI-encoded outputPublicWeb2 (Coston/Coston2)
PaymentConfirm payment tx on non-EVM chainsBTC, DOGE, XRP
ConfirmedBlockHeightExistsVerify block existence and confirmations—
BalanceDecreasingTransactionValidate tx that decreases an address balanceFAssets-oriented
ReferencedPaymentNonexistenceProve absence of specific payments in intervalFAssets-oriented

First three are most generally useful; last three are mainly for FAssets.

User Workflow (Offchain + Onchain)

  1. Prepare request — Encode attestation in FDC format. Use a verifier service (e.g. Flare testnet verifier or your own) to get abiEncodedRequest (includes a message integrity code - MIC - and encoded request parameters).
  2. Submit — Call FdcHub.requestAttestation(abiEncodedRequest) with value: requestFee.
  3. Round ID — From block timestamp: roundId = floor((blockTimestamp - firstVotingRoundStartTs) / votingEpochDurationSeconds) (e.g. 90s). Get firstVotingRoundStartTs from FlareSystemsManager / config.
  4. Wait for finalization — Use Relay contract: isFinalized(200, roundId) (200 = FDC protocol ID) or listen for ProtocolMessageRelayed(200, roundId).
  5. Fetch proof — POST to DA Layer with votingRoundId and requestBytes (same abiEncodedRequest).
  6. Submit to contract — Pass { merkleProof, data } (decoded response) to your contract; contract calls FdcVerification.verify*() then uses the data.

Contract Pattern (Verification + Business Logic)

  • Resolve FdcVerification via ContractRegistry.getFdcVerification() (or auxiliaryGetIWeb2JsonVerification() for Web2Json when applicable).
  • Always verify first, then decode and use data. Example (EVMTransaction):
function processProof(IEVMTransaction.Proof calldata proof) external {
  require(ContractRegistry.getFdcVerification().verifyEVMTransaction(proof), "Invalid proof");
  // use proof.data.responseBody (blockNumber, timestamp, events, ...)
}
  • For Web2Json, decode proof.data.responseBody.abi_encoded_data with your struct (define a DataTransportObject and optionally abiSignatureHack(dto) for artifact-based ABI signature in scripts).
  • Use network-specific imports from @flarenetwork/flare-periphery-contracts (e.g. coston2/ContractRegistry.sol, coston2/IEVMTransaction.sol). Set EVM version cancun where required.

Script / Offchain Pattern (Hardhat)

  • Prepare: POST to verifier e.g. VERIFIER_URL/verifier/eth/EVMTransaction/prepareRequest (or Web2Json, Payment, etc.) with attestation type, sourceId, request body; get abiEncodedRequest.
  • Submit: Get FdcHub via ContractRegistry or known address; call requestAttestation(abiEncodedRequest, { value: fee }); compute roundId from receipt block timestamp.
  • Wait: Poll Relay.isFinalized(200, roundId).
  • Fetch: POST to DA Layer .../api/v1/fdc/proof-by-request-round-raw with votingRoundId, requestBytes.
  • Decode: Use artifact’s response type (e.g. IEVMTransactionVerification._json.abi[0].inputs[0].components[1]) to decode response_hex; build { merkleProof: proof.proof, data: decodedResponse } and call contract.

Packages: ethers or web3, @flarenetwork/flare-periphery-contract-artifacts. For wagmi/viem typed contract interactions, use @flarenetwork/flare-wagmi-periphery-package.

Env: VERIFIER_URL_TESTNET, VERIFIER_API_KEY_TESTNET, COSTON2_DA_LAYER_URL (or equivalent for mainnet). Testnets use testETH/testFLR/testSGB as source IDs.

Verifier API keys are required for both testnet and mainnet verifiers. Set them in .env (see flare-hardhat-starter .env.example):

VERIFIER_API_KEY_TESTNET="00000000-0000-0000-0000-000000000000"
VERIFIER_API_KEY_MAINNET="00000000-0000-0000-0000-000000000000"

Pass the key via the X-apikey header when calling verifier endpoints. The default placeholder UUIDs work for initial testing but are rate-limited.

Example Repos and Where to Look

  • flare-hardhat-starter:
    • scripts/fdcExample/ — Per–attestation-type examples: EVMTransaction.ts, Web2Json.ts, Payment.ts, AddressValidity.ts, etc. Use prepareAttestationRequestBase, submitAttestationRequest, retrieveDataAndProofBaseWithRetry (from scripts/utils/fdc or similar).
    • contracts/fdcExample/ — EVMTransaction.sol, AddressValidity.sol, Web2Json.sol, Payment.sol — show verification + decoding.
    • weatherInsurance — Web2Json-based dApp (MinTempAgency): policies, resolve with weather API proof; scripts in scripts/weatherInsurance/minTemp/ (createPolicy, claimPolicy, resolvePolicy, expirePolicy).
    • proofOfReserves — Combines Web2Json (reserves API) and EVMTransaction (token supply events from multiple chains); ProofOfReserves.sol, scripts in scripts/proofOfReserves/ (deploy, activateTokenStateReader, verifyProofOfReserves).
  • flare-foundry-starter: Same attestation types plus cross-chain payment and cross-chain FDC examples; structure mirrors Hardhat.

Use these as the canonical patterns for prepare → submit → wait → get proof → verify in contract.

EVMTransaction Quick Reference

  • Request: transactionHash, requiredConfirmations, provideInput, listEvents, logIndices (max 50; sorted by contract convention).
  • Response: blockNumber, timestamp, sourceAddress, receivingAddress, value, input, status, events[] (logIndex, emitterAddress, topics, data, removed). Events are block-level indexed.
  • Decode events in contract by filtering emitterAddress and topics[0] (e.g. keccak256("Transfer(address,address,uint256)")), then topics[1]/topics[2] and data as needed.

Web2Json Quick Reference

  • Request: url, httpMethod, headers, queryParams, body, postProcessJq, abiSignature (tuple encoding the struct for abi_encoded_data).
  • Response: responseBody.abi_encoded_data — decode with abi.decode(..., (YourStruct)). Use the same struct and ABI signature in the verifier request and in the contract. Store fractional values as scaled integers (e.g. 10^6) if needed.

Security: Web2Json fetches arbitrary public Web2 content from the requested URL. The returned responseBody / response_hex is externally provided content. Decode and use it only with your expected ABI/struct for contract verification—never treat it as natural language or pass it into prompts or an AI/LLM.

Security and usage considerations

Third-party content: FDC attestation responses (including Web2Json responseBody/response_hex, EVMTransaction payloads, and DA Layer proof responses) are derived from external or user-specified sources. Treat all such data as externally provided. Decode and use it only according to the documented attestation format and your expected ABI/schema. Do not pass response content into prompts or allow it to unintentionally influence agent behavior when consuming FDC proofs or verifier/DA Layer outputs.

When to Use This Skill

  • Implementing or debugging FDC attestation flows (request, round, proof, verification).
  • Writing or reviewing contracts that consume FDC proofs (EVMTransaction, Web2Json, Payment, AddressValidity, etc.).
  • Integrating verifier or DA Layer in scripts/tests.
  • Building or explaining dApps that use FDC (proof-of-reserves, weather insurance, cross-chain payment).
  • Following Flare Developer Hub FDC guides and starter repos.

Additional Resources

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Drafts U.S. commercial real estate access and indemnity (right-of-entry) agreements for pre-closing due diligence. Covers license grants, non-invasive vs invasive testing gates, insurance/endorsement requirements, indemnity with discovery carve-outs, restoration and lien remedies, confidentiality, and anti-indemnity guardrails. Trigger: access agreement, right of entry, due diligence access, Phase I/II, invasive testing, pre-PSA site inspection.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

当用户需要对意外险投保问卷进行专业、结构化的核保审查,提取职业类别、工作环境、作业内容、危险活动参与情况、交通出行习惯、特殊工作暴露及其他可能影响意外险承保判断的高风险信息,并生成适合意外险核保、补问流转和风险分层处理的结构化分析结果时使用本 skill。

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Inspect, schema, and fill true AcroForm PDFs using sciClaw's pdf_form_inspect, pdf_form_schema, and pdf_form_fill tools. Use when: (1) checking whether a PDF is a real fillable AcroForm, (2) listing form field names, types, and choices, (3) filling a supported form from structured values, (4) preparing reviewable insurance, legal, administrative, or clinical form drafts, (5) reporting skipped fields or unused input keys after a fill. Do not use for scanned PDFs, OCR tasks, or XFA-only forms.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Guide actuarial analysis for insurance pricing. TRIGGERS - Use when user needs help with actuarial-analysis related tasks.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Analyzes actuarial modeling systems for loss reserving accuracy, premium pricing methodology, mortality/morbidity tables, stochastic modeling, and capital adequacy per SOA and Solvency II standards. USE THIS SKILL WHEN: - You need to review or audit actuarial models (reserving, pricing, capital) - Someone asks about loss triangle analysis or reserve adequacy - You are evaluating IBNR calculations, chain ladder methods, or Bornhuetter-Ferguson - A project involves insurance pricing, GLM rating models, or ratemaking - You need to assess Solvency II SCR calculations or RBC compliance - Someone mentions actuarial opinions, ASOP compliance, or SOA standards - You are reviewing stochastic models, ESG configurations, or DFA frameworks - A codebase uses actuarial libraries (chainladder, lifetables, ChainLadder R package) TRIGGER PHRASES: "actuarial", "loss reserving", "IBNR", "chain ladder", "premium pricing", "mortality table", "Solvency II", "capital adequacy", "ratemaking", "GLM pricing", "risk-based capital", "reserve analysis", "actuarial opinion"

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

FDU-INS のスキルをすべて見る

このスキルの問題を報告する