Skip to content

Releases: onflow/flow-go

v0.44.2

11 Dec 21:26
3d7eba4

Choose a tag to compare

What's Changed

Full Changelog: v0.44.1...v0.44.2

20th Nov 2025 - Height Coordinated Upgrade on Mainnet27 at Block Height 133408444

20 Nov 19:32
0938ba4

Choose a tag to compare

Improvements to Scheduled Transactions

This release includes a refinement to how Scheduled Transactions are processed. The main service account previously acted as the authorizer for several categories of system activity, including epoch transitions and governance related transactions. After the Forte upgrade, Scheduled Transactions were added to this same workflow, resulting in multiple types of system transactions being authorized by a single account.

To improve separation of concerns, Scheduled Transactions are now processed by a dedicated child account of the service account. This child account (mainnet: 0x45df3724e7c13957, testnet: 0x9275945e651650bd) is used only for Scheduled Transaction processing and has the minimal capabilities required to access the system transactions contract. This creates a cleaner boundary between Scheduled Transactions and other system or governance functions.

The behavior of Scheduled Transactions for developers remains unchanged.

For more details, see issue 8161.

Access API changes for Scheduled Transactions

Scheduled Transactions have been live on Flow since the Forte upgrade and are already accessible through the GetTransactionsByBlockID API.

This release expands the Access API to provide clearer and more complete support for querying scheduled and system transactions.

The updates to the gRPC Access API include:

  1. GetTransaction and GetTransactionResult now support querying any transaction by ID, including submitted, scheduled, and system transactions.
  2. GetSystemTransaction and GetSystemTransactionResult will return only the system transaction and no longer include Scheduled Transactions.
  3. Two new endpoints have been added for querying scheduled transactions exclusively:
    GetScheduledTransaction and GetScheduledTransactionResult.
  4. GetTransactionsByBlockID and GetTransactionResultsByBlockID remain unchanged and continue to include scheduled transactions.

For more details, see issue 7782.

REST Access API

Updates to the REST Access API mirror the gRPC changes:

Both now support querying any transaction by ID, including submitted, scheduled, and system transactions.

Fusaka upgrade

Support for the Ethereum Fusaka update is included in this release. Activation is aligned with Ethereum's upgrade schedule.

  • Testnet: November 19, 2025 at 18:00:00 UTC
  • Mainnet: December 03, 2025 at 18:00:00 UTC

For more information, see issue 912.

Commit List

Scheduled Transaction

EVM

  • Bump ethereum/go-ethereum dependency to v1.16.4 by @m-Peter in #7984
  • Eliminate duplicate storage read operation when creating EVM BlockContext by @m-Peter in #8053
  • Enable EVM Fusaka hard-fork for PreviewNet (a.k.a Emulator) & Testnet by @m-Peter in #8085
  • Apply any given SetCodeAuthorization list to DryCall by @m-Peter in #8148

Data Availability

Cadence

FVM

Collection node

Verification node

Execution node

  • Change the default chunk data pack pruning threshold to 15 days by @zhangchiqing in #8118

CI/CD

Util

Documentation

New Contributors

Full Changelog: v0.43.3...v0.44.0

🎺 Forte (Mainnet 27)

10 Nov 22:00
fabd124

Choose a tag to compare

The Forte network upgrade will unlock the next era of Flow. This upgrade will empower developers and AI agents building on Flow, unlocking protocol composability and native automation directly on the network. Forte upgrades Flow with the tools and performance to make it a best-in-class option for building with AI, tapping into Cadence’s developer friendliness, launching new features, and introducing a reusable component library alongside core protocol improvements.

Forte advances the roadmap across all three pillars - developer experience, efficiency and scalability, and protocol autonomy.

🧑‍💻✨ Revolutionizing Developer Experience

🕦 🤖 Build Autonomous Apps with Scheduled Transactions

Flow adds Scheduled Transactions, the first native time scheduler that lets on-chain apps run tasks automatically, like cron job for blockchains. So applications are no longer restricted to being reactive only to user transactions.
Scheduled Transactions enable autonomous apps, for example DeFi protocols and AI-driven agents that proactively rebalance, settle, sweep on a schedule, all without external keepers. They run natively on the network, which simplifies operations, reduces off-chain dependencies, and makes behavior auditable and predictable in code. For builders, this means fewer moving parts to deploy, fewer operational scripts to maintain, and a cleaner path to automation-heavy use cases that feel instant and reliable to end users. This work implements FLIP 330: Scheduled Transaction.

🔢🔢🔢🔢 High-precision DeFi with 128-bit fixed-point types in Cadence

Cadence now supports Fix128 and UFix128, 128-bit fixed-point types enabling precision up to 24 decimal places for advanced DeFi, risk engines, interest accrual, and other finance-heavy workloads. These types expand numeric range while preserving fine fractional precision, and all existing Fix64 and UFix64 values convert losslessly to their 128-bit counterparts. In contrast, most Ethereum contracts rely on integer math with token “decimals” rather than a native fixed-point type, which means Cadence’s built-in 128-bit fixed-point support removes much of the bespoke arithmetic scaffolding and reduces rounding-related errors in application code. This work implements FLIP 341: Add 128-bit Fixed-point Types to Cadence.

