Users that have locked their TOKE will be eligible to vote. Votes are tracked and tallied in a contract on Polygon (these addresses will be added to Smart Contracts when deployed, as they'll differ from the C.o.R.E. voting contracts). Users have two ways to submit votes:
Via the gasless API
Submitting to the OnChainVoteL1 contract
Voting power is determined by a users balance of assets deposited/staked on L1. When a user makes a deposit or withdraw, their resulting balance is packaged into an on-chain "event" (different from your typical eth_log events), and sent to our contracts on Polygon via the Polygon State Sync Service.
Gasless voting is enabled by having the user sign a payload indicating how they want their vote allocated. That payload is submitted to our API and relayed to our contract Polygon. When possible an EIP712 typed signture is used, with eth_sign used as a backup.
Users must stake their TOKE in order to vote. See more in the TOKE Voting section.