ECF and ETHPrize band together to help fund Universal Logins Demo

I’ve been helping people launch ethereum projects for a long time now, so I usually anticipate all the same questions: yes, users need ether; yeah the hash is confusing; yeah if they lose the key they lose it all; yeah they need to install metamask. But I would always follow it up by “but you know, there’s a few interesting work arounds to those”. Then I would cite “you can use ENS for this”, “you can use signed messages just like Status or Aragon does”, “well if you really want users to pay in your own token, then here’s what you can do to do it instead”. Yet the developers, many for whom this was their first ethereum project as a whole would stare at me blankly: “is there a… uhh.. somewhere I can see all that working somewhere? Documentation? Is that thing you’re describing some standard or are you making it up?”. As I didn’t have one concrete solution to offer, I wouldpoint developers in the directions of a bunch of different separate projects. So I decided to write one.

UX Unconf Toronto 2018

So after a conversation with a great at colleague at Status who was also wotking on their identity scheme, I started writing a couple EIPs and flew to Toronto where I was able to meet a few of the greatest heads worried about UX in ethereum, at UX Unconf, where I presented my proposal. From them on, interest only grew. Many people wanted to implement similar ideas on their own app, from multiple approaches and I was invited to talk about it at DappCon Berlin, where I was able to meet some wonderful people from Gnosis, Web3 Foundation, ECF, ETHPrize, Gitcoin and other organizations who really believed that UX is key to adoption.

I had many talented people tell me they were very excited about helping the concept, and saw many exciting projects come out recently, but most are focused on one piece of the puzzle and are very developer oriented focused. While I want to encourage every one of them to keep working and collaborate, I decided I needed to focus on one specific team to make sure we had a deliverable in the next couple of months, something that someone could use as a launching point for their own apps.

Universal Logins

Here’s a recap of what universal logins is and what it solves if you want to skip the videos above:

  • Your users can use your app without needing to install anything, buy ether or even type a password
  • Users are identified by a ENS username, and not a hex address
  • Users can use tokens to interact with your app, and you can even give out some of them free to encourage usage
  • Users are in control of their identity and any assets that are tied to them, and can take them to other apps
  • When users log into their identity with other apps, these act as second or third factors authenticators
  • While the app relies on a server, the server’s only job is to relay messages to the chain and pay ether, and the user can use any server they want

Ethereum Community Fund and ETHPrize

That’s where ECF and ETHPrize come in. ECF has very generously provided a $25,000 grant along with ETHPrize providing a $25,000 bounty for the talented team at EthWorks to build a universal login app under my supervision. The funding will allow:

  • A full implementation of standards ERC1077 and ERC1078 (which in turn depend on other standards, like ERC721, etc)
  • Build a boilerplate app in React-js that will present a front-end for a super simple ethereum app
  • Build a backend in node-js for a transaction relayer, a server that takes messages from the user and publishes them to the blockhain
  • Build the backend contracts that will enable users to create identity accounts on ethereum
  • Organize a hackathon where hackers will be able to set up in minutes their working ethereum app, and then focus on building their unique ideas in ethereum

The app will be a single button that the user clicks. When it does, it records the last timestamp and logs it. It’s almost a “hello, world” of smart contracts: it has a variable that can be read, a function that can be executed and an event to track (but simple doesn’t mean it can’t be fun). The goal is not to attract attention to that app at all, since its purpose is to be eventually replaced by whatever the developer wants it to be. Most of the actual work will be on the login/signup process and the bar that allows the user to manage their account.

There’s a lot things we want to build but probably be won’t. Ideally there must be standards for authorizations of what an account is able to do on the app, similar to how Android/iOS have permissions systems. We need to have advanced settings that enable different actions require different amounts of privileges. The long term goal is to make that simple app into the base of many serious wallets, games and other ethereum app, which will push the envelope forward.

But for now, our main goal is to have, by Devcon4, something that a developer being introduced to ethereum for the first time can clone and start building over a weekend.

I will update everyone on the progress of our work here, and as soon as we have code to share I will. Follow this page to get updates!