Greetings Flow community,
We’re excited to share progress for a critical milestone on the path to permissionless deployment. Variable Transaction Fee support will be released in the April 6th Spork, followed by the first Flow community vote for enabling the new fee structure shortly thereafter.
When Variable Transaction Fees are enabled most transactions will become cheaper or stay in the same range as today with the most expensive transaction costing up to fifty times more than today, with a cost $0.0036 USD when Flow is at $7.25 USD. This helps to keep Flow healthy for everyone as network activity increases.
The community vote will be powered by CAST, a community voting tool created by Dapper Collectives. The introduction of this tool and voting mechanism is an important component of public governance on Flow that will evolve over time. To participate in this first vote, which prioritizes gathering feedback for this first version of voting on Flow, please follow the directions below.
Accounts which have staked or delegated their FLOW as of the Epoch beginning before the date of the vote is scheduled will be eligible to vote. Once you connect your wallet to CAST, it will determine your voting eligibility.
You can stake or delegate FLOW via Flow Port.
Anyone that wishes to participate in this vote MUST have staked or delegated their FLOW by April 4, 2022 4pm PST / 1am CET
How will voting work?
The first proposal using CAST will use simple binary choice voting. The tool can support single choice voting, approval voting, quadratic voting, ranked choice voting, and weighted voting.
Accounts will be able to vote based upon a simple weighted voting strategy. Currently, this weighted voting strategy could be based on any combination of:
- FLOW Balance
- Delegated FLOW
- Staked FLOW
Of these choices, we will begin by taking a snapshot of the delegated and staked FLOW as of a predefined block height. The raw FLOW balance of an account should not give it any weight.
Lastly, voting via CAST will be executed fully off-chain. In the future, this can transition to a hybrid model for proposals that have an on-chain component.
First Proposal: Variable Transaction Fees
The first proposal the Flow community will cast their vote on is the implementation of Variable Transaction Fees
The April 6 Spork will introduce a network update that makes it possible to charge transactions based upon the number of function calls, loop iterations, and bytes read or written by the program. For more information about Variable Transaction Fees, please refer to this forum post.
This proposal is to update the calculation of transaction fees on Flow to better secure and stabilize the network. These fees will be assessed based on the relative cost to the network of various operations based on execution effort.
For a detailed breakdown of operations, please refer to the Variable Transaction Fees FLIP, as well as this detailed forum post which includes FAQ information. Based on analysis from this, four operational categories were identified as categories used to measure execution cost:
- GetValue (Per Byte)
- SetValue (Per Byte)
- Cadence invocation, function call or loop
- Create Account
To learn more about how the weights are applied, please refer to FLIP 660: Variable Transaction Fees.
While this proposal and analysis is sharing a methodology of determining the execution effort of transactions, no study has been done to explore how to set these parameters so that the network is optimally secure. Given that consensus must first be made on the proposed calculation changes, this proposal is the first of a series which will adjust fees in the future.
Voting on the proposal will begin on April 8, 2022 at 12pm PT / 9pm CET and end on April 29, 2022 at 12pm PT / 9pm CET, and will be a binary choice between:
- Accept: Begin collecting fees as described in the proposal
- Reject: Transaction fee collection will remain the same
This means anyone wanting to participate in this vote MUST stake or delegate their FLOW by April 4, 2022 4pm PST / 1am CET to be considered eligible.
You can stake or delegate FLOW via Flow Port.
First Proposal: Dapper-operated Nodes & Genesis Account Ineligible
We also wanted to make an important callout that Dapper-operated nodes and the genesis wallet will both be ineligible for the dynamic transactions fees vote. The most transparent way to accomplish this is by excluding these accounts from the snapshot. Public governance should inspire confidence that the community is driving the vote, and we hope this decision does just that.
Why only accounts with staked and delegated FLOW?
Current analysis shows that roughly 78% of FLOW is staked or delegated.
In decentralized voting systems it often makes sense to impose some level of opportunity cost on voters in order to discourage buying tokens just for one snapshot vote, or otherwise attempting to collude for short periods of time to sway votes.
Since the vast majority of FLOW is already locked in a mechanism which requires at least one Epoch to unstake, this proves people are willing to accept that opportunity cost. For this first vote (and likely votes going forward) limiting voting to people who expect to hold FLOW for at least two epochs means that they have a stake in contributing to the network.
How does CAST work?
CAST is a governance and decision-making device for the Flow ecosystem. It’s an off-chain voting tool for DAOs and other types of decentralized communities to use whenever making decisions together about what matters to their organization and its governance — democratically and transparently.
If you have a Flow wallet address, you can connect it to CAST to use the voting tool on either desktop or mobile. Once ready to vote, you’ll be able to make your selection on the proposal page and sign a transaction with your wallet to cast your vote. Once your vote is cast, you cannot vote again or change your vote in any way.
All data for communities, proposals, and votes on CAST is stored on IPFS, a decentralized file storage service. Learn more about IPFS here.
The current release of CAST is a private alpha and is being tested by In the near future, anyone will be able to create their own community on CAST along with its own proposals and votes. CAST’s code is open source; if you’re interested in contributing, you can do so via the Github repo.
This is just the first part of a broader set of tools that will make DAOs more accessible, easier to manage, and more fun for all participants. By creating open and approachable dapps, we’re clearing the path for builders, creators, and communities to reap the value of the culture they co-create.
Here’s a quick visual that shows how voting will work once you are on the proposal page on CAST:
Please let us know what you think in the replies, or share your thoughts with the community in the Flow Discord.