📱 🔑 Native WebAuthn and Passkey Support

Flow adds native WebAuthn support to the protocol: you can now authorize transactions with passkeys and other WebAuthn credentials. The Access API and Cadence FVM have been extended to accept and validate WebAuthn signatures, enabling device-backed credentials from iOS, Android, browsers, and password managers to sign transactions. This work implements FLIP 264: WebAuthn Credential Support, bringing standard WebAuthn authentication to Flow accounts without breaking existing flows.

For users, passkeys eliminate the need for seed phrases while preserving self-custody and secure cross-device portability. Wallets and applications can take advantage of widely adopted WebAuthn implementations in browsers and operating systems, which makes integration simple. For example, with Flow’s native account abstraction model and on-chain passkey support, developers can build smart wallets on Flow without relying on additional smart contract layers like ERC-4337. Flow Wallet will soon be integrating WebAuthn in the near future.

🤖 ❤️ 🤗 Descriptive, AI- and human-friendly Cadence errors

Cadence compiler and linter errors are now designed for AI assistance, making it easier for agents and IDE copilots to fix issues automatically. Messages for common problems, including pre-1.0 keyword changes like pub, have been rewritten to explain the cause, suggest concrete fixes, and link directly to reference docs and migration notes. These enriched primary and secondary messages are also surfaced through the Cadence language server, so tools like Cursor and other agent-based editors can follow the link, apply the recommended change, and validate the result. The outcome is faster feedback, fewer round trips to documentation, and a smoother path for AI agents that refactor or migrate Cadence code, all of which advances Flow’s goal of first-class developer experience for agent-powered workflows.

⚙️ Boosting Efficiency and Scalability

🦡 ➡️ 🪨 Switching node database from BadgerDB to PebbleDB for more scalability

This release upgrades node storage to PebbleDB to deliver better uptime, smoother operations, and lower total cost for operators. PebbleDB offers higher stability under load for our workloads, eliminating memory spikes, effective automated pruning of historical data, a modest performance edge in typical node operations, and broad ecosystem adoption that supports rapid improvements and long-term runtime reliability. In practice, these strengths translate into more scalable nodes, simpler database management, and improved ROI for operators. Following the migration, measured outcomes show significant gains: depending on node type memory usage improves by up to 80%, CPU usage drops by up to 60%, and annual disk usage is reduced by up to 30%.
As a result, the recommended hardware specifications for all node roles except Execution have been revised and lowered to reflect the improved resource efficiency. Updated hardware recommendations can be found here.

🗝️🗝️🗝️ ➡️ 👉 👉 🗝️ Make state storage more efficient with account key de-duplication

Public key de-duplication streamlines Flow’s state while preserving the flexibility of multi-key accounts. Many apps intentionally reuse the same key to manage multiple in-flight transactions, since each key maintains its own sequence number. With de-duplication, when a previously added key is added again the state now references a single canonical entry instead of storing another copy, and existing accounts have been de-duplicated transparently. The duplication problem is significant: over half of all keys (53%) are duplicates, and one in ten accounts (10%) contain duplicate keys. Removing duplicates cuts a large chunk of redundant data, shrinking Flow’s execution state by about 6% (21 GB out of 349 GB). Specifically, we trimmed 0.29 billion of the current 1.82 billion entries in Flow’s low-level storage trie, making state access leaner and faster. This translates to an estimated 6–18% reduction in memory used by Execution Nodes, and benefits any node or service that touches payloads by moving less data and finishing work sooner.

📈 🎚️ Overload resilience with adaptive collection rate limiting

Flow’s architecture functions like an assembly line - transactions are first batched into blocks, then executed, and finally committed (“sealed”) only after the results have passed verification . This pipelined design enables massive scalability. However, if the collection nodes, the first stage of the pipeline, accept more transactions than subsequent stages can process, a backlog may accumulate inside the pipeline. Forte introduces adaptive rate limiting for collections so that when execution or sealing lags, collection nodes automatically ease off. The result is a steadier pipeline flow, even at transaction rates of several hundred per second.
This resilience feature is increasingly important as transaction volume continues to grow. With Flow Actions, AI agents are expected to drive additional traffic. The limiter activates only above a configurable threshold and disengages automatically once sealing catches up. Load testing at upwards of 300 TPS shows that inserting one or two blocks with empty collections is often sufficient to clear accumulated sealing lag. Consequently, the limiter engages only for a small minority of blocks. Governance and protocol transactions are prioritized, ensuring that critical operations continue even while rate limiting is active. Sealing lag is tracked continuously and exposed as a metric for observability and tuning. In this way, Flow strengthens its resilience under challenging operational conditions, remaining highly responsive even during periods of network overload.

🚧 🧱 Unlocking (near) real-time transaction results

