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.
/api/public/hooks/tally-pollsTally 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
/api/public/hooks/process-distributionProcess 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.