Off-chain proposals

If for any reason issuing an on-chain proposal is not adequate to your needs, you still have the option to create an off-chain proposal. An off-chain proposal is intended for proposals that do not require any on-chain code execution. The proposal would be distributed on some third-party channel (e.g., a forum) and the voting would be done off-chain. The result of the voting would be computed off-chain and then submitted to the ledger.

Create proposal

The proposal file

For offline proposals, the structure of the proposal.json file is as follows:

"content": {
                "title": "<Title>",
                "authors": "<email>",
                "discussions-to": "<forum-link>",
                "created": "<Timestamp in format YYYY-MM-DDTHH:MM:SSZ>",
                "license": "<Licences>",
                "abstract": "<Abstract>",
                "motivation": "<Motivation>",
                "details": "<Details>",
                "requires": "<preceding-proposal-id-that-must-pass>",
            },
"author": "<author-address>",
"tally_epoch": 1337,

The tally_epoch is the block height at which the tally was computed. This is any integer before the current epoch. Since the tallying should occur before it is submitted.

namada client init-proposal \
    --data-path proposal.json \
    --signing-keys your-signing-keys-for-author \
    --offline

This command will create a proposal file same directory where the command was launched.

If you would like the proposal to be created in a different directory, you can use the --output-folder-path flag to specify the directory. The directory must already exist, however. It is also essential that you provide the --signing-keys argument to sign the proposal. As of v0.31.2, the --signing-keys is optional but it is not possible to sign the proposal after it has been created.

Vote on proposal

To vote on an offline proposal use the following command:

namada client vote-proposal --data-path proposal \
    --vote yay \
    --signing-keys your-signing-keys-for-voter \
    --address your-established-account \
    --offline

Tally off-chain proposal

To compute the tally for an offline proposal we need to collect

  • proposal file (must have this name)
  • all the proposal-vote-${address} files

All those files will have to be in a folder (lets call it offline-proposal).

Now you can use the following command:

namada client query-proposal-result \
    --offline \
    --data-path `offline-proposal`

which will tell you the proposal result.

Submit off-chain proposal

The community may decide to post data of their off-chain voting to another censorship resistant blockchain to preserve the decision reached by social consensus.