FRC-0104: Making Filecoin nodes speak the same language

FRC-0104: Common Node API, defines a standard API for Filecoin nodes using OpenRPC. It streamlines core methods across clients like Lotus and Forest, reducing guesswork and improving compatibility. With clear schemas and conformance testing, apps target one spec and work across compliant clients.

FRC-0104: Making Filecoin nodes speak the same language

Written by Aleksei Krasnoperov

Filecoin is built on a vision of decentralization and client diversity, where multiple implementations coexist, driving innovation, resilience, and security across the ecosystem. However, for this vision to flourish, a fundamental problem needs to be addressed: interoperability.

Right now, Lotus is the primary reference implementation for Filecoin. Builders, miners, and applications widely adopt its JSON-RPC interface. But there's no formally agreed-upon standard for this interface. As a result, building applications compatible across multiple Filecoin nodes becomes an exercise in reverse engineering and guesswork.

Enter FRC-0104: The Common Node API.

What's the problem?

As the de facto standard, the Lotus RPC API offers over 280+ methods. However, since these methods were developed naturally over time by the Lotus team, some of them are core to the entire network, while others are more Lotus specific. This makes it a bit painful for alternative client developers to determine which methods are which.

Lack of standardization means:

  • Slowing down development as builders spend resources deciphering interfaces.
  • Leaving developers uncertain about API stability and compatibility.

How FRC-0104 addresses this

FRC-0104 proposes a clearly defined standardized API for Filecoin nodes using an OpenRPC schema. It focuses on methods actively used in real-world applications, distilled down from the existing Lotus API.

FRC-0104 includes a subset of methods carefully identified through extensive exploration with the Lotus team. The selected methods reflect actual, widespread needs, eliminating redundancy and ensuring clarity for implementers.

This proposal categorizes RPC methods into four essential groups:

  • State queries: Methods to access chain, actor, and network states.
  • Miner operations: Essential methods miners need for consensus participation.
  • Transactions: Methods for submitting transactions and managing the mempool.
  • Node operations: Methods for basic node management and inspection.

Complete list of Common node API methods

By defining a common node API in FRC-0104, we’re unlocking the ability to build robust, automated conformance testing tools. These tools can check whether implementations adhere to the standard structurally, behaviorally, and functionally. To support this, the Forest team is externalizing their RPC Snapshots Testing Suite, making it easier for any team to validate their implementation against FRC-0104.

The result? A minimal, predictable, and universally compatible API standard.

Why OpenRPC?

With FRC-0104, we now have complete JSON schemas, detailed method descriptions, and consistent documentation that aligns precisely with implementation.

By proposing a normative OpenRPC schema, FRC-0104 provides a standardized, language-agnostic, and machine-readable definition of each method. This approach enables a simplified process for syntax compliance checks, method specificity, conformance validation, streamlined tooling across diverse programming languages and environments, and, critically, reducing redundant effort across teams.

Real-world impact

With FRC-0104 in place, developers can confidently build Filecoin applications that work seamlessly across Lotus, Forest, Venus, and any future implementations. Allowing node operators and miners flexibility in selecting the client implementation best suited to their needs, knowing their applications will remain compatible.

Implementing the Common Node API will also encourage clearer security considerations, allowing node operators to implement standardized access control and auditing measures.

What's next?

Establishing this standard specification encourages greater accountability among node implementers and, hopefully, more thoughtful consideration of future iterations. FRC-0104 will help mitigate rapid, unchecked iterations of the API, reducing technical debt over the long term.

By embracing a unified API standard, Filecoin can strengthen client diversity, streamline development, and move towards a robust, interoperable future.

Let's help Filecoin speak the same language!


Forest
The Filecoin Implementation in Rust

Forest is a Rust implementation of the Filecoin protocol, offering fast performance with minimal hardware requirements. Use it to validate and access chain data, run an RPC node, generate snapshots, and manage FIL with a built-in wallet.

Forest is built and maintained by ChainSafe

Website | Youtube | Twitter | Linkedin | GitHub