The FLOW native token complies to the Flow Fungible Token standard
Follow the process outlined below if you would like to:
- a) Claim tokens purchased in a previous sale
- b) Purchase or hold FLOW in the future
Choose a custody provider who currently supports Flow:
- Ledger, or
- Create your own Flow account by going to Flow Port and selecting "Create Account" on the login screen. You will only be able to use this option if you currently hold an account on the network with the ability to pay for the account creation fees.
Your chosen custody service will provide you with an option to create a
Account addresses for managing funds and signing transactions are created as follows:
- The user (or user's agent)
- generates the private account key (off-chain)
- prepares a Cadence script to create their own account
- Dapper Labs
- co-signs the account creation transaction (for authorization, and payment)
- submits the transaction to the network
Once the account creation transaction has been executed and the result sealed, the user can use their private key to authorize transactions through their account (generally this is done through a wallet provider).
The exact steps to complete this may vary by custody provider but they will require a thorough KYC process.
You are done this step when you receive your Flow Address.
It should look like something like:
For Flow addresses, a linear code [64, 45, 7] is used as an error-detection code. The address of the i-th account created on Flow is simply the codeword corresponding to the original value (i). This linear code allows generating 2^45 distinct addresses, each address is encoded over 64 bits. Two different addresses are guaranteed to have at least 7 different bits which reduces the risk of confusing two addresses.
Moreover, the linear code used is non-systematic, which means it's not possible to separate the extra bits from the original value bits in the codeword. This makes the generated addresses look like random numbers and two consecutive account addresses look very different. A quick off-chain test can tell if a 64 bits word could be a valid Flow address.
The generation of an account address is an on-chain mechanism that happens when a Flow network receives an account creation transaction. The network keeps track of the number of accounts already created and returns the newly created address.
Provide the Flow team your Flow Address and the tokens will be deposited into your account shortly.
You will be able to check your FLOW balance anytime on Flow Port
There are a number of programs available to earn FLOW tokens.
With FLOW, you can:
- Send and share
- Create, develop, and grow your dapp
All you need to spend Flow is an account and a tool for signing transactions (a wallet, custodian, or other signing service). The FCL (Flow Client Library) makes it super duper easy to go to any dapp, login with your account, have a great time, and then sign with the wallet of your choice only once you decide to make a purchase.
You can commit tokens to stake with the
These tokens are held in escrow in the
You can submit an official staking request by using the
transaction which registers the node operator in the Flow ID Table contract
and commits your tokens to be staked in the next epoch.
Alternatively, you may choose to submit an
which will remove the tokens from escrow and return them to your account,
if called prior to the beginning of the epoch.
create_staking_request.cdc transaction has been submitted,
you can do a few things:
- Add additional tokens via
- Remove your stake via
- Withdraw rewards/unstaked tokens via
withdraw_tokens.cdctransaction (if you've participated in an earlier epoch)
Rewards are deposited into your pool of unlocked tokens
which you can withdraw at anytime using the
Rewards are paid out at the end of each epoch,
at which point you will be able to submit this transaction.
You can opt to restake your rewards by submitting the
A node operator who wants to allow delegation to their node
will create a public capability for delegators using the
This capability will only be valid for nodes which have already submitted a staking request
and which fulfill the minimum staking requirements for that node type.
Token holders who wish to delegate to their node submit a
providing the account addresses of the node they want to delegate to.
This transaction creates a capability that the delegator stores in their account
which gives them access to:
- Staking additional tokens
- Withdrawing rewards
- Requesting to unstake
If a node operator has delegators, they cannot withdraw their own tokens such that their own staked tokens would fall below the minimum requirement for that node type. This is enforced at the protocol level.
- Collection Nodes: 250,000 FLOW
- Consensus Nodes: 500,000 FLOW
- Execution Nodes: 1,250,000 FLOW
- Verification Nodes: 135,000 FLOW
The delegation logic keeps track of the amount of tokens each delegator has delegated for the node operator. When rewards are paid out, the rewards are automatically divided based on the proportion held by that token holder wrt to the total tokens staked.
Validly staked accounts are provided a resource from the Staking Contract which allows them to withdraw rewards once they are available at the end of the epoch.
If you have already purchased FLOW and wish to hold it, you have a couple options:
For relatively small, short term holdings - most people use a wallet. Wallets are used to help you sign transactions (verify your actions) when using your FLOW tokens.
For larger, long term holdings - you may want to use a custody provider to keep your funds safe.
You can find wallets and custodians supporting Flow in the Flow port
Participating in the Flow community is more than just running a node or building a dapp. It's also about engaging in discussion, debate, and decision making about the protocol, the content on it, and the people impacted by it. You can use your Flow account to submit votes to community polls and other governance related activities.
If you just want to share the love and bring your friends to Flow - it's easier than an edible arrangement.
It is possible to use the Flow blockchain without holding any FLOW tokens yourself. Free to play games, trials, community polls, and other community activities can all take place with only an account (which may be created on a person's behalf) and a small fixed fee which may paid by a user agent.
The protocol requires some FLOW tokens to process these transactions, but (and this is the cool part!) a product can support users who do not themselves hold FLOW while still providing that user with all the underlying security guarantees the Flow protocol provides.
Transferring FLOW, creating accounts, and updating keys are all actions made easy on Flow Port
The Flow Faucet is a tool for Flow developers to make requests to create accounts and fund their accounts with FLOW tokens on the Flow Development Network.
Visit Flow Faucet to create an account and receive $FLOW for testing. You can request additional $FLOW for testing through the same page, and with the same account, at any time.
To deploy your contract on Mainnet, create your own Flow account by going to Flow Port and selecting "Create Account" on the login screen. You will only be able to use this option if you currently hold an account on the network with the ability to pay for the account creation fees.
Transactions are submitted using a Flow SDK via the Access API.
On Flow, a transaction is identified by its hash - the hash that exists as soon as that transaction is signed and submitted to an Access or Collection node. Results of transactions can be queried by transaction hash through the Access API. A user can check the status of a transaction at any time via the Flow Block Explorer.
To expose these results natively in your app, you can use a Flow SDK to fetch transaction results, for example using the Flow Go SDK.
Using a Flow SDK you can also fetch account state by address from a Flow Access API, for example using the Flow Go SDK.
Once the transaction is sealed, an event is emitted and you will be able to read transaction events and update the user.
The Flow SDKs also allow polling for events using the Flow Access API, for example using the Flow Go SDK.
There are 2 fees that you will see applied to your transactions
- Account Creation: 0.001 FLOW
- Transaction Fee: 0.00001 FLOW
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.
However, if a transaction fails for some other reason once it is being executed, you will still be charged the fixed fee. 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.
Account Creation fee is applied only when create account is called. This fee covers the cost of storing up to 1KB of data in perpetuity. This fee is applied only once and can be "topped up" to add additional storage to an account. Transactions are submitted using a Flow SDK via the Access API. Results can be queried by transaction hash through the Access API.
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
Information on Generating Accounts can be found here
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.
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.
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.
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.
We are supporting ECDSA with the curves
secp256k1. For these curves, the public key is encoded into 64 bytes as
|| is the concatenation operator.
Xis 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*256^31 + ... + x_i*256^i + ... + x_0.
Yis 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*256^31 + ... + y_i*256^i + ... + y_0
Visit Flow Port and sign-in to your Flow Account. Your wallet or custody provider will likely also display your FLOW balance to you.