Key Concepts

The FLOW token is an integral part of the overall Flow ecosystem. There is a lot more to cover, but here are a few key concepts.

Fees

There are two types of fees that occur on the Flow blockchain: variable transaction fees and storage fees.

Segmented Transaction Fees

Transaction fees are applied only once per transaction, at time of execution.

Transactions without a valid payer signature will fail and not be included in a block, prior to when the fee would be charged. If there is no one to charge, the transaction never goes through.

If a transaction fails for some other reason, you will still be charged. The fee covers the cost of the network looking at the transaction and thus must be paid even if no change to your account is made.

Transaction fees are charged based upon how much work is done by the transaction during execution, including creating accounts, reading and updating state, and executing of cadence logic. For more information, see Segmented Transaction Fees on Flow.

Storage/Account Fees

The account creation fee is applied only when a new account is created. This fee covers the cost of storing up to 100kB of data in perpetuity. This fee is applied only once and can be "topped up" to add additional storage to an account.

More information: Storing Data on Flow

Accounts

An account on Flow is a record in the chain state that holds the following information:

  • Address: unique identifier for the account
  • Balance: default token balance
  • Public Keys: public keys authorized on the account
  • Code: Cadence contracts deployed to the account
  • Storage: area of the account used to store resource assets

More information: Accounts & Keys

Flow Service Account

The Service Account is a special account in Flow that has special permissions to manage system contracts. It is able to mint tokens, set fees, and update network-level contracts.

Tokens & Fees

The Service Account has administrator access to the FLOW token smart contract, so it has authorization to mint and burn tokens. It also has access to the transaction fee smart contract and can adjust the fees charged for transactions execution on Flow.

Network Management

The Service Account administrates other smart contracts that manage various aspects of the Flow network, such as epochs and (in the future) validator staking auctions.

Governance

Besides its special permissions, the Service Account is an account like any other in Flow. During the early phases of Flow's development, the account will be controlled by keys held by Dapper Labs. As Flow matures, the service account will transition to being controlled by a smart contract governed by the Flow community.

Key Format

We are supporting ECDSA with the curves P-256 and secp256k1. For these curves, the public key is encoded into 64 bytes as X||Y where || is the concatenation operator.

  • X is 32 bytes and is the big endian byte encoding of the x-coordinate of the public key padded to 32, i.e. X=x_31||x_30||...||x_0 or X = x_31*256^31 + ... + x_i*256^i + ... + x_0.
  • Y is 32 bytes and is the big endian byte encoding of the y-coordinate of the public key padded to 32, i.e. Y=y_31||y_30||...||y_0 or Y = y_31*256^31 + ... + y_i*256^i + ... + y_0