$FILOBuy on Pons

$FILO & governance

Vote

Record a wallet-signed vote.

POST/v1/proposals/:id/votes

Build the vote message with your proposal id, choice, the proposal's snapshot_block, your lowercase address and issued, sign it with the signed-in wallet (personal_sign), and send the choice, the same issued and the signature. Returns the proposal with your vote.

Weight is read once, the first time the wallet votes, as its $FILO balance at snapshot_block. Voting again with a later issued changes the choice and keeps the weight.

Headers

Authorizationstringrequired

Bearer fb_live_…. An API key created in the app. A browser session cookie also works. See Authentication.

Body

choicestringrequired

for · against · abstain

issuedISO 8601required

The time written in the message. Must be within 10 minutes of the server's time.

signaturehexrequired

Signature over the exact message. Smart wallets (ERC-1271 / ERC-6492) work and are checked on-chain.

Errors

400invalid_choice · invalid_request · expired

Bad choice, missing fields, or issued too far from now.

401bad_signature

The signature does not match this wallet and vote.

403no_weight

The wallet held no $FILO at the snapshot block.

404not_found

No proposal with that id.

409voting_closed

The proposal ended or was cancelled.

409stale_vote

A vote with a later issued is already recorded.

429rate_limited

More than 20 votes in 10 minutes.

503chain_unavailable

The snapshot balance could not be read. Retry in a minute.

Request
curl -X POST https://dapp.filobook.run/v1/proposals/prop_4e1a9c07b3d2/votes \
  -H "Authorization: Bearer $FILOBOOK_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "choice": "for",
    "issued": "2026-11-14T10:15:00.000Z",
    "signature": "0x9b1f…1c"
  }'
Response · 200
{
  "id": "prop_4e1a9c07b3d2",
  "author": "0x7fcfe1806936b8fe3a04f6d9c0dffb0d455bb514",
  "title": "Shorten the minimum quote window to 5 seconds",
  "body": "Market data orders go stale fast. Proposal: allow quote_window_s from 5 instead of 10.",
  "snapshot_block": 2180442,
  "status": "active",
  "created_at": "2026-11-14T09:00:00.000Z",
  "ends_at": "2026-11-21T09:00:00.000Z",
  "tally": {
    "for": { "weight": "1250000000000000000000000", "display": "1,250,000.00", "voters": 1 },
    "against": { "weight": "0", "display": "0.00", "voters": 0 },
    "abstain": { "weight": "0", "display": "0.00", "voters": 0 }
  },
  "voters": 1,
  "votes": [
    {
      "voter": "0xf03bd21fc26cc0def8ce780d74fef2a1880525f5",
      "choice": "for",
      "weight": "1250000000000000000000000",
      "weight_display": "1,250,000.00",
      "message": "FiloBook governance vote\n\nProposal: prop_4e1a9c07b3d2\nChoice: for\nSnapshot block: 2180442\nVoter: 0xf03bd21fc26cc0def8ce780d74fef2a1880525f5\nIssued: 2026-11-14T10:15:00.000Z\n\nWeight is your $FILO balance at the snapshot block. Signing costs nothing and moves no funds.",
      "signature": "0x9b1f…1c",
      "created_at": "2026-11-14T10:15:00.000Z"
    }
  ],
  "my_vote": null
}
Was this page helpful?