x/accounts
The x/accounts module provides module and facilities for writing smart cosmos-sdk accounts.
Genesis
Creating accounts on genesis
In order to create accounts at genesis, the x/accounts
module allows developers to provide
a list of genesis MsgInit
messages that will be executed in the x/accounts
genesis flow.
The init messages are generated offline. You can also use the following CLI command to generate the
json messages: simd accounts tx init [account type] [msg] --from me --genesis
. This will generate
a jsonified init message wrapped in an x/accounts MsgInit
.
This follows the same initialization flow and rules that would happen if the chain is running. The only concrete difference is that this is happening at the genesis block.
For example, given the following genesis.json
file:
{
"app_state": {
"accounts": {
"init_account_msgs": [
{
"sender": "account_creator_address",
"account_type": "lockup",
"message": {
"@type": "cosmos.accounts.defaults.lockup.MsgInitLockupAccount",
"owner": "some_owner",
"end_time": "..",
"start_time": ".."
},
"funds": [
{
"denom": "stake",
"amount": "1000"
}
]
}
]
}
}
}
The accounts module will run the lockup account initialization message.