I like your idea. Thanks for explaining the use case. I’m wondering if an approach like the following would meet most of your requirements, given the present situation where the network doesn’t support identity or smart contracts:
- Send the proportional number of voting tokens to the wallet address associated with the stake key’s delegation transaction. It would be accompanied by the min-ada value (~ 1.5 ADA) plus maybe the transaction fee (~ 0.17 ADA) needed to vote and maybe a bonus to encourage them to vote. Include a link to the voting instructions (or the briefly stated voting instructions) in the transaction metadata. (To save transaction fees, it would be best to bundle the sending of tokens in as few transactions as possible: about 400 outputs can fit in a single transaction, and still leave room for metadata.)
- When the voter receives the tokens, they can read or visit the voting instructions if they aren’t already aware of the voting system.
- The voter sends the tokens to the voting address(es), as you’ve described. (They will be returning the ~ 1.5 ADA and paying the transaction fee, but they can keep the bonus. Your net cost would be the transaction fees and the bonus.)
- The voter won’t receive any more tokens for future rounds of voting until they have voted with the ones they were already given. They’d get to keep the tokens, the min-ada, and the bonus, but they wouldn’t get the future bonuses.
An alternative to step 1 would be to use a registration system like pooltool.io, so that each delegator would have to opt into the voting system.
A scheme like the above provides a mild incentive to vote. The downsides are:
- Non-voters would keep the min-ADA and bonus.
- Delegators could trade or sell their votes for others to cast.
- Voters could skips rounds of voting and use their tokens to vote in a later round.
There are probably other ways to do this, and I’m not sure whether the downsides outweigh the benefits.