Module Authorizations

Pocket Network utilizes an onchain governance mechanism that enables the community to vote on proposals.

Once a proposal passes, or a decision by PNF is made on behalf of the DAO, the parameter updates are applied.

Access Control

MainNet Authorizations

The list of authorizations enabled on MainNet genesis can be found at https://github.com/pokt-network/pokt-network-genesis/tree/master/shannon/mainnet.

x/gov Module Account

The x/gov module account is deterministically tied to address pokt10d07y265gmmuvt4z0w9aw880jnsr700j8yv32t. This will be true for any "pocket" network; e.g., LocalNet, TestNet, MainNet, etc.

The x/gov module account is the default configured "authority" for all cosmos-sdk modules. Each module references its own configured "authority" when executing messages which require authorization (e.g. MsgUpdateParams messages).

No one has access to this address, but the grants it has provided to other accounts can be queried like so:

Query grants by granter
pocketd query authz grants-by-granter pokt10d07y265gmmuvt4z0w9aw880jnsr700j8yv32t --network=main

PNF Account Grantee

The authorizations which the x/gov module account has granted to the PNF account can be queried like so:

Query grants by grantee
pocketd query authz grants-by-grantee pokt1hv3xrylxvwd7hfv03j50ql0ttp3s5hqqelegmv --network=main

Examples

Example: Adding a new Authorization

In this PR: https://github.com/pokt-network/poktroll/pull/1173/files, the following was added to localnet_genesis_authorizations.json:

Genesis authorization JSON snippet
{
  "granter": "pokt10d07y265gmmuvt4z0w9aw880jnsr700j8yv32t",
  "grantee": "pokt1eeeksh2tvkh7wzmfrljnhw4wrhs55lcuvmekkw",
  "authorization": {
    "@type": "cosmos.authz.v1beta1.GenericAuthorization",
    "msg": "pocket.migration.MsgUpdateParams"
  },
  "expiration": "2500-01-01T00:00:00Z"
}

To enable it on an already deployed network, submit the following transaction:

Grant authorization transaction
pocketd tx authz grant \
  pokt1eeeksh2tvkh7wzmfrljnhw4wrhs55lcuvmekkw \
  "pocket.migration.MsgUpdateParams" \
  --from pnf \
  --expiration 16725225600 \
  --network=main \
  --gas auto

Was this helpful?