A TypeScript CLI tool and Hardhat plugin for verifying smart contracts on Filfox, supporting both Foundry and Hardhat v2+ projects with backward compatibility. Filfox is the block explorer for Filecoin networks.
✅ Multi-Framework Support: Works with both Foundry and Hardhat v2+ projects
✅ Filecoin Networks: Supports Filecoin mainnet (314) and Calibration testnet (314159)
✅ CLI Tool: Command-line interface for Foundry projects
✅ Automatic Compilation: Uses forge build for Foundry or Hardhat compilation artifacts
✅ Hardhat Plugin: Easy integration with Hardhat projects
✅ Backward Compatible: Supports all Hardhat deployment methods and versions v2+
✅ Smart Detection: Multi-fallback contract discovery (deployments → ignition → artifacts)
npm install -g @fil-b/filfox-verifiernpm install @fil-b/filfox-verifierfilfox-verifier forge <address> <contract-path> --chain <chainId>Example:
# Verify contract on Filecoin mainnet
filfox-verifier forge 0xA148538a450f8517563135A5f7c4ee0a9F54f811 src/MyContract.sol:MyContract --chain 314
# Verify contract on Calibration testnet
filfox-verifier forge 0xA148538a450f8517563135A5f7c4ee0a9F54f811 src/MyContract.sol:MyContract --chain 314159Options:
--chain <chainId>: Chain ID (314 for Filecoin mainnet, 314159 for Calibration testnet)--root <path>: Project root directory (default: current directory)
First, import the plugin in your hardhat.config.js or hardhat.config.ts:
// hardhat.config.js
require("@fil-b/filfox-verifier/hardhat");
// or in hardhat.config.ts
import "@fil-b/filfox-verifier/hardhat";Then run the verification task:
# Verify a deployed contract
npx hardhat verifyfilfox --address 0xYourContractAddress --network filecoin
# For Calibration testnet
npx hardhat verifyfilfox --address 0xYourContractAddress --network calibrationRequirements for Hardhat:
- The tool supports multiple deployment methods:
hardhat-deploywith artifacts in./deployments/[network]/- Ignition deployments with artifacts in
./ignition/deployments/ - Standard Hardhat compilation artifacts in
./artifacts/contracts/- The tool automatically finds contracts by matching deployment addresses or bytecode
| Network | Chain ID | Explorer |
|---|---|---|
| Filecoin Mainnet | 314 | https://filfox.info |
| Calibration Testnet | 314159 | https://calibration.filfox.info |
- Project Detection: Detects Foundry projects by looking for
foundry.toml - Compilation: Uses
forge buildto compile the target contract - Metadata Extraction: Extracts Solidity metadata from compilation artifacts
- Source Collection: Gathers all source files including dependencies
- Verification: Submits to Filfox API with proper formatting
- Multi-Source Detection: Automatically detects contracts through a robust fallback chain:
- Primary: Hardhat deployments in
./deployments/[network]/ - Secondary: Ignition deployments in
./ignition/deployments/ - Tertiary: Artifacts directory with bytecode matching in
./artifacts/contracts/
- Primary: Hardhat deployments in
- Artifact Processing: Extracts solc input and metadata from deployment artifacts or build info
- Source Preparation: Organizes source files for verification
- Verification: Submits to Filfox API with complete compilation data
This approach ensures compatibility across Hardhat v2+ and different deployment methods.
- Node.js 20+
- Foundry project with
foundry.toml - Forge installed and accessible in PATH
- Node.js 20+
- Hardhat v2+ project (backward compatible)
- Contract deployed with one of the supported methods:
hardhat-deployplugin- Ignition deployment modules
- Standard Hardhat compilation
The tool handles all Filfox API response codes:
- 0: ✅ Verification successful
- 1:
⚠️ No source file provided - 2:
⚠️ Contract initCode not found - 3:
⚠️ Compiler version format incorrect - 4:
⚠️ Verification failed - bytecode mismatch - 5:
⚠️ Unsupported language (Solidity only) - 6: ℹ️ Contract already verified
- 7:
⚠️ Compilation error in source files
$ filfox-verifier forge 0xA148538a450f8517563135A5f7c4ee0a9F54f811 src/DealClient.sol:DealClient --chain 314159
✔ Loading Foundry project...
✔ Compiling contract and extracting metadata...
✔ Preparing verification request...
✔ Verifying contract on Filfox...
✅ Contract "MyContract" verified successfully!
🔗 View at: https://calibration.filfox.info/en/address/0x9706B8591122eA8b22EF4cD2f796852BA540B7d2