TCR Party: Quick Lessons and v1.1 Upcoming Features
After 3 weeks of TCR Party deployment time, we’ve learned a few architectural lessons, gained valuable insights from the ways in which users have been interfacing with the TCR, and have decided on the next feature implementations for version 1.1. If you’re new to TCR Party, check out this introductory post.
When deploying TCR Party for the first time, we learned plenty of lessons from the pitfalls we faced building on centralized and decentralized infrastructure alike. With decentralized infrastructure, you remain at the mercy of those maintaining the network you’re leveraging with little to no recourse. If something goes wrong, there’s no appeal process — there’s simply a migration to a new network. This is exactly what happened during our initial deployment on Ropsten.
Saving Private Ropsten — When we first deployed on Ropsten, a legacy Proof of Work Ethereum testnet, the TCR was running smoothly. The first few dozen nominations came into the system, and plenty of people were discovering the TCR through the viral “let’s party” tweet that was circulating. However, 3 hours into the experiment, things weren’t going as planned due to blocks not being mined on the network.
Initially, blocks were being mined around 3–4 times a minute, keeping the transactions running relatively smooth. All of a sudden, a large amount of hashpower suddenly dropped off the network, and without an immediate difficulty readjustment, blocks were only being found every 30–40 minutes due to the lack of miners on the network. Immediately we weighed the options between redeploying or attempting to save Ropsten. Due to the initial traction we received, we quickly opted in for the latter.
After realizing that generating enough hashpower to save the thing was a moot endeavor, we decided to redeploy on Rinkeby. Although we were nervous about users getting upset due to the registry clearing (since the contracts had to be redeployed), almost immediately, the experiment continued to pick up steam. This was until our next roadblock was presented just a few hours later.
Canary in the Coal Mine — Only an hour or two after redeploying the contracts on Rinkeby, our bot lost its write access from the Twitter API. The block was triggered due to TCRPartyVIP tagging individual Twitter accounts in a public tweet every time a challenge was issued. After removing that tagging feature and an appeal to Twitter, our block was removed and has since not been a problem.
Benevolent Whale God — Shortly after deploying and ironing out initial bugs, one of our users figured out how to abuse the faucet in order to be granted an excessive amount of tokens. Our “benevolent whale god” as he will continue to be referred to by has remained one of our most active users, and has provided valuable feedback throughout this entire process. The importance of a testnet deployment comes from these types of lessons which could’ve been catastrophic on mainnet with a floating asset.
Cartelization is Natural — As the TCR was beginning to form and participants were being nominated, social cartels naturally formed to keep and kick members of the list. Although these primarily were playful, we found it interesting that this form of play managed to generate higher amounts of activity because it introduced natural competition. As some nominations were increasingly being questioned for validity, so too was the number of contested nominations between friends.
These bouts would lead to friends recruiting members of the same social circles to essentially collude and remove the friend in question from the list. We found social collusion to be an essential element of this form of list curation when a popularity contest is on the line. Therefore we kept close tabs on the groups that began to form and essentially interact with the TCR as a game rather than a daily “task.”
Morality vs. List Integrity — Generally, list participants managed to keep the TCR on-topic, as set forth by the initial guidelines on tcr.party. Nominations such as Anna Kendrick, Barack Obama, Drake, and Donald Trump were naturally voted down as they didn’t fit the scope of the registry. One of the more salient examples of this came from Stephen Palley nominating the Pope to the registry, which would then require a participant to seek to challenge that motion.
Although the challenge was simply to remove the nomination, that participant still had to directly challenge @pontifex, not Palley. This, in turn, led to the gamification and humor as an integral part of the interactions — who was to challenge the Pope himself publicly? Eventually, Seth Feibus, a user of TCR Party successfully removed the nomination with added support from other members voting for the challenge in secret.
Public Support Through Public Nomination — One of the more interesting moments of the last three weeks came from the nomination and promotion of Parity developer Afri Schoedon who recently left the Ethereum community. Although his Twitter account has since gone dark, a nomination for him to be on the registry appeared as a signaling mechanism for support. In this case, if he was added, individuals following the curation bot would be alerted in the form of a retweet from his account. “Voting,” although simply a means to just be on a registry, became a sign of solidarity with the developer rather than following the social contract associated with putting the ‘top minds in crypto’ on the list.
The following are a few insights from TCR Party’s current deployment. It’s important to note that TCR Party was launched officially on February 4th.
The Rich List
After three weeks, here are the current top 10 richest members and their effective voting balances. There is a large disparity from the first two against the other eight, due to one being our benevolent whale god, and the other being quite successful at challenges. Other members participated in challenges successfully, and continually hit the faucet in order to increase their balances. Our poorest user has under 200 tokens.
Daily New Users
When we initially began the experiment, we had a decent amount of interest coming from new signups that would be required to tweet at the bot. This generated a swift discovery phase that lasted a few days, until our next bump in interest that came as a result of a CoinDesk article. Eventually, the new signups began to fall after the first week, leaving a couple of new signups trickling in per day.
Daily Faucet Hits
The faucet remained a generally strong feature, granting users 100 tokens per hit in order to continue nominating and challenging. We’ve learned that 5 days may be too large of a threshold and might be increasing the number of tokens gained from the faucet in the future. At a high from the data we’ve gathered, the faucet was hit by 52 users on February 12th, and has since plateaued at 17 hits per day since February 22nd.
Challenges initially peaked on February 7th, as more users became comfortable with the process and as our faucet bug was initially discovered. This allowed the exploiting user an easier way to issue a ton of challenges since the 500 token lock requirement became less daunting. Challenges have since lowered down to <10 per day. The registry at the time of posting has ~14 open spots, which may also lead to fewer challenges as there’s no need to remove a registry member to nominate another.
Voting has generally trended downward but is always directly related to the number of challenges issued in a given timeframe. With the number of challenges slowly dropping off due either to registry peace or user attention, voting will slowly follow that trend. At a high, voting was well above 170 votes per day, with a low of 5 votes in a single day during a time of few challenges.
The Party’s Current Architecture
There are two bots that handle all of the TCR’s functionality: TCRPartyVIP, and TCRPartyBot. TCRPartyVIP acts as an assistant with all user interactions, and as a megaphone to announce challenges, nominations, and updates. TCRPartyBot acts purely as a curation mechanism, retweeting all accounts that have been added to the registry.
To sign up, new users must follow TCRPartyVIP, and tweet “Hey @TCRPartyVIP let’s party” to get started. The bot will then ask a series of questions as a spam prevention mechanism, and finally, establish a multi-sig wallet with the user and a base allocation of 2,000 tokens. Once tokens have been allocated, users can interface with the TCR through basic nomination, challenge, and voting commands, and check their balance.
For our v1.1 release, we plan on adding a few new user features that will really change both user dynamics, and our existing interfaces.
Cartels as a Service (CaaS)
The first major feature on our roadmap for TCR Party is to implement cartelization as a feature. Participants can delegate 30% of their tokens to a cartel leader that can vote on their behalf in challenges. Leaders can establish their own cartel so long as they have a required minimum number of followers. Because we noticed users beginning to collude in small pockets in order to keep or kick other users from the list, we decided to ease the process and essentially automate it.
For the v1.1 implementation, we will have a major UI/UX overhaul by implementing inline DM buttons as a means of interfacing with TCRPartyVIP. Rather than the current interface that requires users to type out precise commands, there will be a list of options to simply click on in order to make transactional requests. The buttons will include standard nomination and challenge abilities, voting functions, balance status checking, and cartel options. Cartel options, in particular, will feature the ability to create, join, or exit a cartel.
The button implementation will simplify the experience for new users, and give existing users an easier way of interfacing with the TCR. We feel that these changes will help us continue to experiment with usability and make the game less complicated for those who are unfamiliar with interfacing with bots.
The TCR Party website will have the following features added:
- Cartel leaderboard to track cartels and their voting weight.
- The traditional leaderboard cleaned up for all major browsers.
- Registry member history, including nomination origin and failed challenges.
Notes and Balance Changes
To balance the game and ease Sybil potential, we’re including the following updates:
- Accounts must be 30 days old to join TCR Party.
- Following both bots will yield 250 tokens per day from the faucet.
- Challenges, no matter the origin, will always be made public from the bot.
- Cartel votes will be made public by TCRPartyVIP.
As for a mainnet implementation, side chains are being explored as a viable venue to host our party participants. This will be incredibly important for TCR Party, as the one major thing we are unable to test are economic assumptions due to the current nature of the experiment being on testnet.