Governance Proposal Types
A list of the types of governance proposal allowed by Provenance Blockchain

Gov

Text Proposal

  • cosmos.gov.v1beta1.TextProposal
message TextProposal {
option (cosmos_proto.implements_interface) = "Content";
option (gogoproto.equal) = true;
string title = 1;
string description = 2;
}

Params

Parameter Change Proposal

  • cosmos.params.v1beta1.ParameterChangeProposal
message ParameterChangeProposal {
option (gogoproto.goproto_getters) = false;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
repeated ParamChange changes = 3 [(gogoproto.nullable) = false];
}
// ParamChange defines an individual parameter change, for use in
// ParameterChangeProposal.
message ParamChange {
option (gogoproto.goproto_stringer) = false;
string subspace = 1;
string key = 2;
string value = 3;
}

Upgrade

// Plan specifies information about a planned upgrade and when it should occur.
message Plan {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
// Sets the name for the upgrade. This name will be used by the upgraded
// version of the software to apply any special "on-upgrade" commands during
// the first BeginBlock method after the upgrade is applied. It is also used
// to detect whether a software version can handle a given upgrade. If no
// upgrade handler with this name has been set in the software, it will be
// assumed that the software is out-of-date when the upgrade Time or Height is
// reached and the software will exit.
string name = 1;
// Deprecated: Time based upgrades have been deprecated. Time based upgrade logic
// has been removed from the SDK.
// If this field is not empty, an error will be thrown.
google.protobuf.Timestamp time = 2 [deprecated = true, (gogoproto.stdtime) = true, (gogoproto.nullable) = false];
// The height at which the upgrade must be performed.
// Only used if Time is not set.
int64 height = 3;
// Any application specific upgrade info to be included on-chain
// such as a git commit that validators could automatically upgrade to
string info = 4;
// Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been
// moved to the IBC module in the sub module 02-client.
// If this field is not empty, an error will be thrown.
google.protobuf.Any upgraded_client_state = 5
[deprecated = true, (gogoproto.moretags) = "yaml:\"upgraded_client_state\""];
}

Software Upgrade Proposal

  • cosmos.upgrade.v1beta1.SoftwareUpgradeProposal
message SoftwareUpgradeProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
Plan plan = 3 [(gogoproto.nullable) = false];
}

Cancel Software Upgrade Proposal

  • cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal
message CancelSoftwareUpgradeProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
}

Distribution

Community Pool Spend Proposal

  • cosmos.distribution.v1beta1.CommunityPoolSpendProposal
message CommunityPoolSpendProposal {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string recipient = 3;
repeated cosmos.base.v1beta1.Coin amount = 4
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}

Community Pool Spend With Deposit Proposal

  • cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit
message CommunityPoolSpendProposalWithDeposit {
option (gogoproto.goproto_getters) = false;
option (gogoproto.goproto_stringer) = true;
string title = 1 [(gogoproto.moretags) = "yaml:\"title\""];
string description = 2 [(gogoproto.moretags) = "yaml:\"description\""];
string recipient = 3 [(gogoproto.moretags) = "yaml:\"recipient\""];
string amount = 4 [(gogoproto.moretags) = "yaml:\"amount\""];
string deposit = 5 [(gogoproto.moretags) = "yaml:\"deposit\""];
}

Marker

// MarkerType defines the types of marker
enum MarkerType {
// MARKER_TYPE_UNSPECIFIED is an invalid/unknown marker type.
MARKER_TYPE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "Unknown"];
// MARKER_TYPE_COIN is a marker that represents a standard fungible coin (default).
MARKER_TYPE_COIN = 1 [(gogoproto.enumvalue_customname) = "Coin"];
// MARKER_TYPE_RESTRICTED is a marker that represents a denom with send_enabled = false.
MARKER_TYPE_RESTRICTED = 2 [(gogoproto.enumvalue_customname) = "RestrictedCoin"];
}
// MarkerStatus defines the various states a marker account can be in.
enum MarkerStatus {
option (gogoproto.goproto_enum_prefix) = false;
option (gogoproto.goproto_enum_stringer) = false;
// MARKER_STATUS_UNSPECIFIED - Unknown/Invalid Marker Status
MARKER_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "StatusUndefined"];
// MARKER_STATUS_PROPOSED - Initial configuration period, updates allowed, token supply not created.
MARKER_STATUS_PROPOSED = 1 [(gogoproto.enumvalue_customname) = "StatusProposed"];
// MARKER_STATUS_FINALIZED - Configuration finalized, ready for supply creation
MARKER_STATUS_FINALIZED = 2 [(gogoproto.enumvalue_customname) = "StatusFinalized"];
// MARKER_STATUS_ACTIVE - Supply is created, rules are in force.
MARKER_STATUS_ACTIVE = 3 [(gogoproto.enumvalue_customname) = "StatusActive"];
// MARKER_STATUS_CANCELLED - Marker has been cancelled, pending destroy
MARKER_STATUS_CANCELLED = 4 [(gogoproto.enumvalue_customname) = "StatusCancelled"];
// MARKER_STATUS_DESTROYED - Marker supply has all been recalled, marker is considered destroyed and no further
// actions allowed.
MARKER_STATUS_DESTROYED = 5 [(gogoproto.enumvalue_customname) = "StatusDestroyed"];
}

