Snapshot

On Snapshot, a proposal is a signed message using EIP-712 format. To publish a new proposal the users need to send that message signed to a Snapshot hub, the hub will then verify the signature and format to valid and publish the proposal.
 
Proposal: [
  { name: 'from', type: 'address' },
  { name: 'space', type: 'string' },
  { name: 'timestamp', type: 'uint64' },
  { name: 'type', type: 'string' },
  { name: 'title', type: 'string' },
  { name: 'body', type: 'string' },
  { name: 'choices', type: 'string[]' },
  { name: 'start', type: 'uint64' },
  { name: 'end', type: 'uint64' },
  { name: 'snapshot', type: 'uint64' },
  { name: 'network', type: 'string' },
  { name: 'strategies', type: 'string' },
  { name: 'plugins', type: 'string' },
  { name: 'metadata', type: 'string' }
]
 
from: Address of the author of the proposal e.g. 0xeF8305E140ac520225DAf050e2f71d5fBcC543e7
space: ENS name of a DAO
e.g. yam.eth
timestamp: The UNIX time when the proposal was published
e.g. 1638975533
type: Type of the proposal, this refer to the way voting works on that proposal, it can use approval voting, quadratic voting, ranked choice voting, by default its single choice voting where any voter can select only 1 choice when voting.
e.g. single-choice
title: Title of the proposal
e.g. YIP-85 - New Human Resources Group
body: Content of the proposal, this assume markdown support
e.g. # Abstract This is a proposal to create an new internal group...
choices: This is an array of string to define the possible choice to vote on a proposal
e.g. Approve, Reject, Abstain
start & end: Unix timestamp for the start and end of the proposal voting period
e.g. 1638960000 and 1638980000
snapshot: Block number where voting power should be counted at
e.g. 13765410
network: Chain ID in string
e.g. 1 for Ethereum mainnet
strategies: Voting strategies in a JSON stringified format
plugins & metadata: Optional JSON stringified object to define plugins configuration and custom metadata
 
 
 

Snapshot

On Snapshot, a proposal is a signed message using EIP-712 format. To publish a new proposal the users need to send that message signed to a Snapshot hub, the hub will then verify the signature and format to valid and publish the proposal.
 
Proposal: [
  { name: 'from', type: 'address' },
  { name: 'space', type: 'string' },
  { name: 'timestamp', type: 'uint64' },
  { name: 'type', type: 'string' },
  { name: 'title', type: 'string' },
  { name: 'body', type: 'string' },
  { name: 'choices', type: 'string[]' },
  { name: 'start', type: 'uint64' },
  { name: 'end', type: 'uint64' },
  { name: 'snapshot', type: 'uint64' },
  { name: 'network', type: 'string' },
  { name: 'strategies', type: 'string' },
  { name: 'plugins', type: 'string' },
  { name: 'metadata', type: 'string' }
]
 
from: Address of the author of the proposal e.g. 0xeF8305E140ac520225DAf050e2f71d5fBcC543e7
space: ENS name of a DAO
e.g. yam.eth
timestamp: The UNIX time when the proposal was published
e.g. 1638975533
type: Type of the proposal, this refer to the way voting works on that proposal, it can use approval voting, quadratic voting, ranked choice voting, by default its single choice voting where any voter can select only 1 choice when voting.
e.g. single-choice
title: Title of the proposal
e.g. YIP-85 - New Human Resources Group
body: Content of the proposal, this assume markdown support
e.g. # Abstract This is a proposal to create an new internal group...
choices: This is an array of string to define the possible choice to vote on a proposal
e.g. Approve, Reject, Abstain
start & end: Unix timestamp for the start and end of the proposal voting period
e.g. 1638960000 and 1638980000
snapshot: Block number where voting power should be counted at
e.g. 13765410
network: Chain ID in string
e.g. 1 for Ethereum mainnet
strategies: Voting strategies in a JSON stringified format
plugins & metadata: Optional JSON stringified object to define plugins configuration and custom metadata