Protea is Beginning to Blossom

A Reflection on the State of our Alpha

Florian Bühringer
Protea Blog
6 min readSep 18, 2018

--

This article forms part of the documentation around our early experiments. Our vision has since expanded, and we are now working towards creating a universal, adaptable, and interoperable protocol that provides a diverse set of utility tools centred around the idea of tokenised trust + commitment. With this we aim to build the foundation for an emergence of new co-operative networks, from grassroots communities to global marketplaces. To find out more, read our latest article here.

A few weeks ago we started an Alpha Test Series for our Protea Minimum Viable Dapp (MVD). Feedback from early testers has been extremely valuable and we are only hours away from our next internal alpha event. We also started testing Protea at meetups around the globe. Thank you Adrià & ETH Dev Barcelona for being first to jump on board!

This article will provide some insight as to where we are at with the development of Protea, providing a high-level overview of our MVD components and a walkthrough of a typical user flow with Protea.

The Components

Our Alpha MVD allows users to create meetups, stake their attendance into meetups and withdraw both staked and earned tokens from meetups once they have ended. Here we are using tokenized skin-in-the-game mechanisms to solve the tragedy of commons problem found at free meetups.

To make this a possibility, Protea currently relies on three core components: uPort, the Protea web DApp (decentralised app) and the Ethereum blockchain.

uPort

Protea integrates with uPort identities. A uPort identity is a complete digital representation of a person that is able to make statements about who they are when interacting with smart contracts and other uPort identities, either on-chain or off-chain (read more here)

For Protea, uPort facilitates user identification (log in) and provides a user-friendly interface for signing blockchain transactions required when interacting with smart contracts.

Protea Web DApp

Via the Protea web DApp, Protea users can interact with the Ethereum blockchain when performing actions such as creating and attending meetups.

Ethereum Blockchain

Meetups and RSVPs to meetups as well as tokens staked into meetups are referenced on-chain. The Protea token, for now, is based on the ERC223 standard and runs on the Rinkeby testnet. ERC standards are constantly evolving and we are looking into migrating to other standards already. We implemented a version control system that ensures tokens held in early versions are carried over as we migrate our contracts.

The Current Protea MVD User Flow

The below diagram shows a typical user flow in our Protea MVD. Ethereum symbols next to a step indicate an interaction with the blockchain.

Protea User Flow

On Protea 1) all users can log in using their uPort identity, and 2) upon first sign-in claim free tokens. 3) Organizers can create new meetups. 4) Attendees can RSVP to existing meetups, by staking tokens into those meetups. 5) Once at the meetup, the organizer confirms attendance of those who came on-chain. 6) After an organizer ends a meetup, 7) attendees can withdraw their tokens.

These individual steps are elaborated on in the below walkthrough, each accompanied by a gif illustrating the user interactions.

How to log in

In our current version, all users log into Protea using their uPort mobile identity. Users are simply redirected to uPort when visiting the Protea homepage. In uPort users confirm the sharing of their user information, which redirects them back to Protea, now logged in.

How to claim joining tokens

First-time users are rewarded with free Protea tokens for joining, which they can claim from a faucet. Claiming tokens requires a transaction on the blockchain, which is signed with uPort.

How to create a meetup

Anyone wanting to organize a meetup on Protea, can easily do so by navigating to the “Create” tab, and specifying meetup details and the required RSVP stake. Once ready, the meetup can be deployed on-chain. This transaction is again signed via uPort.

How to RSVP

Anyone wanting to RSVP to a meetup on Protea, can easily do so by searching for the name of the meetup. Once on the meetups detail page, attendees can RSVP to that meetup by staking the required tokens into the meetup. Only once the meetup has ended and if they actually attended will attendees receive their tokens back.

How to confirm attendances

Once everyone is signed in at the meetup, the organizer can batch confirm all attendees to the chain, signed via uPort. We call this proof of attendance, as attendees are now immutably proven to have attended this meetup. Latecomers are not a problem as the organizer can confirm attendance on-chain multiple times.

How to end a meetup

Once the meetup has ended, the organizer can mark it as “Ended”. This transaction requires to be signed via uPort. Once the meetup has ended, staked tokens of those who did not attend are evenly redistributed to those that did attend, who can now withdraw their tokens.

How to withdraw staked tokens

Finally, attendees can withdraw their tokens from a meetup that has ended. In the Protea web dapp they can conveniently see which meetups are ready for token withdrawal. Tokens withdrawn include both staked and earned tokens. This, again, requires transaction signing via uPort.

Related Resources

Protea Alpha: How to Attend a Meetup

--

--

Florian Bühringer
Protea Blog

German by birth. African at heart. Project Lead & Co-Founder @protea_io — also @linumlabs