API

Ballot exposes a small set of public endpoints used by cron schedulers and external integrators. The underlying data (votes, balances, tallies) is on chain — these endpoints just orchestrate the off-chain bookkeeping.

POST/api/public/hooks/tally-polls

Tally open polls

Walks every poll past its closes_at, snapshots the on-chain Omni token balances of each option address, writes the result row, and marks the poll as tallied. Safe to call as often as you like — already-tallied polls are skipped.

curl -X POST https://vote-txc.lovable.app/api/public/hooks/tally-polls
POST/api/public/hooks/process-distribution

Process pending distribution jobs

Runs queued distribute vote tokens jobs: pulls the next pending batch, sends Omni tokens from the poll's escrow wallet to each authorised voter address, and records the txids.

curl -X POST https://vote-txc.lovable.app/api/public/hooks/process-distribution

Signing primitives

Ballot's wallet sign-in is verified by streamtxc.com/api. If you need to verify TXC-signed messages in your own integration, use the public /api/public/txc-verify-message endpoint documented there.