DocsThe data protocol

proposals/v2

packages/core/schema/proposals-v2.schema.json
On this page

proposals/v2 (11 Nov; the L2 mapping wave and LOOK) is proposals/v1 with: an outcome 'closed' for a proposal whose voting closed and whose result its source doesn't state (Snapshot), never a guess; each proposal's recipient, where it pays or names one; its options' labels where a ballot chooses among them; and each ballot's choices and weights as said, with its for, against or abstain left null when that doesn't apply (weighted, quadratic, ranked choice). Weights are decimal text, since they can exceed exact JSON numbers. A DAO's proposals and how each account voted on each (board #93; Elco, 11 Nov: 'when a proposal is hovered little dots show up on the inside showing yes and no votes, absent votes show nothing'). One per map, named by the map's address, read from the DAO's own chain and read again to refresh. An account that didn't vote on a proposal isn't in its votes: absent, never a guess. Each vote keeps the DAO's own word for it.

Fields

Field Type or allowed values Presence in its parent Description
petal "proposals/v2" Required
about string Required the map, by its address (its card's id)
source object Required where they were read: the DAO's kind, its contract, the calls, and when
source.kind string Required the DAO's kind, in a word: sputnik, baal
source.contract string Required the DAO's contract: near:mainnet:<account>, eip155:<chain>:<address>
source.ref string Required the calls or events they were read from
source.at string Required
proposals array Required
proposals[] object Required
proposals[].id string Required
proposals[].title string Required its title, from its own text: a Title line, or its first words
proposals[].kind string / null Required what it does, in the DAO's own word (Transfer, ChangePolicy, …), or null
proposals[].proposer string / null Required
proposals[].at string Required when it was submitted
proposals[].closes_at choice Required when its voting closes: by the DAO's policy (Sputnik's proposal period from submission), or as the DAO set it (Baal's vote end); null when unknown
proposals[].closes_at (variant 1) string Required
proposals[].closes_at (variant 2) null Required
proposals[].decided_at choice Required when it was decided, where the DAO records it (Baal's processing); null where it doesn't (Sputnik)
proposals[].decided_at (variant 1) string Required
proposals[].decided_at (variant 2) null Required
proposals[].outcome "passed" / "rejected" / "removed" / "expired" / "in progress" / "failed" / "moved" / "cancelled" / "closed" Required
proposals[].as_said string Required the DAO's own word for its status
proposals[].ref string Required the proposal: proposal:<caip2>:<dao>:<id>
proposals[].votes array Required each account that voted, once; an account that didn't is absent
proposals[].votes[] object Required
proposals[].votes[].account string Required
proposals[].votes[].vote choice Required for, against or abstain; null when the ballot's choices don't fit those (weighted, quadratic, ranked choice): then choices says what it chose
proposals[].votes[].vote (variant 1) "for" / "against" / "abstain" Required
proposals[].votes[].vote (variant 2) null Required
proposals[].votes[].as_said string Required the DAO's own word for the vote: Approve, Reject, Remove, true, false
proposals[].votes[].at choice Required when it was cast, where the DAO records it (Baal's event), or null (Sputnik)
proposals[].votes[].at (variant 1) string Required
proposals[].votes[].at (variant 2) null Required
proposals[].votes[].choices array Optional what the ballot chose, as said: each option (its label, or its number as the source gives it) and the weight given it, in decimal text, or null
proposals[].votes[].choices[] object Required
proposals[].votes[].choices[].choice string Required
proposals[].votes[].choices[].weight choice Required
proposals[].votes[].choices[].weight (variant 1) string Required
proposals[].votes[].choices[].weight (variant 2) null Required
proposals[].votes[].power string Optional the ballot's voting power as its source says it, in decimal text
proposals[].recipient string / null Required who it pays or names: Sputnik's Transfer receiver_id, a payout's to; null when it names none or the reader can't tell
proposals[].options array Optional its options' labels, in order, where a ballot chooses among them (Snapshot); absent for yes or no
proposals[].options[] string Required
read_at string Required

Examples

proposals.v2.json

Fixture source

{
  "petal": "proposals/v2",
  "about": "near:mainnet:houseofstake-ops.sputnik-dao.near",
  "source": {
    "kind": "sputnik",
    "contract": "near:mainnet:houseofstake-ops.sputnik-dao.near",
    "ref": "get_policy, get_last_proposal_id and get_proposals {from_index, limit: 100} on houseofstake-ops.sputnik-dao.near at block 224106202 (final), via https://near.drpc.org",
    "at": "2026-11-11T19:10:47Z"
  },
  "proposals": [
    {
      "id": "0",
      "title": "Update Policy - Add New Members",
      "kind": "ChangePolicy",
      "proposer": "alshik.near",
      "at": "2026-07-14T12:10:17.133Z",
      "closes_at": "2026-07-16T12:10:17.133Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:0",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "1",
      "title": "Update Policy - Edit Member Permissions",
      "kind": "ChangePolicy",
      "proposer": "alshik.near",
      "at": "2026-07-14T12:13:14.376Z",
      "closes_at": "2026-07-16T12:13:14.376Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:1",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "2",
      "title": "Update Policy - Add New Members",
      "kind": "ChangePolicy",
      "proposer": "alshik.near",
      "at": "2026-07-14T12:15:27.507Z",
      "closes_at": "2026-07-16T12:15:27.507Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:2",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "3",
      "title": "Update policy - Voting Thresholds",
      "kind": "ChangePolicy",
      "proposer": "alshik.near",
      "at": "2026-07-14T12:16:54.128Z",
      "closes_at": "2026-07-16T12:16:54.128Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:3",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "4",
      "title": "Update policy - Voting Duration",
      "kind": "ChangePolicyUpdateParameters",
      "proposer": "alshik.near",
      "at": "2026-07-14T12:18:15.213Z",
      "closes_at": "2026-07-16T12:18:15.213Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:4",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "5",
      "title": "Update policy - Voting Thresholds",
      "kind": "ChangePolicy",
      "proposer": "alshik.near",
      "at": "2026-07-14T12:19:47.607Z",
      "closes_at": "2026-07-16T12:19:47.607Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:5",
      "recipient": null,
      "votes": [
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "6",
      "title": "Proposal Action: asset-exchange",
      "kind": "FunctionCall",
      "proposer": "ak-hog-hos.near",
      "at": "2026-07-16T12:42:39.743Z",
      "closes_at": "2026-07-18T12:42:39.743Z",
      "decided_at": null,
      "outcome": "failed",
      "as_said": "Failed",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:6",
      "recipient": null,
      "votes": [
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "7",
      "title": "Notes: Test transaction, Cavenwell onboarding",
      "kind": "Transfer",
      "proposer": "ak-hog-hos.near",
      "at": "2026-07-16T12:50:02.142Z",
      "closes_at": "2026-07-18T12:50:02.142Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:7",
      "recipient": "1988029414d6b7c680a071e7ace1f40145d12318be567122c9c535caf399d36b",
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "8",
      "title": "Proposal Action: asset-exchange",
      "kind": "FunctionCall",
      "proposer": "ak-hog-hos.near",
      "at": "2026-07-17T13:27:01.414Z",
      "closes_at": "2026-07-19T13:27:01.414Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:8",
      "recipient": null,
      "votes": [
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "9",
      "title": "Update Policy - Edit Member Permissions",
      "kind": "ChangePolicy",
      "proposer": "ak-hog-hos.near",
      "at": "2026-07-20T16:05:17.778Z",
      "closes_at": "2026-07-22T16:05:17.778Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:9",
      "recipient": null,
      "votes": [
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "3006939ff4e72cde91cf29f769f5633fba6750344eeebb9e4687dce12650226e",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "10",
      "title": "Update Policy - Edit Member Permissions",
      "kind": "ChangePolicy",
      "proposer": "ak-hog-hos.near",
      "at": "2026-07-21T15:16:23.990Z",
      "closes_at": "2026-07-23T15:16:23.990Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:10",
      "recipient": null,
      "votes": [
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hosops.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "3006939ff4e72cde91cf29f769f5633fba6750344eeebb9e4687dce12650226e",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "11",
      "title": "Update Policy - Edit Member Permissions",
      "kind": "ChangePolicy",
      "proposer": "ak-hog-hos.near",
      "at": "2026-07-21T18:48:23.108Z",
      "closes_at": "2026-07-23T18:48:23.108Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:11",
      "recipient": null,
      "votes": [
        {
          "account": "3006939ff4e72cde91cf29f769f5633fba6750344eeebb9e4687dce12650226e",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "ak-hog-hos.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hosops.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "12",
      "title": "Notes: Harris and Trotter test tx",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-03T02:46:39.975Z",
      "closes_at": "2026-08-05T02:46:39.975Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:12",
      "recipient": "52f1b346c85c99b2377cbf445eab8412775241d240c37262b2f567109770260a",
      "votes": [
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "13",
      "title": "Notes: Test tx for Bianca Momand (HOS ops)",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-03T02:49:47.184Z",
      "closes_at": "2026-08-05T02:49:47.184Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:13",
      "recipient": "1400772e4193e774b7b65b6630a96c16584c2527b50f55e0ac7da1ab7b758390",
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "14",
      "title": "Notes: Test tx for Oleksii P (HOS security)",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-03T02:51:06.638Z",
      "closes_at": "2026-08-05T02:51:06.638Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:14",
      "recipient": "vastkale359.near",
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "15",
      "title": "Proposal Action: asset-exchange",
      "kind": "FunctionCall",
      "proposer": "hosops.near",
      "at": "2026-08-05T00:45:29.308Z",
      "closes_at": "2026-08-07T00:45:29.308Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:15",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "16",
      "title": "Notes: Security contractor July services payment",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-05T00:55:44.664Z",
      "closes_at": "2026-08-07T00:55:44.664Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:16",
      "recipient": "vastkale359.near",
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "17",
      "title": "Notes: July ops services payment",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-05T00:59:58.991Z",
      "closes_at": "2026-08-07T00:59:58.991Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:17",
      "recipient": "1400772e4193e774b7b65b6630a96c16584c2527b50f55e0ac7da1ab7b758390",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "18",
      "title": "Proposal Action: asset-exchange",
      "kind": "FunctionCall",
      "proposer": "hosops.near",
      "at": "2026-08-05T14:52:31.504Z",
      "closes_at": "2026-08-07T14:52:31.504Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:18",
      "recipient": null,
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "19",
      "title": "Notes: Q3 payment to Cavenwell",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-05T23:36:12.209Z",
      "closes_at": "2026-08-07T23:36:12.209Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:19",
      "recipient": "1988029414d6b7c680a071e7ace1f40145d12318be567122c9c535caf399d36b",
      "votes": [
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "20",
      "title": "Notes: Cavenwell test transaction return",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-08-05T23:38:48.693Z",
      "closes_at": "2026-08-07T23:38:48.693Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:20",
      "recipient": "1988029414d6b7c680a071e7ace1f40145d12318be567122c9c535caf399d36b",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "21",
      "title": "Notes: August 1-31 ops",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-09-02T12:14:54.768Z",
      "closes_at": "2026-09-04T12:14:54.768Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:21",
      "recipient": "1400772e4193e774b7b65b6630a96c16584c2527b50f55e0ac7da1ab7b758390",
      "votes": [
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "22",
      "title": "Notes: August 1-31  Security support",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-09-02T12:20:17.924Z",
      "closes_at": "2026-09-04T12:20:17.924Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:22",
      "recipient": "vastkale359.near",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "24",
      "title": "Notes: HTDS-TCW-0323 (Sept services)",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-09-14T12:07:12.673Z",
      "closes_at": "2026-09-16T12:07:12.673Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:24",
      "recipient": "52f1b346c85c99b2377cbf445eab8412775241d240c37262b2f567109770260a",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "25",
      "title": "",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-09-29T12:13:57.173Z",
      "closes_at": "2026-10-01T12:13:57.173Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:25",
      "recipient": "52f1b346c85c99b2377cbf445eab8412775241d240c37262b2f567109770260a",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "26",
      "title": "Notes: September Operations",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-10-01T12:16:52.373Z",
      "closes_at": "2026-10-03T12:16:52.373Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:26",
      "recipient": "1400772e4193e774b7b65b6630a96c16584c2527b50f55e0ac7da1ab7b758390",
      "votes": [
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "27",
      "title": "Notes: IT and Security Sept",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-10-01T12:19:00.980Z",
      "closes_at": "2026-10-03T12:19:00.980Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:27",
      "recipient": "vastkale359.near",
      "votes": [
        {
          "account": "trezufn.norfolks.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "28",
      "title": "Update Policy - Add New Members",
      "kind": "ChangePolicy",
      "proposer": "ak-hog-hos.near",
      "at": "2026-10-12T16:38:03.806Z",
      "closes_at": "2026-10-14T16:38:03.806Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:28",
      "recipient": null,
      "votes": [
        {
          "account": "hosops.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "3006939ff4e72cde91cf29f769f5633fba6750344eeebb9e4687dce12650226e",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "29",
      "title": "Update Policy - Remove Member",
      "kind": "ChangePolicy",
      "proposer": "ak-hog-hos.near",
      "at": "2026-10-13T14:21:10.986Z",
      "closes_at": "2026-10-15T14:21:10.986Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:29",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "3006939ff4e72cde91cf29f769f5633fba6750344eeebb9e4687dce12650226e",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hosops.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "30",
      "title": "Proposal Action: asset-exchange",
      "kind": "FunctionCall",
      "proposer": "hosops.near",
      "at": "2026-10-27T11:54:22.818Z",
      "closes_at": "2026-10-29T11:54:22.818Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:30",
      "recipient": null,
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "31",
      "title": "Notes: INV-2573",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-10-28T13:44:54.486Z",
      "closes_at": "2026-10-30T13:44:54.486Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:31",
      "recipient": "1988029414d6b7c680a071e7ace1f40145d12318be567122c9c535caf399d36b",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "32",
      "title": "Notes: HT/HOS Sept invoice 0365",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-10-28T13:50:31.797Z",
      "closes_at": "2026-10-30T13:50:31.797Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:32",
      "recipient": "52f1b346c85c99b2377cbf445eab8412775241d240c37262b2f567109770260a",
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "33",
      "title": "Notes: October ops support",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-11-03T11:34:44.532Z",
      "closes_at": "2026-11-05T11:34:44.532Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:33",
      "recipient": "1400772e4193e774b7b65b6630a96c16584c2527b50f55e0ac7da1ab7b758390",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "34",
      "title": "Notes: October security services",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-11-03T11:37:58.068Z",
      "closes_at": "2026-11-05T11:37:58.068Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:34",
      "recipient": "vastkale359.near",
      "votes": [
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "35",
      "title": "Notes: October services Invoice 0415",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-11-03T11:40:22.601Z",
      "closes_at": "2026-11-05T11:40:22.601Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:35",
      "recipient": "52f1b346c85c99b2377cbf445eab8412775241d240c37262b2f567109770260a",
      "votes": [
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    },
    {
      "id": "36",
      "title": "Notes: Balance of payment for September services Inv: 0365",
      "kind": "Transfer",
      "proposer": "hosops.near",
      "at": "2026-11-03T11:47:07.800Z",
      "closes_at": "2026-11-05T11:47:07.800Z",
      "decided_at": null,
      "outcome": "passed",
      "as_said": "Approved",
      "ref": "proposal:near:mainnet:houseofstake-ops.sputnik-dao.near:36",
      "recipient": "52f1b346c85c99b2377cbf445eab8412775241d240c37262b2f567109770260a",
      "votes": [
        {
          "account": "alshik.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "hofront.near",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        },
        {
          "account": "28c4bb0d700e1db4dd2293c1f7a12b2ad147f0e0bb37e4960e98657f043d3cc5",
          "vote": "for",
          "as_said": "Approve",
          "at": null
        }
      ]
    }
  ],
  "read_at": "2026-11-11T19:10:50.783Z"
}

Full schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:petal:schema:proposals:v2",
  "title": "Petal proposals v2",
  "description": "proposals/v2 (11 Nov; the L2 mapping wave and LOOK) is proposals/v1 with: an outcome 'closed' for a proposal whose voting closed and whose result its source doesn't state (Snapshot), never a guess; each proposal's recipient, where it pays or names one; its options' labels where a ballot chooses among them; and each ballot's choices and weights as said, with its for, against or abstain left null when that doesn't apply (weighted, quadratic, ranked choice). Weights are decimal text, since they can exceed exact JSON numbers. A DAO's proposals and how each account voted on each (board #93; Elco, 11 Nov: 'when a proposal is hovered little dots show up on the inside showing yes and no votes, absent votes show nothing'). One per map, named by the map's address, read from the DAO's own chain and read again to refresh. An account that didn't vote on a proposal isn't in its votes: absent, never a guess. Each vote keeps the DAO's own word for it.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "petal",
    "about",
    "source",
    "proposals",
    "read_at"
  ],
  "properties": {
    "petal": {
      "const": "proposals/v2"
    },
    "about": {
      "description": "the map, by its address (its card's id)",
      "type": "string",
      "minLength": 3
    },
    "source": {
      "description": "where they were read: the DAO's kind, its contract, the calls, and when",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "contract",
        "ref",
        "at"
      ],
      "properties": {
        "kind": {
          "description": "the DAO's kind, in a word: sputnik, baal",
          "type": "string",
          "pattern": "^[a-z0-9_-]+$"
        },
        "contract": {
          "description": "the DAO's contract: near:mainnet:<account>, eip155:<chain>:<address>",
          "type": "string",
          "minLength": 3
        },
        "ref": {
          "description": "the calls or events they were read from",
          "type": "string",
          "minLength": 1
        },
        "at": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "proposals": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "title",
          "kind",
          "proposer",
          "at",
          "closes_at",
          "decided_at",
          "outcome",
          "as_said",
          "ref",
          "recipient",
          "votes"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "title": {
            "description": "its title, from its own text: a Title line, or its first words",
            "type": "string"
          },
          "kind": {
            "description": "what it does, in the DAO's own word (Transfer, ChangePolicy, …), or null",
            "type": [
              "string",
              "null"
            ]
          },
          "proposer": {
            "type": [
              "string",
              "null"
            ]
          },
          "at": {
            "description": "when it was submitted",
            "type": "string",
            "format": "date-time"
          },
          "closes_at": {
            "description": "when its voting closes: by the DAO's policy (Sputnik's proposal period from submission), or as the DAO set it (Baal's vote end); null when unknown",
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "decided_at": {
            "description": "when it was decided, where the DAO records it (Baal's processing); null where it doesn't (Sputnik)",
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "outcome": {
            "enum": [
              "passed",
              "rejected",
              "removed",
              "expired",
              "in progress",
              "failed",
              "moved",
              "cancelled",
              "closed"
            ]
          },
          "as_said": {
            "description": "the DAO's own word for its status",
            "type": "string"
          },
          "ref": {
            "description": "the proposal: proposal:<caip2>:<dao>:<id>",
            "type": "string",
            "minLength": 1
          },
          "votes": {
            "description": "each account that voted, once; an account that didn't is absent",
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "account",
                "vote",
                "as_said",
                "at"
              ],
              "properties": {
                "account": {
                  "type": "string",
                  "minLength": 1
                },
                "vote": {
                  "description": "for, against or abstain; null when the ballot's choices don't fit those (weighted, quadratic, ranked choice): then choices says what it chose",
                  "oneOf": [
                    {
                      "enum": [
                        "for",
                        "against",
                        "abstain"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "as_said": {
                  "description": "the DAO's own word for the vote: Approve, Reject, Remove, true, false",
                  "type": "string"
                },
                "at": {
                  "description": "when it was cast, where the DAO records it (Baal's event), or null (Sputnik)",
                  "oneOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "choices": {
                  "description": "what the ballot chose, as said: each option (its label, or its number as the source gives it) and the weight given it, in decimal text, or null",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "choice",
                      "weight"
                    ],
                    "properties": {
                      "choice": {
                        "type": "string",
                        "minLength": 1
                      },
                      "weight": {
                        "oneOf": [
                          {
                            "$ref": "#/$defs/decimal"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    }
                  }
                },
                "power": {
                  "description": "the ballot's voting power as its source says it, in decimal text",
                  "$ref": "#/$defs/decimal"
                }
              },
              "if": {
                "properties": {
                  "vote": {
                    "type": "null"
                  }
                },
                "required": [
                  "vote"
                ]
              },
              "then": {
                "properties": {
                  "choices": {
                    "type": "array"
                  }
                },
                "required": [
                  "choices"
                ]
              }
            }
          },
          "recipient": {
            "description": "who it pays or names: Sputnik's Transfer receiver_id, a payout's to; null when it names none or the reader can't tell",
            "type": [
              "string",
              "null"
            ]
          },
          "options": {
            "description": "its options' labels, in order, where a ballot chooses among them (Snapshot); absent for yes or no",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "read_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "$defs": {
    "decimal": {
      "type": "string",
      "pattern": "^-?[0-9]+(\\.[0-9]+)?(e[-+]?[0-9]+)?$"
    }
  }
}