DOCS / SNAPSHOT DAO VOTING
Snapshot DAO voting
Yeetful · Snapshot is a paid MCP service that puts DAO governance in the chat: browse live proposals, then cast a vote your own wallet signs. The vote is an off-chain EIP-712 message — Yeetful builds it, you sign it, because Snapshot voting power is bound to your address. Pay-per-call in USDC on Base, no API key.
Browse proposals
Add Yeetful · Snapshot to your active agents and ask in plain language — "what DAO proposals are live right now?" or "show active proposals in aave.eth." The chat calls the service's list_proposals tool and answers from the live Snapshot hub. You can drill into one with get_proposal, see who voted with list_votes, or look up a space with get_space.
Cast a vote
Say how you want to vote — "vote For on aave.eth", "cast my vote against proposal 0x…", or "vote option 2." The chat resolves the proposal, then calls prepare_vote to build the canonical Snapshot EIP-712 typed data. That comes back as a Sign & cast vote button under the message.
Click it and your connected wallet signs the message — the same one-tap signature you use anywhere else, no gas, no transaction. Yeetful relays the signed vote to Snapshot and shows you a receipt linking to the proposal. Connect the wallet that holds the voting power: the button refuses to sign if the connected address doesn't match the voter baked into the message.
The part that's easy to get wrong
A Snapshot vote's choice is encoded differently per proposal type — a single number for single-choice and basic proposals, a list for approval and ranked-choice, and a weight map for weighted and quadratic. The service reads the proposal's own type and choices and builds the right shape, so "For" / "yes" / "option 2" resolve to the correct 1-indexed value without you counting options.
Why you sign, not us
Snapshot tallies votes by the signer's on-chain voting power, so a vote is only meaningful when your wallet signs it. Yeetful never holds your key and never signs on your behalf — it only constructs the message and relays the result. Your signature is the authorization; the relay carries no extra trust. It's the same principle as the rest of the expense account: Yeetful is the control plane, not the custodian.
For agents: the MCP endpoint
The same capability is a plain x402-paid MCP service your own agents can call at https://snapshot.yeetful.com/mcp — no API key, pay-per-call in USDC on Base. Seven tools:
list_proposals,get_proposal,list_votes,get_space,list_spaces— read DAO governance data.prepare_vote— build the EIP-712 vote for the voter to sign.submit_vote— relay a signed vote to the Snapshot sequencer.
POST https://snapshot.yeetful.com/mcp // 402 → pay → 200
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "prepare_vote",
"arguments": {
"proposal": "0x…", // proposal id (from list_proposals)
"from": "0xYourVoterWallet", // the signer
"choiceText": "For" // or a number / "option 2" / "A, C"
}
}
}
// → { action: "sign_vote", typedData: { …EIP-712… }, summary, submit }
// Sign typedData with the voter's wallet, then call submit_vote.Browse the full tool surface and pricing on the service page, or give your agent a budget for it the same way you would any other connected app — see Agents & budgets.