Flow’s long-term vision for data availability is to enable clients and developers to trustlessly access Flow’s state with minimal latency. In practice, this is achieved through Access Nodes (ANs), which replicate block state and transaction results, serving them directly without relying on third-party services.
The Crescendo upgrade marked a major milestone towards this vision: ANs began locally replicating account data along with the transaction results and events for each sealed block. This allowed ANs to serve state queries directly from their own data, reducing latency and easing load on the Execution Nodes through local instead of remote data lookups. Shortly after, the next upgrade introduced streaming endpoints, further improving developer experience when building dApps that consume chain data. Today, AN...

Read more

v0.43.1-rc.6

07 Oct 23:01
fa65b20

Choose a tag to compare

v0.43.1-rc.6 Pre-release
Pre-release

What's Changed

Data Availability

Execution

Immutability

  • Extend InterfaceFromMessageCode, define UntrustedMessage interface. by @AndriiDiachuk in #7739
  • messages.Proposal, messages.ClusterProposal: message/internal split + validation by @UlyanaAndrukhiv in #7731
  • messages.CollectionGuarantee: message/internal split + validation by @UlyanaAndrukhiv in #7761
  • messages.BlockResponse, messages.ClusterBlockResponse: message/internal split + validation by @UlyanaAndrukhiv in #7740
  • messages.SyncRequest, messages.SyncResponse and messages.BatchRequest: message/internal split + validation by @UlyanaAndrukhiv in #7776
  • messages.EntityRequest and messages.EntityResponse: message/internal split + validation by @AndriiDiachuk in #7790
  • messages.ChunkDataRequest, messages.ChunkDataResponse and messages.RangeRequest: message/internal split + validation by @UlyanaAndrukhiv in #7798
  • messages.ApprovalRequest and messages.ApprovalResponse : message/internal split + validation by @AndriiDiachuk in #7760
  • messages.BlockVote, messages.ClusterBlockVote, messages.TransactionBody and messages.Transaction: message/internal split + validation by @AndriiDiachuk in #7801
  • messages.TimeoutObject and messages.ClusterTimeoutObject: message/internal split + validation by @UlyanaAndrukhiv in #7818
  • flow.ExecutionReceipt and messages.DKGMessage: message/internal split + validation by @UlyanaAndrukhiv in #7823
  • messages.ResultApproval and messages.TestMessage: message/internal split + validation by @AndriiDiachuk in #7824
  • Sync feature/networking-layer-immutability with Master by @AndriiDiachuk in #7900
  • Network Layer by @AndriiDiachuk in #7887

Scheduled Transactions

FlowEVM

  • Add the MaxGasConsumed field in EVM Result type by @m-Peter in #7951

Storage

Cadence

Testing

Util

CI

flow-go-sdk

Core Contracts

  • Updates core-contracts deps and adds deployment for FlowTransactionSchedulerUtils by @joshuahannan in #7938

Documentation

New Contributors

Full Changelog: v0.43.0...v0.43.1-rc.6

7th Aug 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 122174655

08 Aug 00:57
5ad9dd5

Choose a tag to compare

This tag is public release of internal release tagged with v0.42.1-rc.3

What's Changed

Full Changelog: v0.42.1...v0.42.3

17th June 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 116720200

18 Jun 16:38
5fe6535

Choose a tag to compare

What's Changed

Data Availability

  • Fix high CPU usage related to EVM DeltaView.AddressInAccessList by @m-Peter in #7502
  • adding access node compatibility for new version by @j1010001 in #7500

Cadence

Storage

Full Changelog: v0.42.0-rc.2...v0.42.1

3rd June 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 115211511

16 Jun 17:03
5a5a11d

Choose a tag to compare

What's Changed

Data Availability

Cadence

Execution

FVM

Storage

  • Refactor hotstuff Persister by @zhangchiqing in #7358
  • Fix Writer.Set() & Writer.Delete() args not being safe to modify (BadgerDB) by @fxamacker in #7400
  • Optimize memory cache key creation and key format for some stores by @fxamacker in #7391
  • Optimize iterating and seeking with BadgerDB by @fxamacker in #7432
  • Fix memory caches getting out of sync with databases (BadgerDB and Pebble) by @fxamacker in #7324
  • Support Execution Fork Evidence for new databases (BadgerDB & Pebble) by @fxamacker in #7388

Bug fixes

  • Fix bug where protected types appear as fields in unprotected types by @jordanschalm in #7386

Util

Full Changelog: v0.41.4...v0.42.0-rc.2

23rd May 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 114045444

16 Jun 15:36
b120bc4

Choose a tag to compare

What's Changed

Data Availability

Cadence

Full Changelog: v0.41.0...v0.41.4

v0.41.3

21 May 23:42
23eb808

Choose a tag to compare

What's Changed

Full Changelog: v0.41.2...v0.41.3

v0.41.2

20 May 20:49
1b98944

Choose a tag to compare

What's Changed

Full Changelog: v0.41.1...v0.41.2