HOW-TO: Create and Submit a Governance Proposal on Gonka #1116
paranjko
started this conversation in
Show and Tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Over the past few weeks, I’ve spent quite a bit of time helping people with governance proposals, so I put together a guide that may be useful if you’re preparing one yourself.
It has already been used for several successful proposals, so the process is tested in practice.
Note: this guide covers the technical part of creating and submitting a proposal. For a proposal to pass, you also need to communicate it clearly and build support around it.
Consider publishing the full proposal description on GitHub, sharing it with the community, and discussing it with participants on Discord and other relevant channels before and during the voting period.
How to Create and Submit a Governance Proposal on Gonka
Step-by-step for submitting and voting with
inferenced. Aligned with Gonka — Transactions & Governance. Replace every placeholder with your own values before running commands.1. Placeholders and shell exports
<KEY_NAME>gonka1…address)<PATH_TO_PROPOSAL_JSON>./proposal.json<PUBLIC_RPC>/chain-rpc/, e.g.http://node1.gonka.ai:8000/chain-rpc/<PUBLIC_HTTP_API>/chain-rpc/, e.g.http://node1.gonka.ai:8000<CHAIN_ID>gonka-mainnetfor mainnetRun once per terminal session (edit the right-hand sides):
All later commands assume these variables are set. If a command fails with “connection” or “parse”, check that
GONKA_RPCends with exactly one/chain-rpc/.2. Two URLs (do not mix them)
inferenced query/tx$GONKA_RPC(must include/chain-rpc/)create-client(HTTP…/v1/participantson the seed)$GONKA_API(no/chain-rpc/)Using
$GONKA_RPCfor--node-addressincreate-clientis incorrect and will fail or hit the wrong service.3. Prerequisites
3.1 Install CLI
Download a build for your OS from Gonka releases, unpack, then:
On macOS, if Gatekeeper blocks the binary: System Settings → Privacy & Security → Open Anyway.
3.2 Read
min_depositandvoting_periodfrom the chainDo not rely on a fixed ngonka amount from old docs—query the live values:
Your proposal JSON’s
depositmust satisfymin_deposit(same denom, amount ≥ minimum).3.3 Proposal JSON
Prepare a gov v1 JSON (
messages,metadata,deposit,title,summary).There are two main parts to prepare:
Proposal description fields
Keep the on-chain text short and clear.
Make sure the proposal includes:
Proposal JSON structure
For the JSON structure, the best approach is to look at previous proposals and use them as references.
You can inspect previous proposal JSONs here to see how different proposal types are structured.
In many cases, it is easier to start from a similar previous proposal and adapt it to your own proposal.
For messages such as
MsgUpdateParams, the chain expects the full params object and correctauthority(gov module address). Fetch the gov module address:Use that address as
authoritywhere the message type requires it.If the
jqline prints nothing, run the samequerywithoutjqonce and locate thegovmodule entry manually. The output shape can differ slightly by SDK version.3.4 Optional: new key + register participant (
create-client)This creates a key and calls the seed HTTP API (participant registration). Use
$GONKA_APIonly:Store the mnemonic safely. If you already have a funded key for governance, skip this and avoid double registration.
Use the same
--keyring-backendeverywhere (e.g.file) forkeys show,tx gov submit-proposal, andtx gov vote.4. Publish the proposal on-chain
4.1 Check balance
Ensure you have enough
ngonka(or the fee denom your node expects) formin_depositand fees.4.2 Submit
Recommended pattern from the official Gonka doc:
After submission, note the proposal number from the output or find it here.
Share the proposal number so the community announcement can go out.
5. Vote (after voting has started)
5.1 Read the proposal on-chain
Confirm
status,title,summary,messages, and voting times before voting.5.2 Optional: tally so far
Use
$GONKA_RPCas-is—do not append/chain-rpc/again.5.3 Cast a vote
Replace
yeswithno,abstain, orno_with_vetoif you intend to vote that way:You may change your vote by sending another
votebefore the voting period ends.That’s it! Good luck with your proposal!
If you have comments, suggestions, or anything to add from your own experience, feel free to share them. We can keep improving the guide together. And if any part feels unclear, let me know as well.
Beta Was this translation helpful? Give feedback.
All reactions