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 thex
-coordinate of the public key padded to 32, i.e.X=x_31||x_30||...||x_0
orX = x_31*256^31 + ... + x_i*256^i + ... + x_0
.Y
is 32 bytes and is the big endian byte encoding of they
-coordinate of the public key padded to 32, i.e.Y=y_31||y_30||...||y_0
orY = y_31*256^31 + ... + y_i*256^i + ... + y_0