Skip to content

Support for trace_call and State Overrides in Filecoin RPC #13403

@eshon

Description

@eshon

Checklist

  • This is not brainstorming ideas. If you have an idea you'd like to discuss, please open a new discussion on the lotus forum and select the category as Ideas.
  • I have a specific, actionable, and well motivated feature request to propose.

Lotus component

  • lotus daemon - chain sync
  • lotus fvm/fevm - Lotus FVM and FEVM interactions
  • lotus miner/worker - sealing
  • lotus miner - proving(WindowPoSt/WinningPoSt)
  • lotus JSON-RPC API
  • lotus message management (mpool)
  • Other

What is the motivation behind this feature request? Is your feature request related to a problem? Please describe.

Use Case

trace_call is used extensively by EVM developers to simulate transaction routes before execution, allowing them to preview how a transaction would behave under specific on-chain conditions without broadcasting it.

In combination with state overrides, this enables them to:

  • Emulate token approvals and other prerequisite contract states
  • Test different contract interactions safely and deterministically

Additionally, they may rely on trace_call (alongside eth_getLogs and eth_getTransactionReceipt) to verify and analyze transactions that have already occurred.

Benefits

  • Enables robust off-chain transaction simulation and debugging
  • Improves developer tooling for dApp and DeFi integrations
  • Aligns Filecoin’s RPC feature set more closely with Ethereum-compatible environments with improved safety and debugging

References

Current Ecosystem Users Impacted

  • EVM devs debugging contract interactions (e.g. a DEX provider in the ecosystem)
    • "we use trace call in order to simulate routes before they are sent"
    • "importantly we use it together with state overrides to simulate approvals"
    • "we also use it to confirm swaps that have already happened, combined with getlogs and transactionreceipt"

Describe the solution you'd like

This is a request for support of the trace_call RPC method as well as state overrides, similar to the functionality available in Ethereum clients (e.g. Geth).

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    📌 Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions