module account
Some modules have their own module accounts. Think of it as a wallet that can only be controlled by this module. Below is a table of modules, their respective wallet addresses and permissions:
List of module accounts
Name | Address | Permissions |
---|---|---|
claims |
dst15cvq3ljql6utxseh0zau9m8ve2j8erz89m5wkz | none |
erc20 |
dst1glht96kr2rseywuvhhay894qw7ekuc4qg9z5nw | minter burner |
fee_collector |
dst17xpfvakm2amg962yls6f84z3kell8c5ljcjw34 | none |
incentives |
dst1krxwf5e308jmclyhfd9u92kp369l083wn67k4q | minter burner |
inflation |
dst1d4e35hk3gk4k6t5gh02dcm923z8ck86qygxf38 | minter |
transfer |
dst1yl6hdjhmkf37639730gffanpzndzdpmhv788dt | minter burner |
bonded_tokens_pool |
dst1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3h6cprl | burner staking |
not_bonded_tokens_pool |
dst1tygms3xhhs3yv487phx3dw4a95jn7t7lr6ys4t | burner staking |
gov |
dst10d07y265gmmuvt4z0w9aw880jnsr700jcrztvm | burner |
distribution |
dst1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8974jnh] | none |
evm |
dst1vqu8rska6swzdmnhf90zuv0xmelej4lq0n56wq | minter burner |
ibc |
dst1a53udazy8ayufvy0s434pfwjcedzqv345dnt3x | minter burner |
chat |
dst1x8sx7lvfl6ue5rnvptl7rxr53samt0h4zxqkwg | minter burner |
chat_burn |
dst1g7z9fjg8zyrj68a6rtqkfgldvjjjc3n7sucath | burner |
gateway |
dst1f6j7u6875p2cvyrgjr0d2uecyzah0kgexwhr3g | none |
pledge |
dst1nhta6gsf9x9l2pd2m5qg6lya0h3m0pjy4vtd35 | minter burner |
contract |
dst1ejpjr43ht3y56pplm5pxpusmcrk9rkkvevc88d | none |
stakeContractDeploy |
dst16vxjegtg3k5fvqcc55yd6cele9hx0nhv3lxzf0 | none |
tokenFactoryContractDeploy |
dst10dkh3rvhgcj2vj4h36msncnkr5ps668x9uuva0 | none |
Account Permissions
burner
authority means that the account has the authority to burn or burn tokens.- The
minter
permission indicates that this account has permission to mint or create new tokens. - The
staking
permission means that the account has the right to stake tokens on behalf of its owner.
IBC module account
Additionally, there are module accounts associated with IBC transfers.
For each IBC connection, there is an account of type ModuleAccount
, which is used to host the transferred coins when Daodst is the source chain.
Their address is derived using the first 20 bytes of the SHA256 checksum of the account name, following ADR 028:
// accountName is composed by the current version the IBC tranfer module supports (in this case, ics20-1), the portID (transfer) and the channelID
accountName := Version + "\0" + portID + "/" + channelID
addr := sha256.Sum256(accountName)[:20]
// example for channel-0
addr := sha256.Sum256("ics20-1\0transfer/channel-0")[:20]
This can be done using the GetEscrowAccount
function on IBC-go.
📣 Tip : These hosting accounts are not listed when executing the query:
stcd q auth module-accounts
This happens because the GetModuleAccount
function used in the query only Consider accounts on permAddrs
map of AccountKeeper
.
This address mapping is set at compile time and cannot be changed at runtime.