Leased FLOW Account Setup
This guide is for custodians and wallet providers who wish to create user accounts that can hold locked FLOW tokens from the Flow token sale.
If you already have an account and wish to stake tokens, please see our guides on staking here.
Introduction
This guide covers the technical integration required for custodians to create accounts that store locked FLOW tokens for users.
Before discussing the account creation process, some terminology needs to be defined:
-
Flow Token Admin - The user who controls the locked and vesting tokens from the Flow Token sale. This user maintains a record of users, their account addresses, and how many Flow tokens they will receive according to their vesting schedule. This user also is required to co-sign any transactions that transfer locked tokens before they have been unlocked via the vesting schedule.
-
User - A user who has bought Flow tokens in the Flow token sale or auction.
-
Custody/Wallet Provider - A service that is managing accounts on behalf of users.
Every user who holds locked FLOW tokens gets two accounts.
-
Account 1 - User Account: This is the user's normal Flow account. This account is completely controlled by the user. It can have already been created by the custody provider or can be created along with the user's second account.
-
Account 2 - Lease Admin Account: This account holds leased tokens used to stake your node. The key for this account belongs to the lease provider (1000 weight). Any transactions that directly access this account need to be signed by this key.
The User Account will include an object that manages access to the staking functionality contained in the lease admin account.
Setup
Configure a Creator Account
As the custodian, you must configure a Flow account that you will use to create user accounts. This is called your creator account.
You can convert an existing account into a creator account by running the Set Up Creator Account (C.01) transaction.
This transaction creates an AccountCreator
object and stores it in the custodian's account.
It also publishes a capability that allows the token admin to grant the custodian
the authority to register locked token accounts.
Receive Account Creator Capability
Note: Once you reach this step, please contact the token admin.
After you have set up your creator account, the token admin needs to submit one more transaction to enable your account to register new user accounts to receive locked tokens.
The Deposit Account Creator (TA.06) transaction must be signed and authorized by the token admin account. It requires the following arguments:
Argument | Type | Description |
---|---|---|
custodyProviderAddress | Address | The address of the custodian's account. |
This transaction gives the account registration capability to the custodian's creator account that was configured in the previous transaction.
Account Creation
When a custodian uses these transactions, they must also ensure that the token admin knows which account addresses map to which users. This is so the token admin knows which accounts correspond to which lease recipient.
1. Create Both Accounts for the User
If your user does not have a regular account created for them yet, you must create both accounts using the Create Shared Lease Accounts (C.02) transaction with the following arguments:
2. Create the Shared Account for an Existing User Account
If your user already has a personal account allocated to them, you can run a transaction that creates the shared account.
This transaction MUST also be signed and authorized by the existing user account. It needs this because it needs to have access to the user's private storage and Authorized access.
To attach a shared account to an existing user account, run the Create Only Shared Account (C.03) transaction with the following arguments:
TODO: Key setup for leased token account
Summary
TODO: Summary