Skip to content

Releases: filecoin-project/lotus

v1.36.2

Choose a tag to compare

@github-actions github-actions released this 27 Jul 05:53
c6f4d02

Lotus Node v1.36.2 is a recommended patch release focused on Ethereum RPC correctness and compatibility, StateWaitMsg confidence handling, dependency reliability, and operator tooling.

☢️ Upgrade Warnings ☢️

  • Tracing configuration has changed: the deprecated Jaeger exporter has been replaced by an OTLP HTTP exporter. The LOTUS_JAEGER_* environment variables are no longer supported; configure LOTUS_OTEL_EXPORTER_ENDPOINT and LOTUS_OTEL_EXPORTER_INSECURE instead. (filecoin-project/lotus#13533)

⭐ New Features

  • feat(lotus-shed): accept Ethereum transaction hashes in msg (filecoin-project/lotus#13727)
  • feat(cli): lotus-miner actor settle-deal now uses gas-aware adaptive batching — deal batches whose estimated gas would exceed a fraction of the block gas limit (tunable via --max-gas-fraction, default 1/4) are automatically split so no single SettleDealPaymentsExported message hogs block capacity (filecoin-project/lotus#13669)

🐛 Bug Fixes

  • fix(eth): eth_call and eth_estimateGas now accept a from address that is an EVM contract or that doesn't exist on chain, matching Geth and unblocking tooling that simulates from such senders (Safe SDK EIP-1271 signature checks, gas estimation before an account is funded). (filecoin-project/lotus#13724)
  • fix(api): StateWaitMsg now honors non-zero confidence when the message was executed by the current head at call time, waiting for the requested depth and tracking reverts instead of returning immediately. Full nodes reject confidence above chain finality (currently 900 epochs); lotus-gateway defaults to a 20-epoch maximum, configurable with --api-wait-confidence-limit (filecoin-project/lotus#13705)
  • fix(eth): resolve native Filecoin transaction recipients in eth_getTransactionByBlockHashAndIndex and eth_getTransactionByBlockNumberAndIndex against the block post-state, matching eth_getBlockByNumber and eth_getTransactionByHash for transfers that create the recipient account (filecoin-project/lotus#13699)
  • fix(eth): return ErrNullRound for explicit null epochs in singleton block-execution ETH APIs. eth_getBlockReceipts / EthGetBlockReceiptsLimited now reject a null block number instead of returning receipts for the previous non-null tipset. State-at-epoch APIs such as eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, and FilecoinAddressToEthAddress continue to resolve null epochs to the previous non-null tipset because Filecoin state is defined at the null epoch and is unchanged from that previous state. Range/sampling APIs such as eth_feeHistory also continue to walk real tipsets and skip null epochs, including when resolving a null newestBlock anchor to the previous non-null tipset. (filecoin-project/lotus#13694)
  • fix(eth): return null from eth_getTransactionByHash and eth_getTransactionReceipt for transaction hashes that were replaced before execution, matching Ethereum replacement semantics (filecoin-project/lotus#13664)
  • fix(eth): eth_getLogs, eth_newFilter and the logs variant of eth_subscribe now reject a filter that specifies more than 4 topic positions, matching the Ethereum JSON-RPC spec and go-ethereum. Previously the surplus positions were accepted but could never match an event (EVM logs carry at most t1..t4), so the filter silently returned no results while still adding one event-index join per position. (filecoin-project/lotus#13676)
  • fix(eth): reject malformed EthNonce JSON values that do not decode to exactly 8 bytes instead of panicking on short inputs or silently truncating long inputs. (filecoin-project/lotus#13696)

👌 Improvements

  • chore(deps): update go-libp2p-pubsub to v0.17.0. Lotus now uses the replacement outbound-stream trace events and the Google Protobuf size API. (filecoin-project/lotus#13707)
  • chore(deps): update libp2p networking dependencies. This includes libp2p's updated handling of unspecified listen addresses, so nodes listening on 0.0.0.0/:: may report or advertise concrete interface addresses returned by libp2p. (filecoin-project/lotus#13588)
  • chore(deps): update go-jsonrpc to v0.10.2 and go-f3 to v0.8.14, including WebSocket ping handling, response/channel hardening, and delayed F3 bootstrap retry throttling. (filecoin-project/lotus#13726)
  • chore(bootstrap): use /dnsaddr for ChainSafe bootstrap peers to allow peer changes through DNS, and remove the inactive fil.devtty.eu peers. (filecoin-project/lotus#13715)

📝 Changelog

For the full set of changes since the last stable release:

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 17 +2851/-1774 99
nijoe1 1 +1277/-123 15
dependabot[bot] 25 +767/-340 50
Phi-rjan 7 +284/-299 21
ZenGround0 1 +171/-366 17
Matt Van Horn 1 +246/-19 4
iyiola-dev 1 +89/-113 9
William Morriss 1 +114/-2 6
LexLuthr 1 +101/-6 3
Kaif 2 +59/-7 5
Linghao 1 +58/-0 3
Jakub Sztandera 1 +26/-10 2
Phi 3 +18/-16 15
Hubert 1 +2/-9 2
futurehua 1 +5/-5 5
web3-bot 1 +1/-1 1

v1.36.1

Choose a tag to compare

@github-actions github-actions released this 30 Jun 07:59
d7491c1

This is the stable release of Lotus Node and Miner v1.36.1, a recommended patch release focused on Ethereum RPC correctness, gateway API alignment, and release/build reliability.

☢️ Upgrade Warnings ☢️

  • There are no upgrade warnings for this release.

⭐ New Features

  • feat(eth): add eth_baseFee JSON-RPC method returning the base fee for the next block, matching geth behavior via ComputeBaseFee on the current tipset (filecoin-project/lotus#13615)

🐛 Bug Fixes

  • fix(rpc): GasEstimateMessageGas no longer panics when estimating messages with an empty To or From address (filecoin-project/lotus#13672)
  • fix(api): trace transaction api returns the correct error (filecoin-project/lotus#13614)
  • fix(cli): warn when lotus daemon --api overrides the configured API.ListenAddress / LOTUS_API_LISTENADDRESS, making the selected API endpoint visible to operators (filecoin-project/lotus#13670)
  • fix(cli): RPC API URLs ending with a trailing slash no longer produce duplicate slashes before /rpc/<version> (filecoin-project/lotus#13662)
  • Fix off-by-one in transactionPosition returned by trace_block, trace_filter and trace_transaction. Positions were 1-indexed; per the Ethereum trace API spec they are 0-indexed and must match the corresponding transactionIndex from eth_getBlockByNumber. (filecoin-project/lotus#13610)
  • fix(eth): eth_getTransactionReceipt no longer fails when another transaction in the same block emits a large number of events. MaxFilterResults now caps only multi-tipset event queries; single-block calls (eth_getLogs with BlockHash, eth_getBlockReceipts, eth_getTransactionReceipt) bypass it. Public RPC operators should apply rate and response-size limits at the proxy layer for these calls; a single response can be large when a block contains log-heavy transactions (filecoin-project/lotus#13617)
  • fix(eth): return indexed block-level logsBloom for eth_getBlockByHash, eth_getBlockByNumber, and new-head subscription payloads when chain-index bloom data is available; existing tipsets without bloom rows continue to fall back to the previous full bloom. This adds a chain index DB migration for the tipset_bloom table and requires no RPC-provider config changes. (filecoin-project/lotus#13618)
  • fix(gateway): align v2 RPC surface (/rpc/v2) with v1; remove *Limited and *Untrusted eth method variants (filecoin-project/lotus#13628)
  • fix(eth): eth_call, eth_estimateGas and StateCall are no longer refused at the epoch immediately after an expensive network-upgrade migration; that block's migrated state is already available, so only the upgrade epoch itself is refused. This unblocks indexers that replay eth_call at the block of each event. The refusal now returns a typed error with the registered JSON-RPC code -32002 and a recognisable message, instead of the generic application code 1 (filecoin-project/lotus#13644)
  • fix: update Filecoin FFI to v1.36.1 (filecoin-project/lotus#13663)
  • fix(build): ffi-version-check now depends on the module update (filecoin-project/lotus#13658)
  • fix: docker builds Lotus on bullseye again (filecoin-project/lotus#13611)
  • fix: remove F3 data with existing chain cleanup (filecoin-project/lotus#13609)

👌 Improvements

  • Silence libp2p config log spam (filecoin-project/lotus#13612)
  • feat(mempool): raise the default per-actor cap on the untrusted push path (MaxUntrustedActorPendingMessages) from 10 to 100, reducing spurious ErrTooManyPendingMessages rejections for normal-cadence senders relaying through lotus-gateway / public RPC (filecoin-project/lotus#13636)
  • chore(cli): lotus-miner info supports --actor to query any miner without a local miner repo; miner-daemon-only sections are skipped when --actor is set (filecoin-project/lotus#13641)
  • chore: remove obsolete network-version guards across CLI, state-manager, storage, and miner code. (filecoin-project/lotus#13680)
  • feat: update mainnet.pi to remove the Venus bootstrap peer (filecoin-project/lotus#13648)

📝 Changelog

For the full set of changes since the last stable release:

Changes since RC1

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Phi-rjan 27 +40025/-1056 266
Rod Vagg 6 +1685/-1777 34
William Morriss 2 +976/-582 29
dependabot[bot] 19 +145/-730 35
ZenGround0 1 +171/-366 17
Shriraj Pawar 1 +368/-105 14
Andrew Jackson (Ajax) 2 +290/-90 18
Piotr Galar 3 +223/-78 14
beck 3 +93/-59 9
Phi 4 +34/-34 14
Linghao 1 +58/-0 3
chuanshanjida 1 +6/-6 6
Łukasz Magiera 1 +5/-5 1
Steve Loeppky 1 +7/-3 1
Jakub Sztandera 2 +3/-3 2
caltechustc 1 +2/-1 1
Aryan Tikarya 1 +2/-1 2
Jimmy Zhang 1 +0/-1 1

miner/v1.36.1

Choose a tag to compare

@github-actions github-actions released this 30 Jun 07:59
d7491c1

This is the stable release of Lotus Node and Miner v1.36.1, a recommended patch release focused on Ethereum RPC correctness, gateway API alignment, and release/build reliability.

☢️ Upgrade Warnings ☢️

  • There are no upgrade warnings for this release.

⭐ New Features

  • feat(eth): add eth_baseFee JSON-RPC method returning the base fee for the next block, matching geth behavior via ComputeBaseFee on the current tipset (filecoin-project/lotus#13615)

🐛 Bug Fixes

  • fix(rpc): GasEstimateMessageGas no longer panics when estimating messages with an empty To or From address (filecoin-project/lotus#13672)
  • fix(api): trace transaction api returns the correct error (filecoin-project/lotus#13614)
  • fix(cli): warn when lotus daemon --api overrides the configured API.ListenAddress / LOTUS_API_LISTENADDRESS, making the selected API endpoint visible to operators (filecoin-project/lotus#13670)
  • fix(cli): RPC API URLs ending with a trailing slash no longer produce duplicate slashes before /rpc/<version> (filecoin-project/lotus#13662)
  • Fix off-by-one in transactionPosition returned by trace_block, trace_filter and trace_transaction. Positions were 1-indexed; per the Ethereum trace API spec they are 0-indexed and must match the corresponding transactionIndex from eth_getBlockByNumber. (filecoin-project/lotus#13610)
  • fix(eth): eth_getTransactionReceipt no longer fails when another transaction in the same block emits a large number of events. MaxFilterResults now caps only multi-tipset event queries; single-block calls (eth_getLogs with BlockHash, eth_getBlockReceipts, eth_getTransactionReceipt) bypass it. Public RPC operators should apply rate and response-size limits at the proxy layer for these calls; a single response can be large when a block contains log-heavy transactions (filecoin-project/lotus#13617)
  • fix(eth): return indexed block-level logsBloom for eth_getBlockByHash, eth_getBlockByNumber, and new-head subscription payloads when chain-index bloom data is available; existing tipsets without bloom rows continue to fall back to the previous full bloom. This adds a chain index DB migration for the tipset_bloom table and requires no RPC-provider config changes. (filecoin-project/lotus#13618)
  • fix(gateway): align v2 RPC surface (/rpc/v2) with v1; remove *Limited and *Untrusted eth method variants (filecoin-project/lotus#13628)
  • fix(eth): eth_call, eth_estimateGas and StateCall are no longer refused at the epoch immediately after an expensive network-upgrade migration; that block's migrated state is already available, so only the upgrade epoch itself is refused. This unblocks indexers that replay eth_call at the block of each event. The refusal now returns a typed error with the registered JSON-RPC code -32002 and a recognisable message, instead of the generic application code 1 (filecoin-project/lotus#13644)
  • fix: update Filecoin FFI to v1.36.1 (filecoin-project/lotus#13663)
  • fix(build): ffi-version-check now depends on the module update (filecoin-project/lotus#13658)
  • fix: docker builds Lotus on bullseye again (filecoin-project/lotus#13611)
  • fix: remove F3 data with existing chain cleanup (filecoin-project/lotus#13609)

👌 Improvements

  • Silence libp2p config log spam (filecoin-project/lotus#13612)
  • feat(mempool): raise the default per-actor cap on the untrusted push path (MaxUntrustedActorPendingMessages) from 10 to 100, reducing spurious ErrTooManyPendingMessages rejections for normal-cadence senders relaying through lotus-gateway / public RPC (filecoin-project/lotus#13636)
  • chore(cli): lotus-miner info supports --actor to query any miner without a local miner repo; miner-daemon-only sections are skipped when --actor is set (filecoin-project/lotus#13641)
  • chore: remove obsolete network-version guards across CLI, state-manager, storage, and miner code. (filecoin-project/lotus#13680)
  • feat: update mainnet.pi to remove the Venus bootstrap peer (filecoin-project/lotus#13648)

📝 Changelog

For the full set of changes since the last stable release:

Changes since RC1

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Phi-rjan 27 +40025/-1056 266
Rod Vagg 6 +1685/-1777 34
William Morriss 2 +976/-582 29
dependabot[bot] 19 +145/-730 35
ZenGround0 1 +171/-366 17
Shriraj Pawar 1 +368/-105 14
Andrew Jackson (Ajax) 2 +290/-90 18
Piotr Galar 3 +223/-78 14
beck 3 +93/-59 9
Phi 4 +34/-34 14
Linghao 1 +58/-0 3
chuanshanjida 1 +6/-6 6
Łukasz Magiera 1 +5/-5 1
Steve Loeppky 1 +7/-3 1
Jakub Sztandera 2 +3/-3 2
caltechustc 1 +2/-1 1
Aryan Tikarya 1 +2/-1 2
Jimmy Zhang 1 +0/-1 1

v1.36.1-rc1

v1.36.1-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jun 05:37
cdc926d

☢️ Upgrade Warnings ☢️

⭐ New Features

  • feat(eth): add eth_baseFee JSON-RPC method returning the base fee for the next block, matching geth behavior via ComputeBaseFee on the current tipset (filecoin-project/lotus#13615)

🐛 Bug Fixes

  • fix(api): trace transaction api returns the correct error (filecoin-project/lotus#13614)
  • fix(cli): RPC API URLs ending with a trailing slash no longer produce duplicate slashes before /rpc/<version> (filecoin-project/lotus#13662)
  • Fix off-by-one in transactionPosition returned by trace_block, trace_filter and trace_transaction. Positions were 1-indexed; per the Ethereum trace API spec they are 0-indexed and must match the corresponding transactionIndex from eth_getBlockByNumber. (filecoin-project/lotus#13610)
  • fix(eth): eth_getTransactionReceipt no longer fails when another transaction in the same block emits a large number of events. MaxFilterResults now caps only multi-tipset event queries; single-block calls (eth_getLogs with BlockHash, eth_getBlockReceipts, eth_getTransactionReceipt) bypass it. Public RPC operators should apply rate and response-size limits at the proxy layer for these calls; a single response can be large when a block contains log-heavy transactions (filecoin-project/lotus#13617)
  • fix(eth): return indexed block-level logsBloom for eth_getBlockByHash, eth_getBlockByNumber, and new-head subscription payloads when chain-index bloom data is available; existing tipsets without bloom rows continue to fall back to the previous full bloom. This adds a chain index DB migration for the tipset_bloom table and requires no RPC-provider config changes. (filecoin-project/lotus#13618)
  • fix(gateway): align v2 RPC surface (/rpc/v2) with v1; remove *Limited and *Untrusted eth method variants (filecoin-project/lotus#13628)
  • fix(eth): eth_call, eth_estimateGas and StateCall are no longer refused at the epoch immediately after an expensive network-upgrade migration; that block's migrated state is already available, so only the upgrade epoch itself is refused. This unblocks indexers (e.g. The Graph) that replay eth_call at the block of each event. The refusal now returns a typed error with the registered JSON-RPC code -32002 and a recognisable message, instead of the generic application code 1 (filecoin-project/lotus#13644)

👌 Improvements

  • Silence libp2p config log spam (filecoin-project/lotus#13612)
  • feat(mempool): raise the default per-actor cap on the untrusted push path (MaxUntrustedActorPendingMessages) from 10 to 100, reducing spurious ErrTooManyPendingMessages rejections for normal-cadence senders relaying through lotus-gateway / public RPC (filecoin-project/lotus#13636)
  • chore(cli): lotus-miner info supports --actor to query any miner without a local miner repo; miner-daemon-only sections (subsystems, start time, alerts, workers, sectors) are skipped when --actor is set

Release Log

Read more

miner/v1.36.1-rc1

miner/v1.36.1-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jun 05:37
cdc926d

☢️ Upgrade Warnings ☢️

⭐ New Features

  • feat(eth): add eth_baseFee JSON-RPC method returning the base fee for the next block, matching geth behavior via ComputeBaseFee on the current tipset (filecoin-project/lotus#13615)

🐛 Bug Fixes

  • fix(api): trace transaction api returns the correct error (filecoin-project/lotus#13614)
  • fix(cli): RPC API URLs ending with a trailing slash no longer produce duplicate slashes before /rpc/<version> (filecoin-project/lotus#13662)
  • Fix off-by-one in transactionPosition returned by trace_block, trace_filter and trace_transaction. Positions were 1-indexed; per the Ethereum trace API spec they are 0-indexed and must match the corresponding transactionIndex from eth_getBlockByNumber. (filecoin-project/lotus#13610)
  • fix(eth): eth_getTransactionReceipt no longer fails when another transaction in the same block emits a large number of events. MaxFilterResults now caps only multi-tipset event queries; single-block calls (eth_getLogs with BlockHash, eth_getBlockReceipts, eth_getTransactionReceipt) bypass it. Public RPC operators should apply rate and response-size limits at the proxy layer for these calls; a single response can be large when a block contains log-heavy transactions (filecoin-project/lotus#13617)
  • fix(eth): return indexed block-level logsBloom for eth_getBlockByHash, eth_getBlockByNumber, and new-head subscription payloads when chain-index bloom data is available; existing tipsets without bloom rows continue to fall back to the previous full bloom. This adds a chain index DB migration for the tipset_bloom table and requires no RPC-provider config changes. (filecoin-project/lotus#13618)
  • fix(gateway): align v2 RPC surface (/rpc/v2) with v1; remove *Limited and *Untrusted eth method variants (filecoin-project/lotus#13628)
  • fix(eth): eth_call, eth_estimateGas and StateCall are no longer refused at the epoch immediately after an expensive network-upgrade migration; that block's migrated state is already available, so only the upgrade epoch itself is refused. This unblocks indexers (e.g. The Graph) that replay eth_call at the block of each event. The refusal now returns a typed error with the registered JSON-RPC code -32002 and a recognisable message, instead of the generic application code 1 (filecoin-project/lotus#13644)

👌 Improvements

  • Silence libp2p config log spam (filecoin-project/lotus#13612)
  • feat(mempool): raise the default per-actor cap on the untrusted push path (MaxUntrustedActorPendingMessages) from 10 to 100, reducing spurious ErrTooManyPendingMessages rejections for normal-cadence senders relaying through lotus-gateway / public RPC (filecoin-project/lotus#13636)
  • chore(cli): lotus-miner info supports --actor to query any miner without a local miner repo; miner-daemon-only sections (subsystems, start time, alerts, workers, sectors) are skipped when --actor is set

Release Log

Read more

v1.36.0

Choose a tag to compare

@github-actions github-actions released this 13 May 17:38

This is the stable release of the MANDATORY Lotus v1.36.0 release, which delivers the Filecoin network version 28, codenamed “Fire Horse” 🔥🐎. This release sets the upgrade epoch for the Mainnet network to Epoch 6052800: 2026-05-27T14:00:00Z. See the local time for other timezones.

☢️ Upgrade Warnings ☢️

  • All Lotus node and Storage Provider (SP) operators on Mainnet must upgrade to v1.36.0 before epoch 6052800, corresponding to 2026-05-27T14:00:00Z.
  • The minimum supported Go version is now 1.25.7. (filecoin-project/lotus#13594)

🏛️ Filecoin network version 28 FIPs and FRCs

📦 v18 Builtin Actor Bundle

This release uses the v18.0.0 actor bundle.

🚚 Migration

All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 120 epochs before the network upgrade. The migration for the NV28 upgrade is expected to be light with no heavy pre-migrations:

  • Pre-migration is expected to take less than 5 minutes.
  • The migration on the upgrade epoch is expected to take approximately 1 minute on a node with a NVMe drive and a newer CPU. For nodes running on slower disks/CPU, it is expected to take around 1-2 minutes.
  • RAM usage is expected to be under 20GiB RAM for both the pre-migration and migration.

We recommend node operators who have not enabled splitstore discard mode, and do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade.

For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), we recommend skipping the pre-migration, running the non-cached migration at the network upgrade epoch, and scheduling some additional downtime. Operators of such nodes can read the How to disable premigration in network upgrade tutorial.

⭐ New Features highlight

  • feat(cli): lotus wallet export gains a --format flag with a new hex-eth value that emits the raw 32-byte private key as hex, directly importable into Ethereum tools such as MetaMask, ethers.js, and Foundry. hex-eth is also accepted by lotus wallet import together with a --type flag (secp256k1 or delegated, defaulting to delegated). (filecoin-project/lotus#13586)
  • feat(cliutil): accept non-JWT API tokens in TOKEN:ADDRESS, enabling use of third-party RPC providers that issue opaque API keys. Multiaddrs using /wss or /tls now dial with wss://. (filecoin-project/lotus#13578)

🐛 Bug Fixes

  • fix(state): move StateGetRandomnessDigestFromBeacon into StateModule so lite nodes can serve the method correctly. (filecoin-project/lotus#13579)
  • fix(eth): eth_getTransactionReceipt no longer fails when another transaction in the same block emits a large number of events. MaxFilterResults now caps only multi-tipset event queries; single-block calls (eth_getLogs with BlockHash, eth_getBlockReceipts, eth_getTransactionReceipt) bypass it. Public RPC operators should apply rate and response-size limits at the proxy layer for these calls; a single response can be large when a block contains log-heavy transactions. (filecoin-project/lotus#13617)

📝 Changelog

For the set of changes since the last stable release:

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 9 +2451/-542 100
Phi-rjan 13 +496/-374 67
dependabot[bot] 14 +676/-103 28
Aryan Tikarya 1 +322/-11 5
beck 2 +182/-13 4
Jakub Sztandera 1 +50/-3 3
William Morriss 1 +4/-40 9
ledigang 1 +11/-11 11
Aditya Belgaonkar 1 +15/-0 9
web3-bot 2 +5/-5 4
hanabi1224 1 +4/-0 2

miner/v1.36.0

Choose a tag to compare

@github-actions github-actions released this 13 May 17:38

This is the stable release of the MANDATORY Lotus v1.36.0 release, which delivers the Filecoin network version 28, codenamed “Fire Horse” 🔥🐎. This release sets the upgrade epoch for the Mainnet network to Epoch 6052800: 2026-05-27T14:00:00Z. See the local time for other timezones.

☢️ Upgrade Warnings ☢️

  • All Lotus node and Storage Provider (SP) operators on Mainnet must upgrade to v1.36.0 before epoch 6052800, corresponding to 2026-05-27T14:00:00Z.
  • The minimum supported Go version is now 1.25.7. (filecoin-project/lotus#13594)

🏛️ Filecoin network version 28 FIPs and FRCs

📦 v18 Builtin Actor Bundle

This release uses the v18.0.0 actor bundle.

🚚 Migration

All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 120 epochs before the network upgrade. The migration for the NV28 upgrade is expected to be light with no heavy pre-migrations:

  • Pre-migration is expected to take less than 5 minutes.
  • The migration on the upgrade epoch is expected to take approximately 1 minute on a node with a NVMe drive and a newer CPU. For nodes running on slower disks/CPU, it is expected to take around 1-2 minutes.
  • RAM usage is expected to be under 20GiB RAM for both the pre-migration and migration.

We recommend node operators who have not enabled splitstore discard mode, and do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade.

For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), we recommend skipping the pre-migration, running the non-cached migration at the network upgrade epoch, and scheduling some additional downtime. Operators of such nodes can read the How to disable premigration in network upgrade tutorial.

⭐ New Features highlight

  • feat(cli): lotus wallet export gains a --format flag with a new hex-eth value that emits the raw 32-byte private key as hex, directly importable into Ethereum tools such as MetaMask, ethers.js, and Foundry. hex-eth is also accepted by lotus wallet import together with a --type flag (secp256k1 or delegated, defaulting to delegated). (filecoin-project/lotus#13586)
  • feat(cliutil): accept non-JWT API tokens in TOKEN:ADDRESS, enabling use of third-party RPC providers that issue opaque API keys. Multiaddrs using /wss or /tls now dial with wss://. (filecoin-project/lotus#13578)

🐛 Bug Fixes

  • fix(state): move StateGetRandomnessDigestFromBeacon into StateModule so lite nodes can serve the method correctly. (filecoin-project/lotus#13579)
  • fix(eth): eth_getTransactionReceipt no longer fails when another transaction in the same block emits a large number of events. MaxFilterResults now caps only multi-tipset event queries; single-block calls (eth_getLogs with BlockHash, eth_getBlockReceipts, eth_getTransactionReceipt) bypass it. Public RPC operators should apply rate and response-size limits at the proxy layer for these calls; a single response can be large when a block contains log-heavy transactions. (filecoin-project/lotus#13617)

📝 Changelog

For the set of changes since the last stable release:

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 9 +2451/-542 100
Phi-rjan 13 +496/-374 67
dependabot[bot] 14 +676/-103 28
Aryan Tikarya 1 +322/-11 5
beck 2 +182/-13 4
Jakub Sztandera 1 +50/-3 3
William Morriss 1 +4/-40 9
ledigang 1 +11/-11 11
Aditya Belgaonkar 1 +15/-0 9
web3-bot 2 +5/-5 4
hanabi1224 1 +4/-0 2

v1.36.0-rc1

v1.36.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Apr 19:00
f0f80ca

This is the first release candidate of the upcoming MANDATORY Lotus v1.36.0 release, which will deliver the Filecoin network version 28, codenamed "Fire Horse” 🔥🐎. This release candidate sets the upgrade epoch for the Calibration network to Epoch 3694534: 2026-05-07T14:00:00Z. See the local time for other timezones.

Mainnet activation is not yet scheduled in this release candidate, and will be determined after a succesful upgrade on Calibration network.

☢️ Upgrade Warnings ☢️

  • All Lotus node and Storage Provider (SP) operators on Calibration network must upgrade to this release candidate before the specified upgrade date for the Calibration network.
  • The minimum supported Go version is now 1.25.7. (filecoin-project/lotus#13594)

🏛️ Filecoin network version 28 FIPs and FRCs

📦 v18 Builtin Actor Bundle

This release candidate uses the v18.0.0 actor bundle

🚚 Migration

All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 120 epochs before the network upgrade. The migration for the NV28 upgrade is expected to be light with no heavy pre-migrations:

  • Pre-Migration is expected to take less then 3 minutes.
  • The migration on the upgrade epoch is expected to take approximately 30 seconds on a node with a NVMe-drive and a newer CPU. For nodes running on slower disks/CPU, it is still expected to around 1 minute.
  • RAM usages is expected to be under 20GiB RAM for both the pre-migration and migration.

We recommend node operators (who haven’t enabled splitstore discard mode) that do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade.

For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), we recommend skipping the pre-migration and run the non-cached migration (i.e., just running the migration at the network upgrade epoch), and schedule for some additional downtime. Operators of such nodes can read the How to disable premigration in network upgrade tutorial.

⭐ New Features highlight

  • feat(cli): lotus wallet export gains a --format flag with a new hex-eth value that emits the raw 32-byte private key as hex, directly importable into Ethereum tools such as MetaMask, ethers.js, and Foundry. hex-eth is also accepted by lotus wallet import together with a --type flag (secp256k1 or delegated, defaulting to delegated). (filecoin-project/lotus#13586)
  • feat(cliutil): accept non-JWT API tokens in TOKEN:ADDRESS, enabling use of third-party RPC providers that issue opaque API keys. Multiaddrs using /wss or /tls now dial with wss://. (filecoin-project/lotus#13578)

🐛 Bug Fixes

  • fix(state): move StateGetRandomnessDigestFromBeacon into StateModule so lite nodes can serve the method correctly. (filecoin-project/lotus#13579)

📝 Changelog

For the set of changes since the last stable release:

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 8 +1931/-457 89
dependabot[bot] 14 +676/-103 28
Phi-rjan 9 +401/-353 47
Aryan Tikarya 1 +322/-11 5
beck 2 +182/-13 4
Phi 2 +71/-16 12
William Morriss 1 +4/-40 9
ledigang 1 +11/-11 11
Aditya Belgaonkar 1 +15/-0 9
hanabi1224 1 +4/-0 2
web3-bot 1 +1/-1 1

miner/v1.36.0-rc1

miner/v1.36.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Apr 19:00
f0f80ca

This is the first release candidate of the upcoming MANDATORY Lotus v1.36.0 release, which will deliver the Filecoin network version 28, codenamed Fire Horse” 🔥🐎. This release candidate sets the upgrade epoch for the Calibration network to Epoch 3694534: 2026-05-07T14:00:00Z. See the local time for other timezones.

Mainnet activation is not yet scheduled in this release candidate, and will be determined after a succesful upgrade on Calibration network.

☢️ Upgrade Warnings ☢️

  • All Lotus node and Storage Provider (SP) operators on Calibration network must upgrade to this release candidate before the specified upgrade date for the Calibration network.
  • The minimum supported Go version is now 1.25.7. (filecoin-project/lotus#13594)

🏛️ Filecoin network version 28 FIPs and FRCs

📦 v18 Builtin Actor Bundle

This release candidate uses the v18.0.0 actor bundle

🚚 Migration

All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 120 epochs before the network upgrade. The migration for the NV28 upgrade is expected to be light with no heavy pre-migrations:

  • Pre-Migration is expected to take less then 3 minutes.
  • The migration on the upgrade epoch is expected to take approximately 30 seconds on a node with a NVMe-drive and a newer CPU. For nodes running on slower disks/CPU, it is still expected to around 1 minute.
  • RAM usages is expected to be under 20GiB RAM for both the pre-migration and migration.

We recommend node operators (who haven’t enabled splitstore discard mode) that do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade.

For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), we recommend skipping the pre-migration and run the non-cached migration (i.e., just running the migration at the network upgrade epoch), and schedule for some additional downtime. Operators of such nodes can read the How to disable premigration in network upgrade tutorial.

⭐ New Features highlight

  • feat(cli): lotus wallet export gains a --format flag with a new hex-eth value that emits the raw 32-byte private key as hex, directly importable into Ethereum tools such as MetaMask, ethers.js, and Foundry. hex-eth is also accepted by lotus wallet import together with a --type flag (secp256k1 or delegated, defaulting to delegated). (filecoin-project/lotus#13586)
  • feat(cliutil): accept non-JWT API tokens in TOKEN:ADDRESS, enabling use of third-party RPC providers that issue opaque API keys. Multiaddrs using /wss or /tls now dial with wss://. (filecoin-project/lotus#13578)

🐛 Bug Fixes

  • fix(state): move StateGetRandomnessDigestFromBeacon into StateModule so lite nodes can serve the method correctly. (filecoin-project/lotus#13579)

📝 Changelog

For the set of changes since the last stable release:

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 8 +1931/-457 89
dependabot[bot] 14 +676/-103 28
Phi-rjan 9 +401/-353 47
Aryan Tikarya 1 +322/-11 5
beck 2 +182/-13 4
Phi 2 +71/-16 12
William Morriss 1 +4/-40 9
ledigang 1 +11/-11 11
Aditya Belgaonkar 1 +15/-0 9
hanabi1224 1 +4/-0 2
web3-bot 1 +1/-1 1

v1.35.1

Choose a tag to compare

@github-actions github-actions released this 31 Mar 08:11
baaf988

This is the stable release of Lotus node v1.35.1, a patch release that extends EC finality tooling into the v2 API, Eth RPC, and lotus-shed, improves Ethereum RPC and gas estimation behavior, lowers several CLI batch defaults to reduce out-of-gas failures, and raises the minimum supported Golang version to 1.25.0. The final release also includes late backports for Ethereum RLP hardening, proof-parameter fetch robustness, indexed StateSearchMsg lookback handling, tightened Ethereum filter block-range enforcement, and null-round-aware EC finality chain walks.

☢️ Upgrade Warnings ☢️

⭐ New Features

  • feat(api): integrate FRC-0089 EC finality calculator into v2 API and Eth RPC, so "finalized" and "safe" tags reflect actual chain health (~20-30 epochs) rather than worst-case static 900-epoch fallback. Adds ChainGetTipSetFinalityStatus v2 endpoint for finality diagnostics. (filecoin-project/lotus#13547)
  • feat(shed): add lotus-shed finality-calculator for EC finality probability computation per FRC-0089 (filecoin-project/lotus#12093)

🐛 Bug Fixes

  • fix(rlp): modernize and harden Ethereum RLP decoding with tighter canonical-encoding validation, explicit nesting and input bounds, and expanded roundtrip coverage for transaction parsing (filecoin-project/lotus#13555)
  • fix(gateway): return ErrFilterNotFound instead of an empty result for unknown filter IDs in EthGetFilterLogs (filecoin-project/lotus#13519)
  • fix(eth): handle failed contract creates with nil result addresses in trace_filter (filecoin-project/lotus#13549)
  • fix(chainstore): remove expected CBOR decode warnings in GetCMessage for Ethereum-style transactions, reducing log spam on busy nodes (filecoin-project/lotus#13524)
  • fix(net): update FIL DevTTY WebTransport certhashes in the mainnet bootstrap list (filecoin-project/lotus#13530)
  • fix(gas): stricter bounds for GasEstimateGasPremium lookback (filecoin-project/lotus#13556)
  • fix: remove duplicate SQL statement entries from preparedStatementMapping (filecoin-project/lotus#13545)
  • fix(api): make StateSearchMsg respect lookbackLimit when returning indexed results (filecoin-project/lotus#13562)
  • fix(eth): tighten block range handling for trace_filter and eth_getLogs, including consistent -32005 limit-exceeded errors and gateway range enforcement for trace_filter (filecoin-project/lotus#13561)
  • fix(ecfinality): account for null rounds in EC finality calculator chain walk, aligning with FRC-0089 theoretical model and fixing depth-to-height conversion (filecoin-project/lotus#13565)

👌 Improvements

📝 Changelog

For the set of changes since the last stable release:

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 10 +3670/-595 63
Phi-rjan 6 +485/-159 49
dependabot[bot] 4 +98/-89 8
William Morriss 3 +351/-15 18
beck 1 +6/-6 5
eroderust 1 +7/-7 5
hanabi1224 1 +0/-17 1
Hubert 1 +0/-1 1
relotnek 1 +1/-1 1
Shashank 1 +3/-2 3
stringsbuilder 1 +2/-2 1
TippyFlits 1 +0/-5 1