Introduction

In 21OO, participants lock DAI to mint tokens that are linked to Twitter usernames. This process creates a unique token per Twitter account.

Each account is represented as an ERC-20 token and has a fixed supply of 2,100. Collectively, the top 10,000 Twitter accounts would create a supply of 21 million tokens: 10,000 non-fungible groups of 2,100.

A generic square placeholder image with rounded corners in a figure.
@andrewyang + DAI lockdrop = $andrewyang

The owner of a username on Twitter is entitled to 100 of their own tokens. A public marketplace of 'minters' compete to mint and own the remaining 2000 tokens.

To mint 2100 tokens, participants 'stake' the DAI stablecoin on the Twitter username of their choice.

Every block will generate 0.00021 username tokens per staked account until the maximum supply of 2,100 is reached. Assuming continuous staking and 15s Ethereum blocks, 2,100 tokens will be emitted in approximately 4.75 years.

Motivation

We believe that 2100 tokens have multiple forms of utility and create natural incentives for both minters and account owners. For example, 2100 tokens can facilitate a weighted (and sybil resistant) social graph.

When there is no cost associated with subscribing to a feed on public networks like Twitter, users can subscribe to an arbitrarily large number of accounts. This creates a problem for influencers and popular accounts because they can’t prioritize or distinguish die-hard fans from casual fans or bots.

With sybil resistant subscriptions, influencers can do a lot more for their followers:

@dollarshaveclub: Hodl at least 1 $dollarshaveclub and get a free razor every month!
@SnoopDog: Get a backstage pass with 10 $snoopdog
@KDTrey5: Burn 1 $kdtrey5 to get a Kevin Durant collectible

Context

In a May 2019 interview with @joerogan, @jack recounted that Twitter was not invented but ‘discovered’. With this statement, he was referring to the post-internet inevitability of a Twitter-like protocol.

We theorize that socially-linked commodities are (yet another) natural outcome of the democratization of financial engineering, and that 2100 or a similar protocol is also awaiting 'discovery'.

As evidence of this, we cite three previous (though incomplete) implementations of this idea:

The Hollywood Stock Exchange (HSX)

Created in 1999 by @maxkeiser and Michael R. Burns, the Hollywood Stock Exchange, or HSX, is a web-based, multiplayer game in which players use simulated money to buy and sell simulated shares of actors, directors, upcoming films, and film-related options.

https://en.wikipedia.org/wiki/Hollywood_Stock_Exchange

Stolen!

Created in November 2015 by @blader, Stolen! was a fast paced mobile game that quickly gained popularity. The goal of the game was to steal Twitter accounts from other users using in-game currency S-bucks which were earned by holding popular accounts.

https://en.wikipedia.org/wiki/Stolen!

Augur Twitter Markets

@AugurProject is a decentralized prediction market platform built on the Ethereum blockchain that was founded in 2014. In 2019, prediction markets betting on the follower count of Twitter celebrities became popular trading venues.

A generic square placeholder image with rounded corners in a figure.
A @veil market for betting on Andrew Yang's Twitter followers
https://en.wikipedia.org/wiki/Augur_(software)

Both Stolen and HSX achieved finite success, but suffered from the problem that their commodity had no utility outside of a single app.

@AugurProject Twitter markets have given us the closest approximation of a platform-independent commodity, but these markets exist only for a specific window of time and for a specific range of Twitter followers. Further, follower count can be Sybil attacked and is not always correlated with an increase in popularity or utility.

2100 proposes a mechanism to create long-lived, platform independent, identity-linked commodities. With the right implementation, we hope that 2100 will inspire a 'Layer 2' of utility.

Philosophy

While our long term goal is to completely decentralize the 2100 protocol, we believe that the current costs of decentralization (both in terms of 'gas' and more critically user experience) are barriers to widespread adoption. For this reason, the first version of 2100 will be a centralized application with a deep Ethereum integration.

Ethereum will be used for non-custodial DAI deposits and for 'settling' the Twitter-linked assets as ERC-20 tokens. All other functionality will be transparently orchestrated off-chain (open source, auditable DB) by Citizen Hex Inc. (the company behind 2100, hereby referred to as @2100hq), with plans to move 'on-chain' if the 'MVP' is a success.

In the decentralized version of the app, staking could take place on a sidechain, and a decentralized oracle will be used to relay the state of Twitter.

Creating Tokens

2100 token contracts are created when @2100hq approves that a string of lowercase characters is an existing Twitter username.

To be added to 2100, an account owner must publish a Tweet that says "Add me to @2100hq".

@SnoopDog: Add me to @2100hq

@2100hq will verify that "snoopdogg" is an existing Twitter username and use its private keys to sign an authorization message.

Anyone can then broadcast this authorization message to the Ethereum blockchain to create the account token contract.

When the token contract is created, 0.021 tokens will be minted to the user who submitted the transaction as a reward for creating the contract.

Minting off-chain

