Smart contracts + provable storage = FVM

The Filecoin Virtual Machine (FVM) is a runtime environment for smart contracts (also called actors) on the Filecoin network. FVM brings user programmability to Filecoin, unleashing the enormous potential of an open data economy.

Join the Global Community of Builders

Request for Startups

If you are looking for ideas on what to build, we have worked with both internal and external teams to learn what they are excited to see on FVM.

Read More ➝

Get Started

Developer Resources
Deploy Contract
Explore Networks

Why FVM

The FVM unlocks boundless possibilities, ranging from dataDAOs, to perpetual storage, to financial services for storage providers (e.g. collateral lending, liquid staking, insurance protocols), to decentralized compute and Layer 2 networks (such as reputation systems, and incentive-aligned content delivery networks, and more.

Bring your project to FVM and build alongside a large cohort of builders, with supporting business and technical resources, to deploy the first batch of value-generating applications to the Filecoin mainnet!

Learn more about FVM ➝
/// A Filecoin actor brokering decentralized compute jobs.
/// For illustration purposes only.
#[fvm_actor(state=ComputeState, dispatch="method_num")]
impl ComputeActor {
/// Creates a job with an input DAG, WASM compute logic,
/// data affinity, geographical bounds, and timeout.
pub fn create_job(req: CreateJobReq, st: ComputeState)
-> CreateJobRes { ... }
/// Allows a compute node to claim a job by proving it
/// satisfies the requirements and staking collateral.
pub fn claim_job(req: ClaimJobReq, st: ComputeState)
-> ClaimJobRes { ... }
/// Proves that a compute node finished running a job,
/// posts the result, and claims the reward.
pub fn prove_done(req: ProveDoneReq, st: ComputeState)
-> ProveDoneRes { ... }
}

What Does FVM Unlock

Data DAOs
Perpetual storage
Staking Protocols
New storage market primitives
Replication workers
Repair workers
Insurance protocols
Storage derivatives
Decentralized Compute
Enabling L2 networks
Cross-network interoperability bridges

How Does the FVM Work

A robust WASM-based VM

The FVM is a WASM-based polyglot execution environment for IPLD data. It is designed to support native Filecoin actors written in languages that compile to WASM, as well as smart contracts written for foreign runtimes including the Ethereum Virtual Machine (EVM), Secure EcmaScript (SES), and eBPF.

The initial version of the FVM is relatively simple and deliberately conservative in features. This enables developers onboard quickly, and serves as a rock-solid foundation for many innovations to come.

Examples of future ideas include: async programming via continuations/futures, capability-orientation, time-locked transactions (using external beacons), parallel execution, native primitives for cross-chain interoperability, computation correctness proofs, and more.

The reference FVM and SDK are written in Rust. If you'd like to contribute, explore ideas, or build alternative implementations in other languages, please reach out.

View in GitHub ➝

FVM Roadmap

Feb 2022

Milestone 0: Lotus mainnet canaries with FVM support

The reference FVM implementation has been integrated into a fork of Lotus (the Filecoin reference client). A fleet of canary nodes have been launched on mainnet, running WASM-compiled built-in actors on the FVM.

May 2022

Milestone 1: Introduction of non-programmable WASM-based FVM

Mainnet will atomically switch from the current legacy VMs to the WASM-based reference FVM. A new gas model will be activated that accounts for actual WASM execution costs. Only Rust built-in actors will be supported at this time.

Mar 2023

Milestone 2: Ability to deploy EVM contracts to mainnet (FEVM)

The Filecoin network will become user-programmable for the first time. Developers will be able to deploy smart contracts written in Solidity, and compiled to EVM. Smart contracts will be able to access Filecoin functionality by invoking built-in actors. Existing Ethereum tooling will be compatible with Filecoin.

Mar 14
2023

FEVM goes live on mainnet

The Filecoin EVM runtime is deployed on Filecoin mainnet via the Filecoin nv18 Hygge upgrade.

Q4 2023

Runtime foundations

Foundational FVM changes that will improve overall safety and security to unblock FVM WASM runtimes and WASM actors on mainnet

Early
2024

Customisable FVM

FVM will become less coupled with Filecoin. This will be a first step to make it configurable as a generic runtime.

Mid
2024

Milestone 3: Ability to deploy Wasm actors to mainnet

Developers will be able to deploy custom smart contracts written in Rust, AssemblyScript, or Go, and compiled to WASM bytecode. SDKs, tutorials, and other developer materials will be generally available. This milestone requires a network upgrade.

2024

Milestone 3+: Further incremental protocol refactors to enhance programmability

A series of additional incremental protocol upgrades (besides nv17) to move system functionality from privileged space to user space. The result will be a lighter and less opinionated base Filecoin protocol, where storage markets, deal-making, incentives, etc. are extensible, modular, and highly customizable through user-deployed actors. Enhanced programming features such as user-provided cron, async call patterns, and more will start to be developed at this stage.

Featured News

100 Days of FVM

100 days ago, on March 14, 2023, the Filecoin network introduced the first programmable runtime on the Filecoin Virtual Machine and became programmable.

Jun 22, 2023

The FVM Imaginarium: Developer Tooling, Hackathons and other Opportunities for Builders

In this blog post, you’ll find an overview of developer tools that will help you get started on your journey building with FVM.

Apr 13, 2023

The FVM Imaginarium: Cross-chain Interoperability

The launch of FVM on March 14, 2023 revolutionized the existing Filecoin ecosystem, unleashing the full potential of the open data economy. Below is a highlight of the projects that are building cross-chain interoperability on top of the Filecoin Virtual Machine.

Mar 23, 2023

Refreshing the Filecoin Bug Bounty Program

Now that the Filecoin Virtual Machine (FVM) is officially live on Filecoin mainnet, the community is excited to announce a refreshed Filecoin bug bounty program, featuring increased rewards up to 500k USD for critical issues and inclusion of programmability features in scope.

Mar 17, 2023

The FVM Imaginarium: Staking and Leasing Protocols

The launch of FVM on March 14, 2023 will revolutionize the existing Filecoin ecosystem, unleashing the full potential of the open data economy. Below is a highlight the projects that are building DeFi lending protocols on top of the Filecoin Virtual Machine.

Mar 16, 2023

The Filecoin Virtual Machine (FVM) is live on Mainnet!

Today, the Filecoin community is proud to announce the successful launch of the Filecoin Virtual Machine (FVM). As of epoch 2,683,348 (or 3.14PM UTC on March 14), the Filecoin blockchain now supports smart contracts and user programmability via the Filecoin Virtual Machine, unlocking the enormous potential of an open data economy.

Mar 14, 2023
See More ➝