Thousand Ether Homepage: Sortition Instructions
Welcome to the Age of the 👑Magistrate. Sortition is the electoral system that we use to select the Magistrate every 6 weeks. Any plot can be nominated, and the winner is chosen randomly weighted by the number of pixels that nominated them. More details here.
You can interact with the contracts via Etherscan.
- Mainnet (terms last 6 weeks): https://etherscan.io/address/0xa9a57f7d2A54C1E172a7dC546fEE6e03afdD28E2
- 🪦 Rinkeby Testnet (Rinkeby terms last one hour): https://rinkeby.etherscan.io/address/0xa194a30c201523631e29eff80718d72994efa1d6
Nominating your plots
In Sortition, you can choose to nominate either one or all of your plots for a chance to become the 👑 Magistrate. Plots are chosen randomly, with more pixels being more likely to win. You can also choose to nominate one or all of your plots on behalf of another token-holder. In that case if the plot wins, the other person becomes the 👑 Magistrate. You can change the nomination for your plots as many times as you’d like before each election.
Any plot being nominated must be wrapped as an NFT. Remember to wrap your plots before nominating!
There are three Nomination methods:
nominateSelf
— nominate all of your plots for yourself to become 👑 Magistrate.nominateAll
— nominate all your plots delegated to another token. You will need to provide the id of a token, and if any of your plots win then the owner of that token becomes the 👑 Magistrate.nominate
— nominate a single plot.
Getting a TokenID
If you’re nominating another person, you will need to know the tokenId of one of their plots. That’s the same tokenId that’s on OpenSea.
Calling the election
An election cal be called every 6 weeks. You can see the current term number at termNumber
and when the next election can be called at termExpires
(this is a UNIX timestamp).
The election is a two step process. This is because we need to get a secure source of randomness from Chainlink VRF. The first step is to call startElection
. This can only be called after termExpires
, and requires the contract to have a 2 LINK balance for the Chainlink call.
After startElection
, Chainlink will provide some entropy and then we can call completeElection
. Which will set the next magistrate.
NOTE: at the time of startElection
, there’s no way to know who the next 👑 Magistrate will be, but after the entropy has been provided, you can see the next 👑 Magistrate token via getNextMagistrateToken
.
Being the 👑 Magistrate
The 👑 Magistrate role is tied to a given plot for each term. The holder of that plot becomes the 👑 Magistrate. If you sell or transfer that plot during your term, the new holder would be the 👑 Magistrate.
Becoming the 👑 Magistrate unlocks two new methods:
withdraw
— This lets you transfer all the OpenSea royalties to an address of your choice.stepDown
— if you are the 👑 Magistrate, calling this will let you step down, and an election may be triggered in 72hours.