Proposal

Proposals represent a formal request submitted by a PWR token holder to initiate changes within:

  • Mother DAO: Overall governance rules, treasury allocations, or strategic direction of the protocol.

  • Or Child DAO: Specific project goals, resource distribution, or operational decisions.

Each proposal:

  • Is subject to voting to confirm alignment with the community's consensus before implementation.

  • Has a set of Properties.


Properties

The proposal properties:

  • Title.

  • Status.

  • Proposal Details:

    • Proposal ID.

    • Proposal Sender.

    • Proposed By.

    • Tx Timestamp.

    • Proposal Height.

    • Current Height.

  • Voting Information:

    • Voting Start.

    • Voting End.

    • Voting Metrics.

  • Description.

  • Payload.

Title

The title of a proposal.

Status

The current state of a proposal:

  • discussion: First hour after proposal creation, open for discussion.

  • voting: Voting is in progress from the start until the end of the voting period.

  • noQuorum: Proposal fails due to insufficient votes.

  • votingFailed: Proposal rejected due to the majority voting No.

  • waitingForTx: Proposal approved by majority voting Yes, awaiting execution.

  • inBlockchain: Proposal successfully implemented on the blockchain.

Proposal ID

The unique identifier of a proposal.

Proposal Sender

The wallet address associated with the PWRDAO.

Proposed By

The proposal creator's wallet address.

Tx Timestamp

The date and time a proposal was submitted in the DD/MM/YYYY, HH:MM format.

Proposal Height

The blockchain height when a proposal was created.

Current Height

The current height of the blockchain.

Voting Start

The time voting begins in the DD/MM/YYYY, HH:MM format.

NOTE

Voting begins one hour after a proposal is created.

Voting End

The time voting ends in the DD/MM/YYYY, HH:MM format.

NOTE

Voting:

  • Lasts for a minimum of five days from the start.

  • Can extend up to a duration defined by the user who created the proposal.

Voting Metrics

The voting metrics include the parameters:

  • Activity for quorum: vPWR token amount needed to approve the proposal by voting in favor.

  • Activity: Total amount of PWR tokens staked for the proposal.

  • Yes: Total vPWR tokens voting in favor.

  • No: Total vPWR tokens voting against.

Description

The proposal description.

NOTE

The proposal description must include:

  • Project Overview: Concise description of the project, mission, and challenges it addresses.

  • Value Proposition: Overview of the project's contribution.

  • Roadmap: Clear timeline for project milestones.

  • Milestones: Actionable steps with grants linked to the milestone completion.

  • Social Media Links: Links to the contributor's official accounts for transparency.

  • Discussion Platform: Link to a group or a forum for proposal discussion.

Payload

The set of properties that represent a transaction to broadcast if the proposal receives sufficient votes.

NOTE

The DAO-supported transaction types:

The supported payload properties:

Property
Transaction Type
Description

type

All

Supported transaction type: - Transfer: 4. - Data: 12. - Set Script: 13. - Invoke Script: 16.

timestamp

All

Transaction timestamp per the Unix time in milliseconds.

senderPublicKey

All

Public key of the transaction sender in the base58-encoded byte array format.

fee

All

Transaction fee in the smallest unit. Example: A 0.001 WAVES fee is shown as 100000, since 1 WAVES = 10^8 WAVELET

feeAssetId

All

Base58-encoded token ID or null for WAVES.

version

All

Transaction version in the binary format.

recipient

Base58-encoded recipient address or recipient alias in the alias:<CHAIN_ID>: prefix format. Example: alias:T:merry

amount

Transaction token amount.

assetId

Base58-encoded token ID or null for WAVES.

attachment

Arbitrary binary data. Typically, a base58-encoded comment of up to 140 bytes.

data

Data property including key-value pairs: - key: String entry key. Up to 400 bytes for version 2 or up to 100 characters for version 1. - type: Entry type: binary, boolean, integer, string, or null to delete entry . - value: Base-64 encoded entry value of up to 32,767 bytes or null to delete the entry. Example:

{
  "data": [
    {
      "key": "EXAMPLE",
      "type": "string",
      "value": "EXAMPLE"
    }
  ]
}

script

Base64-encoded compiled script: - Account script: Up to 8192 bytes. - dApp: Up to 163,840 bytes. - null: Delete script.

dApp

Base58-encoded dApp address or dApp alias in the alias:<CHAIN_ID>: prefix format. Example alias:T:merry.

call

Call property including key-value pairs: - function: Callable function name. Up to 255 bytes, where 1 character can take up to 4 bytes. - args.type: Argument type: binary,boolean,integer,string, and list. - args.value: Base-64 encoded argument value. Example:

{
  "call": {
    "function": "hello",
    "args": [
      {
        "type": "string",
        "value": "example" 
      }
    ]
  }
}

payment

Payment property including key-value pairs: - amount: Integer payment amount in atomic units. - assetId: Base58-encoded payment token ID or null for payments in WAVES. Example:

{
  "payment": [
    "amount": 10000000,
    "assetId": null    
  ]
}

chainId

Waves blockchain network ID: - Mainnet: W or 87. - Testnet: T or 84. - Stagenet: S or 83.

Operations

The supported operations with proposals:

  • Add: Add a proposal.

  • Edit: Edit the proposal's title and description.

  • Retract: Retract the proposal.

  • Vote: Vote on the proposal.

Last updated