# Smart contracts

- [Fundamentals](https://docs.filecoin.io/smart-contracts/fundamentals.md): Learn about the various tools and options for adding Filecoin storage to software applications, smart contracts, and workflows.
- [The Filecoin Virtual Machine](https://docs.filecoin.io/smart-contracts/fundamentals/the-fvm.md): The Filecoin Virtual Machine (FVM) is a runtime environment enabling users to deploy their own smart contracts on the Filecoin blockchain. This page covers the basics of the FVM.
- [Filecoin EVM runtime](https://docs.filecoin.io/smart-contracts/fundamentals/filecoin-evm-runtime.md): This page details what exactly EVM compatibility means for the FVM, and any other information that Ethereum developers may need to build applications on Filecoin.
- [ERC-20 quickstart](https://docs.filecoin.io/smart-contracts/fundamentals/erc-20-quickstart.md): In this quickstart tutorial we’ll walk through how to deploy your first smart-contract to the Filecoin network.
- [Roadmap](https://docs.filecoin.io/smart-contracts/fundamentals/roadmap.md): The FVM project has come a long way in an incredibly short amount of time. This is the roadmap for FVM features for the Filecoin network.
- [Support](https://docs.filecoin.io/smart-contracts/fundamentals/support.md): If you need assistance while exploring the Filecoin virtual machine, you can reach out to the team and community using the links on this page.
- [FAQs](https://docs.filecoin.io/smart-contracts/fundamentals/faqs.md): A list of frequent asked questions about FVM, FEVM and how to build on Filecoin network.
- [Filecoin EVM-runtime](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime.md): This section explains what the Filecoin EVM-runtime (FEVM) is, and how developers can use it to interact with the Filecoin network.
- [Actor types](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime/actor-types.md): In the Filecoin network, an address is a unique identifier that refers to an actor in the Filecoin state. All actors in Filecoin have a corresponding address which varies from the different usages.
- [Address types](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime/address-types.md): In the Filecoin network, an address is a unique identifier that refers to an actor in the Filecoin state. All actors in Filecoin have a corresponding address which varies from the different usages.
- [FILForwarder](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime/filforwarder.md): The FilForwarder is a smart contract that lets users transfer FIL from an Ethereum-based f4 address to a Filecoin address of a different type.
- [Difference with Ethereum](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime/difference-with-ethereum.md): While Filecoin EVM runtime aims to be compatible with the Ethereum ecosystem, it has some marked differences.
- [How gas works](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime/how-gas-works.md): Instead of assigning a fixed gas cost in each instruction, the Filecoin EVM runtime charges FIL gas based on the WASM code execution of the Filecoin EVM runtime interpreter.
- [Precompiles](https://docs.filecoin.io/smart-contracts/filecoin-evm-runtime/precompiles.md): A precompile refers to a pre-existing piece of code or a smart contract that is already deployed on the Filecoin network for use by developers.
- [Programmatic storage](https://docs.filecoin.io/smart-contracts/programmatic-storage.md): This section covers how to programmatically store data on the Filecoin network.
- [Aggregated deal-making](https://docs.filecoin.io/smart-contracts/programmatic-storage/aggregated-deal-making.md): Aggregation of smaller data pieces to store on Filecoin
- [Direct deal-making](https://docs.filecoin.io/smart-contracts/programmatic-storage/direct-deal-making.md): This page explains the direct deal-making process in regards to the Filecoin network.
- [Cross-Chain Data Bridge(CCDB)](https://docs.filecoin.io/smart-contracts/programmatic-storage/ccdb.md): Onboard data from any Ethereum-compatible L1 to Filecoin using cross-chain data bridge.
- [Data replication, renewal and repair (RaaS)](https://docs.filecoin.io/smart-contracts/programmatic-storage/raas.md): Replicate, Renew, and Repair your storage deals with a service
- [RaaS interfaces](https://docs.filecoin.io/smart-contracts/programmatic-storage/raas-interfaces.md): Specifications for RaaS interfaces.
- [Developing contracts](https://docs.filecoin.io/smart-contracts/developing-contracts.md): This section contains a wealth of information specifically about building smart contracts on the Filecoin network.
- [Get test tokens](https://docs.filecoin.io/smart-contracts/developing-contracts/get-test-tokens.md): Test funds are available to developer so that they can test their smart contracts and applications within the confines of a test network. This page covers how to get test funds.
- [Remix](https://docs.filecoin.io/smart-contracts/developing-contracts/remix.md): The Filecoin EVM runtime allows developers to use Ethereum tooling, like Remix, with the Filecoin network.
- [Hardhat](https://docs.filecoin.io/smart-contracts/developing-contracts/hardhat.md): Hardhat is an open-source development environment designed to provide developers with a flexible and extensible framework for building, testing, and deploying smart contracts.
- [Foundry](https://docs.filecoin.io/smart-contracts/developing-contracts/foundry.md): Foundry is a fast toolkit for application development written in Rust equipped with a testing framework, as well as utilities for interacting with smart contracts and getting chain data.
- [Solidity libraries](https://docs.filecoin.io/smart-contracts/developing-contracts/solidity-libraries.md): With Filecoin Virtual Machine (FVM), Solidity developers can use existing libraries listed on this page in their FVM smart contracts.
- [Call built-in actors](https://docs.filecoin.io/smart-contracts/developing-contracts/call-built-in-actors.md): Filecoin built-in actors can be invoked in a smart contract using either the Protocol API or the Filecoin.sol library. This page provides instructions on how to use each method.
- [Filecoin.sol](https://docs.filecoin.io/smart-contracts/developing-contracts/filecoin.sol.md): External Solidity libraries can help developers create their applications quicker by offloading some of the work to already existing smart contracts.
- [Direct deal-making with Client contract](https://docs.filecoin.io/smart-contracts/developing-contracts/client-contract-tutorial.md): This page covers the client contract, and includes a tutorial on how developers can use the client contract to create storage deals programmatically.
- [Using RaaS](https://docs.filecoin.io/smart-contracts/developing-contracts/using-raas.md): This page is a tutorial on how to replicate, renew and repair storage deals on Filecoin.
- [Verify a contract](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract.md): This section provides comprehensive guides for verifying smart contracts on the Filecoin network using various tools and methods.
- [Programmatic](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract/programmatic.md): Learn how to programmatically verify smart contracts on the Filecoin network using popular development frameworks like Hardhat and Foundry.
- [Hardhat](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract/programmatic/hardhat.md): Learn how to verify smart contracts on the Filecoin network using Hardhat with various verification services including Blockscout, Sourcify, and Filfox.
- [Foundry](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract/programmatic/foundry.md): Learn how to verify smart contracts on the Filecoin network using Foundry with various verification services including Blockscout, Sourcify, and Filfox.
- [Web Interface](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract/web-interface.md): Learn how to verify smart contracts on the Filecoin network using web-based explorer interfaces like Filfox and Blockscout for a user-friendly experience.
- [Blockscout](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract/web-interface/blockscout.md): Step-by-step guide for verifying smart contracts on the Filecoin network using the Blockscout explorer's web interface.
- [Filfox](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract/web-interface/filfox.md): Step-by-step guide for verifying smart contracts on the Filecoin network using the Filfox explorer's web interface.
- [Best practices](https://docs.filecoin.io/smart-contracts/developing-contracts/best-practices.md): This page describes best practices for testing, developing and deploying smart contracts on the Filecoin network.
- [Advanced](https://docs.filecoin.io/smart-contracts/advanced.md): This section contains information on the advances features of the Filecoin network, specifically focused at smart contract developers.
- [Wrapped FIL](https://docs.filecoin.io/smart-contracts/advanced/wrapped-fil.md): Wrapped FIL (wFIL) is the canonical wrapper token of the native Filecoin (FIL) token. Wrapped FIL features a 1-to-1 ratio pegged to FIL.
- [Oracles](https://docs.filecoin.io/smart-contracts/advanced/oracles.md): Oracles act as a bridge between the Filecoin network and external data sources. Secure oracles allow smart contracts on the FVM to access and use external data sources.
- [Multicall](https://docs.filecoin.io/smart-contracts/advanced/multicall.md): Multicall allows you to aggregate multiple contract reads into a single JSON-RPC request, and execute multiple state-changing calls in a single transaction on the FVM.
- [Multisig](https://docs.filecoin.io/smart-contracts/advanced/multisig.md): Multisig wallets enhance security and decentralization by requiring multiple signatures for transactions, distributing control among multiple participants.
- [FEVM Indexers](https://docs.filecoin.io/smart-contracts/advanced/fevm-indexers.md): FEVM Indexers allow users and developers to query Filecoin chain data in an extremely quick manner. Learn what FEVM indexers are available on Filecoin and how to use them through existing data provide
- [Cross-chain bridges](https://docs.filecoin.io/smart-contracts/advanced/cross-chain-bridges.md): Blockchain networks are often isolated and cannot interact with each other directly, so cross-chain bridges serve as a link between them and bring interoperability between different blockchains.
- [Aggregated deal-making](https://docs.filecoin.io/smart-contracts/advanced/aggregated-deal-making.md): Learn about aggregated deal-making on the Filecoin blockchain, where developers can combine small storage deals into larger, more attractive deals for storage providers.
- [Contract automation](https://docs.filecoin.io/smart-contracts/advanced/contract-automation.md): Smart contract automation enables decentralized applications (dapps) to interact with both on-chain and off-chain data in an automated and trustless manner. Automation tools allow developers to build
- [Relay](https://docs.filecoin.io/smart-contracts/advanced/relay.md): Relay is a service that allows users to interact with the Filecoin network using meta transactions. Users can submit transactions to the network without having to pay gas fees. Instead, a relayer pays


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.filecoin.io/smart-contracts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