Add Marker Proposal

  • provenance.marker.v1.AddMarkerProposal
message AddMarkerProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
cosmos.base.v1beta1.Coin amount = 3
[(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin"];
string manager = 4;
MarkerStatus status = 5;
MarkerType marker_type = 6;
repeated AccessGrant access_list = 7 [(gogoproto.nullable) = false];
bool supply_fixed = 8;
bool allow_governance_control = 9;
}

Supply Increase Proposal

  • provenance.marker.v1.SupplyIncreaseProposal
message SupplyIncreaseProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
cosmos.base.v1beta1.Coin amount = 3
[(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin"];
string target_address = 4; // an optional target address for the minted coin from this request
}

Supply Decrease Proposal

  • provenance.marker.v1.SupplyDecreaseProposal
message SupplyDecreaseProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
cosmos.base.v1beta1.Coin amount = 3
[(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin"];
}

Set Administrator Proposal

  • provenance.marker.v1.SetAdministratorProposal
message SetAdministratorProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string denom = 3;
repeated AccessGrant access = 4 [(gogoproto.nullable) = false];
}

Remove Administrator Proposal

  • provenance.marker.v1.RemoveAdministratorProposal
message RemoveAdministratorProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string denom = 3;
repeated string removed_address = 4;
}

Change Status Proposal

  • provenance.marker.v1.ChangeStatusProposal
message ChangeStatusProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string denom = 3;
MarkerStatus new_status = 4;
}

Withdraw Escrow Proposal

  • provenance.marker.v1.WithdrawEscrowProposal
message WithdrawEscrowProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string denom = 3;
repeated cosmos.base.v1beta1.Coin amount = 4
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
string target_address = 5;
}

Set Denom Metadata Proposal

  • provenance.marker.v1.SetDenomMetadataProposal
message SetDenomMetadataProposal {
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
cosmos.bank.v1beta1.Metadata metadata = 3
[(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/x/bank/types.Metadata"];
}

Name

Create Root Name Proposal

  • provenance.name.v1.CreateRootNameProposal
message CreateRootNameProposal {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string name = 3;
string owner = 4;
bool restricted = 5;
}

WASM

// AccessType permission types
enum AccessType {
option (gogoproto.goproto_enum_prefix) = false;
option (gogoproto.goproto_enum_stringer) = false;
// AccessTypeUnspecified placeholder for empty value
ACCESS_TYPE_UNSPECIFIED = 0
[ (gogoproto.enumvalue_customname) = "AccessTypeUnspecified" ];
// AccessTypeNobody forbidden
ACCESS_TYPE_NOBODY = 1
[ (gogoproto.enumvalue_customname) = "AccessTypeNobody" ];
// AccessTypeOnlyAddress restricted to an address
ACCESS_TYPE_ONLY_ADDRESS = 2
[ (gogoproto.enumvalue_customname) = "AccessTypeOnlyAddress" ];
// AccessTypeEverybody unrestricted
ACCESS_TYPE_EVERYBODY = 3
[ (gogoproto.enumvalue_customname) = "AccessTypeEverybody" ];
}
// AccessConfig access control type.
message AccessConfig {
option (gogoproto.goproto_stringer) = true;
AccessType permission = 1 [ (gogoproto.moretags) = "yaml:\"permission\"" ];
string address = 2 [ (gogoproto.moretags) = "yaml:\"address\"" ];
}

Store Code Proposal

  • cosmwasm.wasm.v1.StoreCodeProposal
message StoreCodeProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// RunAs is the address that is passed to the contract's environment as sender
string run_as = 3;
// WASMByteCode can be raw or gzip compressed
bytes wasm_byte_code = 4 [ (gogoproto.customname) = "WASMByteCode" ];
// Used in v1beta1
reserved 5, 6;
// InstantiatePermission to apply on contract creation, optional
AccessConfig instantiate_permission = 7;
}

Instantiate Contract Proposal

  • cosmwasm.wasm.v1.InstantiateContractProposal
message InstantiateContractProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// RunAs is the address that is passed to the contract's environment as sender
string run_as = 3;
// Admin is an optional address that can execute migrations
string admin = 4;
// CodeID is the reference to the stored WASM code
uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ];
// Label is optional metadata to be stored with a constract instance.
string label = 6;
// Msg json encoded message to be passed to the contract on instantiation
bytes msg = 7 [ (gogoproto.casttype) = "RawContractMessage" ];
// Funds coins that are transferred to the contract on instantiation
repeated cosmos.base.v1beta1.Coin funds = 8 [
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
];
}

Migrate Contract Proposal

  • cosmwasm.wasm.v1.MigrateContractProposal
message MigrateContractProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// Note: skipping 3 as this was previously used for unneeded run_as
// Contract is the address of the smart contract
string contract = 4;
// CodeID references the new WASM codesudo
uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ];
// Msg json encoded message to be passed to the contract on migration
bytes msg = 6 [ (gogoproto.casttype) = "RawContractMessage" ];
}

Sudo Contract Proposal

  • cosmwasm.wasm.v1.SudoContractProposal
message SudoContractProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// Contract is the address of the smart contract
string contract = 3;
// Msg json encoded message to be passed to the contract as sudo
bytes msg = 4 [ (gogoproto.casttype) = "RawContractMessage" ];
}

Execute Contract Proposal

  • cosmwasm.wasm.v1.ExecuteContractProposal
message ExecuteContractProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// RunAs is the address that is passed to the contract's environment as sender
string run_as = 3;
// Contract is the address of the smart contract
string contract = 4;
// Msg json encoded message to be passed to the contract as execute
bytes msg = 5 [ (gogoproto.casttype) = "RawContractMessage" ];
// Funds coins that are transferred to the contract on instantiation
repeated cosmos.base.v1beta1.Coin funds = 6 [
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
];
}

Update Admin Proposal

  • cosmwasm.wasm.v1.UpdateAdminProposal
message UpdateAdminProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// NewAdmin address to be set
string new_admin = 3 [ (gogoproto.moretags) = "yaml:\"new_admin\"" ];
// Contract is the address of the smart contract
string contract = 4;
}

Clear Admin Proposal

  • cosmwasm.wasm.v1.ClearAdminProposal
message ClearAdminProposal {
// Title is a short summary
string title = 1;
// Description is a human readable text
string description = 2;
// Contract is the address of the smart contract
string contract = 3;
}

Pin Codes Proposal

  • cosmwasm.wasm.v1.PinCodesProposal
message PinCodesProposal {
// Title is a short summary
string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ];
// Description is a human readable text
string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ];
// CodeIDs references the new WASM codes
repeated uint64 code_ids = 3 [
(gogoproto.customname) = "CodeIDs",
(gogoproto.moretags) = "yaml:\"code_ids\""
];
}

Unpin Codes Proposal

  • cosmwasm.wasm.v1.UnpinCodesProposal
message UnpinCodesProposal {
// Title is a short summary
string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ];
// Description is a human readable text
string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ];
// CodeIDs references the WASM codes
repeated uint64 code_ids = 3 [
(gogoproto.customname) = "CodeIDs",
(gogoproto.moretags) = "yaml:\"code_ids\""
];
}

IBC

Client Update Proposal

  • ibc.core.client.v1.ClientUpdateProposal
message ClientUpdateProposal {
option (gogoproto.goproto_getters) = false;
// the title of the update proposal
string title = 1;
// the description of the proposal
string description = 2;
// the client identifier for the client to be updated if the proposal passes
string subject_client_id = 3 [(gogoproto.moretags) = "yaml:\"subject_client_id\""];
// the substitute client identifier for the client standing in for the subject
// client
string substitute_client_id = 4 [(gogoproto.moretags) = "yaml:\"substitute_client_id\""];
}

Upgrade Proposal

  • ibc.core.client.v1.UpgradeProposal
message UpgradeProposal {
option (gogoproto.goproto_getters) = false;
option (gogoproto.goproto_stringer) = false;
option (gogoproto.equal) = true;
string title = 1;
string description = 2;
cosmos.upgrade.v1beta1.Plan plan = 3 [(gogoproto.nullable) = false];
// An UpgradedClientState must be provided to perform an IBC breaking upgrade.
// This will make the chain commit to the correct upgraded (self) client state
// before the upgrade occurs, so that connecting chains can verify that the
// new upgraded client is valid by verifying a proof on the previous version
// of the chain. This will allow IBC connections to persist smoothly across
// planned chain upgrades
google.protobuf.Any upgraded_client_state = 4 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""];
}

Msg Fees

Add Msg Fee Proposal

  • provenance.msgfees.v1.AddMsgFeeProposal
message AddMsgFeeProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string msg_type_url = 3;
cosmos.base.v1beta1.Coin additional_fee = 4 [
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(gogoproto.moretags) = "yaml:\"additional_fee\""
];
}

Update Msg Fee Proposal

  • provenance.msgfees.v1.UpdateMsgFeeProposal
message UpdateMsgFeeProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string msg_type_url = 3;
cosmos.base.v1beta1.Coin additional_fee = 4 [
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(gogoproto.moretags) = "yaml:\"additional_fee\""
];
}

Remove Msg Fee Proposal

  • provenance.msgfees.v1.RemoveMsgFeeProposal
message RemoveMsgFeeProposal {
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
string title = 1;
string description = 2;
string msg_type_url = 3;
}
Copy link
On this page
Gov
Params
Upgrade
Distribution
Marker
Name
WASM
IBC
Msg Fees