Older notes from Lucidchart, incl. ER diagram

 
See https://lucid.app/lucidchart/28e9f773-18b2-4e99-8e4c-dcb5ad3f1544/edit for updated image.
See https://lucid.app/lucidchart/28e9f773-18b2-4e99-8e4c-dcb5ad3f1544/edit for updated image.
Proposals
  • uuid: a universal unique ID for across proposals across all DAOs (across all chains?) seems do-able on Ethereum basis; generate an id based on the time and the DAO address
    • justification: uuid would support... easier scraping + analysis, more transparency, easier conditional logic on proposals. [Not necessary?]
  • create_proposal: ________
  • get_proposals: instead of a foreign key, EITHER an off-chain method that returns a list of proposal uuids OR an off-chain method that returns a list of proposal uuids
    • alternative names: proposals, get_issues, issues, get_actions, actions
  • executor: can be empty (for non-binding proposals), OR a contract address, OR an ENS address
    • the contract address may be a wallet or an executable smart contract
    • justification: intended to support DAO2DAO calls
    • alternative names: execution, mechanism
  • content: instead of a text field or a structured object, a URI link to a URL link or flatfile
    • Includes all "content" of the proposal, including title, description, options, etc. Feel like this field can be refined.
    • alternative names: details, body
  • status: a text field
    • justification: make the proposal management less annoying, make it easier to allow proposals to get aggregated into a governance interface
Membership
  • members: instead of a foreign key, EITHER an off-chain method that returns a list of addresses OR a list of addresses
    • alternative names: get_members, membership, get_membership
  • constitution: instead of a text field, a URI link to flatfile (normatively a .md file for easy parsing, but can be any text source, e.g. a Google Doc, a hackmd address)
    • alternative names: governance, details, description, readme, rights, affordances

Older notes from Lucidchart, incl. ER diagram

 
See https://lucid.app/lucidchart/28e9f773-18b2-4e99-8e4c-dcb5ad3f1544/edit for updated image.
See https://lucid.app/lucidchart/28e9f773-18b2-4e99-8e4c-dcb5ad3f1544/edit for updated image.
Proposals
  • uuid: a universal unique ID for across proposals across all DAOs (across all chains?) seems do-able on Ethereum basis; generate an id based on the time and the DAO address
    • justification: uuid would support... easier scraping + analysis, more transparency, easier conditional logic on proposals. [Not necessary?]
  • create_proposal: ________
  • get_proposals: instead of a foreign key, EITHER an off-chain method that returns a list of proposal uuids OR an off-chain method that returns a list of proposal uuids
    • alternative names: proposals, get_issues, issues, get_actions, actions
  • executor: can be empty (for non-binding proposals), OR a contract address, OR an ENS address
    • the contract address may be a wallet or an executable smart contract
    • justification: intended to support DAO2DAO calls
    • alternative names: execution, mechanism
  • content: instead of a text field or a structured object, a URI link to a URL link or flatfile
    • Includes all "content" of the proposal, including title, description, options, etc. Feel like this field can be refined.
    • alternative names: details, body
  • status: a text field
    • justification: make the proposal management less annoying, make it easier to allow proposals to get aggregated into a governance interface
Membership
  • members: instead of a foreign key, EITHER an off-chain method that returns a list of addresses OR a list of addresses
    • alternative names: get_members, membership, get_membership
  • constitution: instead of a text field, a URI link to flatfile (normatively a .md file for easy parsing, but can be any text source, e.g. a Google Doc, a hackmd address)
    • alternative names: governance, details, description, readme, rights, affordances