Token Race

Mirror supports creating token races, a spinoff of our very own $WRITE Race. Token Race is a simple duration-based governance tool that allows you to upload proposals and allow your community to vote on them based on their holdings of a specific ERC20 token at a point in time.

How token races work

Creating a token race

You can create a token race from your dashboard by going to /dashboard/token-race.


In order to create a token race, you need to specify some details around your token race such as name and description, the ERC20 token address you would like to use, a start date, and an end date, the number of winners to highlight in the UI.

You'll also need to upload the proposals that you want your community to vote on in a CSV format. The columns are (in order):

wallet address (required) | body (required) | twitter handle (optional)


To view an example of how to structure the CSV, check out the sample.

All token race data is accessible via IPFS and stored on the Filecoin Network via Estuary.

Once the token race is created, you can click on the token race in the dashboard to go to the token race page.

Token Snapshots

We take a snapshot of all balances of the ERC20 token in order to determine voting power. The voting power is a 1:1 with their balance of the ERC20 token, rounded to the nearest decimal specified by the contract.

In the case of a user with multiple multisig addresses that hold the token, the voting power is the combined value of all of those tokens.

Snapshots are always taken 3 hours prior to the start time of the Token Race.

The snapshot data is visible in the footer of the token race page (external link).


Deleting a token race

You can delete a token race before it goes live from the dashboard. You can only delete token races before they go live. You cannot delete token races that have ended. Deleting a token race removes it from the Mirror UI, but the data will continue to live on IPFS.


Getting the ERC20 address

You can get the ERC20 address from the Token Explorer section of Etherscan.

2021-09-24 11 15 30
2021-09-24 11 15 30

Linking twitter for proposers

After creating a token race, you can ask your proposers to go to the Mirror homepage to link their twitter account. Once they've linked their account their twitter details will show up along side their proposal on your Token Race page.

How voting works

Voters connect their wallet, which shows them their current voting power. The voting power is determined by the balance of the ERC20 token.

Voters can allocate their votes however they wish.

Multisig Voting

Token Race supports voting on behalf of a multisig account without requiring multisig holders to sign their vote using the multisig. In order to vote on behalf of a multisig, add your multisig address to the token race page. Once it's verified, you'll be able to vote on behalf of the multisig.

2021-09-24 11 11 23
2021-09-24 11 11 23

A user can vote on behalf of as many multisigs as they wish, given that they are listed as an owner of the multisig.

When the user votes, they'll see a dropdown option to vote on behalf of their multisig.

We can't wait to see the token races you create!

If there are any issues or feedback, reach out to us over on our discord!

Previous guide
Next guide