Math Crypto
GitHub Back to homepage

Batch delegation

It is expected that OpenGov (formerly known as Gov2.0) will lead to much more referenda than before. Delegation of your votes to an account whose voting behavior you trust is therefore a good option.

Unfortunately, the user experience of delegating your votes is currently not very smooth. You can in principle issue an extrinsic on Polkadot.js or you could delegate on SubSquare or on Polkassembly. However, both interfaces require you to perform the action for each referendum track individually. Since there are 15 tracks, it would be better to issue one batch call.

Math Crypto has made an encoder for exactly such a batch call.

In you want to delegate from a Ledger account (the sending account in step 4 below), you first need to have a Governance or Any proxy for it. Read this support article by the W3F on how to create and remove a proxy.
You can also check out this short explanation on YouTube by Leemo.
If you have voted or delegated already on OpenGov with the sending account (in step 4 below), you need to send two extrinsics: one for removing the existing votes/delegations and one for setting up the new delegations. If unsure, do both extrinsics.

Instructions on how to send the delegate extrinsic (the remove extrinsic is very similar):

  1. Go to our Delegation Encoder page to generate your hash.

  2. In another browser tab/window, go to Polkadot.JSDeveloperExtrinsicDecode (or use the direct link). Copy the hash from the Delegation Encoder page (use the copy button!) and paste it in the hex-encoded call field.

Submit hex-encoded call

  1. You now see the content of the extrinsic. Check it for the account, balance, and conviction. If all correct, choose the Submission tab.
The balance is in Planck units: the normal KSM amount times 1e12 (100…000 with 12 zeros). The example below corresponds to 0.7 KSM.

Submitted hex-encoded call

  1. Choose the account that you want to delegate from (your own account) in the using the selected account. This can be a Ledger account as long as you have a Governance or Any proxy for it.

Choose sender account

  1. Now scroll to the bottom and choose Submit Transaction. It will ask for your password of the selected account.

Sign the message

  1. Submit password, choose Sign and submit. If you have a proxy for the account, you can choose it here. Remember to only use Governance or Any proxies.

  2. If you get a green icon in the top-right corner, the extrinsic was successful. Your account is now delegating its votes for all referenda! A yellow icon might indicate errors or warnings. Please check your delegation.