The sequencer
Where signed messages go: votes, proposals, follows, settings.
Everything people sign on Raad goes to one service, the sequencer:
https://seq.raad.voteIt checks each message, then stores it for the hub, Raad's public data, to serve.
What it receives
| Message | Who signs it |
|---|---|
| Vote | A voter, while the proposal is open. |
| Proposal | An author the space's validation accepts. |
| Follow, unfollow | Anyone. |
| Space settings | The space's admins. |
| Cancel a proposal | Its author, an admin or a moderator. |
| Hide a proposal | An admin or a moderator. |
Each message is signed by the wallet in the standard format for structured data (EIP-712 typed data), and sent as JSON: the address, the signature and the signed data.
What it checks
- The signature matches the address.
- The space exists and the signer may act: a role, or a validation it passes.
- The timing: a vote inside its window, a proposal within the space's rules.
- The voting power, counted by Raad's score service.
A message that fails a check is refused with the reason, and nothing is stored.
Building a client
Clients that already sign governance messages in this format can send them to seq.raad.vote as they are. Raad's own app signs exactly what it shows in its review before your wallet asks.