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.