An NFT Launch Experiment Using $WRITE Race Oracle

The $WRITE Race Oracle is a contract that enables creators to make Sybil-resistant, fair-launch NFTs. Imagine if Loot, for example, could only have been minted once per person.

The oracle we deployed is an attempt to explore models with fair distribution, to build games that everyone can play - where a single address cannot mint a large percentage of the NFTs that drop.

It accomplishes Sybil resistance by validating that an account has participated in the $WRITE race, which requires Twitter authentication. The list of participants is ordered by the number of votes they have received by the Mirror community; the higher they are on this list, the less likely they are to be a Sybil attack. Developers can use an account's place in the list (their index) to prevent Sybil attacks by limiting minting if the index is too low.

Introducing Heroes

We made the first example of using this method, creating a metaverse identity generator that we call Heroes. It allows anyone who participated in the $WRITE Race to mint an identity, which they can use as a pen-name or character identity.

Like Loot, these can have prefixes like "Captain" and suffixes like "the Brilliant" - but we used name generation instead of adventurer gear.

There is exactly one NFT available per account that registered; it is free to mint and can be traded afterward to allow people to get the names they think suit them the best and provide a market for the interesting ones that look rare.

How to Claim a Hero

  • Get proof that you entered the $WRITE race. You can find this in the data we published here. Copy your address, index, and proof.
  • Head over to the Etherscan page to mint your NFT.
  • Open up the claim method, and paste in the data that you just copied. Submit the transaction, and you will receive a randomly generated name.
  • We hope you get something rare!

You can find the collection on OpenSea.

Oracle Details

To generate the $WRITE Race Oracle, we took a snapshot of all accounts participating in the $WRITE race and created a Merkle Tree with their address and current spot. We then deployed a contract that holds the Merkle Root and exposes a function that, given a Merkle Proof, verifies if a particular account has participated in the race.

We have used Merkle Trees before for our splits implementation; if you want a more in-depth look into it works, see our previous Engineering Splits post.

The proof data has been uploaded here for anyone to use. On there, you will find the three inputs necessary to verify that you have entered the $WRITE race: account, index, and proofs. You can try it out on Etherscan, copy and paste the arguments:

Check that your identity is verified
Check that your identity is verified

The contracts and scripts we used to generate the proofs have been published on the Mirror Github; see this repository.

Disclaimer

The oracle is an experiment, and we do not guarantee that we will update the root often or at all. Currently, only accounts that entered the $WRITE race before September 1st will be valid on the deployed oracle.

Subscribe to dev.mirror.xyz
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.