After creation, tokens on 2100 username contracts are generated each Ethereum block by @2100hq. This generation of tokens takes place in a database owned by @2100hq and tokens are not minted on-chain until a user requests settlement.

Users lock DAI (a token pegged in value to the US Dollar) in a non-custodial Ethereum smart-contract. @2100hq never has possession of these funds and users can unlock their DAI at any time.

When a user locks DAI, @2100hq detects this event and credits the user with the equivalent staking allocation in a database owned by @2100hq. When a user unlocks DAI, @2100hq removes the staking allocation in its database.

Users can log in to the 2100 app (using Metamask or another Ethereum client) to see their staking allocation and choose how much of their allocation they want to stake on particular user name accounts.

For every Ethereum block detected by @2100hq, 0.00021 tokens are generated in a @2100hq database for each username account. 90% of these tokens are divided pro-rata to users who have staked on these accounts. 10% of these tokens (to a maximum of 100 tokens) are reserved for the Twitter account owner as an ‘owners reward’ (see “Owners Reward”).

For example, Alice has chosen to stake 1 DAI on $snoopdogg and Bob has staked 2 DAI. For each block, Alice will be credited (1/3*0.00021*90%) 0.000063 $snoopdogg, Bob will be credited (2/3*0.00021*90%) 0.000126 $snoopdogg, and @SnoopDogg will be credited (0.00021*10%) 0.000021 $snoopdogg.

Settling on-chain

At any time a user can choose to take their off-chain tokens and mint them on-chain as ERC-20 tokens. Once on-chain these assets are fully interoperable with the Ethereum network.

A user clicks a button in the 2100 app and the app signs an authorization message for the 2100 smart contract to mint the tokens they are owed. When the user broadcasts this authorization message on-chain, the 2100 smart contract mints the tokens.

Following the example above, Alice wants to redeem 0.000063 $snoopdogg from the centralized app to the Ethereum blockchain. She clicks “Redeem” in the app and she receives an authorization message. She broadcasts this message to the Ethereum network, sending it to the 2100 smart contract, which instructs the “snoopdogg” token contract to credit her balance with 0.000063.

The 2100 smart contract enforces that the authorization message cannot be used more than once and that the message is signed by @2100hq. When a token is minted on-chain it is now fully in possession of the user and can be used however she wants.

Owners Reward

Owners of a Twitter username will be credited 10% of the minted token issuance on the contract that shares their username to a maximum of 100 tokens. Until an owner's address is known, rewards will be issued to the zero address (0x0000000000000000000000000000000000000000).

Owners of a username on the Twitter platform can change the issuance address and claim any existing tokens to their own Ethereum address by tweeting out a message specifying their Ethereum address.

Claiming my @2100hq tokens 0xabcdef123cd516ecc3849daf6845e3ec868087b755

@2100hq will monitor Twitter for this tweet and sign an authorization message that claims any current and ongoing owner’s reward tokens to a specific address. This tweet mechanism ensures that only the owner of a Twitter account can claim their owner’s reward.

When this message is broadcast on-chain, the 2100 smart contract will verify its authenticity and store the owner’s address. The 2100 centralized app will detect this change and credit the owner’s Ethereum address with any outstanding tokens, and will issue new tokens to this address.

An owner can then mint their tokens on-chain like any other user of the application.

Name changes

Twitter allows username owners to change their username. This changes the url of the account profile and how it is mentioned in Tweets, but does not change other data such as followers, likes, etc.

To reinforce the social consensus that 2100 tokens represent Twitter usernames, a 2100 username token must also be able to alter its symbol to match a Twitter username change.

When a Twitter account is renamed, anyone in the world can send a tweet specifying which username changed:

The username @andrewyangvfa changed to @AndrewYang @2100hq

@2100hq will verify that this happened and sign a message authorizing a name change on the $andrewyangvfa token contract.

Anyone can broadcast this message on-chain to change the token’s name and symbol. If an existing 2100 token contract exists with the new symbol (andrewyang), it will be changed to the old symbol (andrewyangvfa).

The address of the 2100 token contract does not change at the end of this process and thereby closely mirrors the Twitter platforms username change feature.

Owner Opt-Out

Should the owner of a Twitter username no longer want their username to be used in the 2100 app they can tweet a message:

Remove my username from @2100hq

@2100hq will verify that this tweet was sent by the account that wants to opt-out.

@2100hq will broadcast a message that scrambles the symbol and name of the token contract by hashing the name with the current block number. For example, the token with the symbol “snoopdogg” will have its symbol changed to:

6455ffc29962d86b8b08c96b3db27ca0958a1bf1768ccecfde467d3b2bb0b782

The 2100 centralized app will detect this change and immediately halt staking on this account. Users who have generated tokens on this account can still mint them on-chain, but no further tokens will be generated off-chain or minted.

Next Steps

@2100hq is currently prototyping 2100 with plans for a private testnet in August 2019 and a public testnet coinciding with @EFDevcon. If you'd like to get involved, you can follow @2100hq or say 'hi' on Discord. Thanks for reading!