# Developing contracts

This section covers how to build dApps by writing smart contracts in the Filecoin Virtual Machine. The docs in this section explain:

* How to [get test tokens](https://docs.filecoin.io/smart-contracts/developing-contracts/get-test-tokens), called tFIL, from a faucet.
* How to set up [Remix](https://docs.filecoin.io/smart-contracts/developing-contracts/remix), to make use of Ethereum tooling while building Filecoin dApps.
* How to set up [Hardhat](https://docs.filecoin.io/smart-contracts/developing-contracts/hardhat), to build FVM dApps in an environment familiar to Ethereum developers.
* How to make use of [Foundry](https://docs.filecoin.io/smart-contracts/developing-contracts/foundry), expanding the utilities available for interacting with FVM contracts.
* Where to [find contract templates](https://docs.filecoin.io/smart-contracts/developing-contracts/solidity-libraries) from a range of third party Solidity libraries.
* How to [Call built-in actors](https://docs.filecoin.io/smart-contracts/developing-contracts/call-built-in-actors) using the Protocol API or the Solidity Library.
* How to make use of the Filecoin [Solidity Libraries](https://docs.filecoin.io/smart-contracts/developing-contracts/filecoin.sol) to build FVM dApps using a language familiar to Ethereum developers.
* How to perform a storage deal using the [direct dealmaking client contract](https://docs.filecoin.io/smart-contracts/developing-contracts/client-contract-tutorial).
* How to [replicate, renew, or repair (RaaS)](https://docs.filecoin.io/smart-contracts/developing-contracts/using-raas) storage deals on Filecoin.
* How to [verify a contract](https://docs.filecoin.io/smart-contracts/developing-contracts/verify-a-contract) using one of Filecoin's many block explorers.
* The [best practices](https://docs.filecoin.io/smart-contracts/developing-contracts/best-practices) for building FVM dApps.

[Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/smart-contracts/developing-contracts)


---

# 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/developing-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.
