> For the complete documentation index, see [llms.txt](https://docs.filecoin.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.filecoin.io/core-concepts.md).

# Core Concepts

- [Filecoin Virtual Machine](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine.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.
- [Actors](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine/actors.md): Actors are smart contracts that run on the Filecoin virtual machine (FVM) and are used to manage, query, and update the state of the Filecoin network. Smart contracts are small, self-executing blocks.
- [Addresses](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine/addresses.md): A Filecoin address is an identifier that refers to an actor in the Filecoin state. All actors (miner actors, the storage market actor, account actors) have an address.
- [Blocks and tipsets](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine/blocks-and-tipsets.md): Like many other blockchains, blocks are a fundamental concept in Filecoin. Unlike other blockchains, Filecoin is a chain of groups of blocks called tipsets rather than a chain of individual blocks.
- [Consensus](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine/consensus.md): In the Filecoin blockchain, network consensus is achieved using the Expected Consensus (EC) algorithm, a secret, fair, and verifiable consensus protocol used by the network to agree on the chain state
- [Drand](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine/drand.md): Drand, pronounced dee-rand, is a distributed randomness beacon daemon written in Golang.
- [Proofs](https://docs.filecoin.io/core-concepts/filecoin-virtual-machine/proofs.md): In Filecoin cryptographic proving systems, often simply referred to as proofs, are used to validate that a storage provider (SP) is properly storing data.
- [Filecoin EVM runtime](https://docs.filecoin.io/core-concepts/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.
- [Actors](https://docs.filecoin.io/core-concepts/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/core-concepts/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/core-concepts/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/core-concepts/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/core-concepts/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/core-concepts/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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/core-concepts.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.
