Valora past, present & future đź•™

Welcome to the first cLabs engineering and product update

Published in
7 min readSep 17, 2020

--

cLabs Tech Sync #1

Hello! Welcome to the first cLabs engineering and product newsletter! In this newsletter, we’re going to give regular updates on what the cLabs team is working on, what questions we’re pondering, and what decisions we’re making, so you can get an early heads up and understand where the team is heading.

We also want you to get to know the individuals working on Celo — their backgrounds, motivations, and what they’re working on. The most important part of any open source project is the people, and we hope to foster a little more of that connectedness.

One thing we’re not trying to do: cover the whole Celo community and ecosystem, or be an oracle (get it?) for all things Celo. There is a ton of great work and discussion going on outside of cLabs, and we’d encourage you to check out these sources for news on that:

So, welcome! We’ll publish updates every few weeks going forward. Nice to have you along for the ride.

Valora

cLabs recently released the first version of the Valora wallet to the iOS and Android app stores. As well as a major milestone in Celo’s journey, it’s a culmination of a lot of work by a small group of people.

Connor McEwen and Anna Kazlauskas kicked off development of Valora just over two years ago, at around the same time that work started in building the Celo protocol from a fork of go-ethereum. It has been a rollercoaster of a journey trying to build a mobile app on top of a platform that, until the last six months, can best be described as a “moving target”. In one sense the app was ready well before the protocol. From late 2018, it was being used in our first pilot in Argentina. In another sense, there was no way we were going to be able to launch it until after mainnet, once cUSD was activated and liquid.

The app has evolved a ton since those early days. We used pilots as a way of offsetting the difficulties that a crypto stack poses in iterating rapidly in response to user feedback. In fact, the app had undergone a couple of substantial redesigns even before its first public release. Check out these earlier designs:

We chased down Corey Lee, who’s driven the current design: “The big push on the design side has been building out what might be called design infrastructure and getting things more organized. On the surface, things hopefully feel more consistent and tidier. A layer below, a lot’s been done to add structure in the system — making it easier to both implement new features and adjust existing stuff in a global way. On top of this, we made the big jump from “Celo wallet” to Valora. Of course, there’s the splash of gradient, but also updated artwork to bring things to life.”

That fantastic art is all the work of Taylor Lahey. Taylor was cLabs’ first employee — it’s interesting what it says about a crypto startup that its first employee is a designer.

As for what’s next? Connor said: “This is the most difficult, and yet most rewarding product I’ve worked on. Making the app publicly available is one big step in a launch that has included mainnet, the stability protocol, exchange listings, and now Valora, but there’s a lot more we want to do.” In the weeks following the release, the team will continue to focus on improving quality, fixing bugs, addressing tech debt, and improving test coverage. Expect some new features to be landing soon as well, including profile photos, usernames, and additional cash-in/cash-out options.

The team craves your feedback. Join the discussion at #valora on Discord. We also strongly encourage you to check out Connor’s recent tech talk where he talks more about the app’s internals. Of course, you can also dig into the code!

Reliable verifications

One of Celo’s major usability innovations is the ability for users to optionally tie their phone number to their on-chain address, a process sometimes referred to as phone number verification. This allows wallet applications like Valora to deliver a payments experience similar to that of centralized services. Verification is the first step in the Valora onboarding flow, and as such it’s critical that the user experience is as smooth and seamless as possible. The engineering team has been working hard on improving this experience on two fronts; reliability, and cost.

Amy Slawson and others have been digging into data that combines analytics from Valora, user-submitted logs, on-chain data, plus metrics from validators’ attestation services.

One of the main obstacles to verification reliability has been SMS delivery. Valora users come from all over the world, and we’ve seen evidence that success rates for SMS providers like Twilio and Nexmo can be meaningfully different across geos. To understand this better, the cLabs team enlisted friends and family from across the world to purchase SIMs and do manual testing.

We’re rolling these learnings into the codebase and the default configs that ship with Attestation Service 1.0.4. We’ve added support for delivery status receipts (so now if we receive an eventual failure from one provider, we can retry, possibly with another provider), country-code specific configuration, and improved documentation. The majority of validators have now upgraded and many are working on flushing out further failures. You can join in on Discord in the #attestation-service channel.

Free verifications

As with all things blockchain, phone number verification has an associated cost, payable in Celo Dollars (cUSD), to prevent denial-of-service attacks on validators. Unfortunately, this presents a chicken-and-egg problem; users need cUSD to pay for onboarding, but need to onboard before they can easily be sent cUSD. This problem is currently being solved via invitations; if Alice wants to invite Bob to join Valora, she funds an address with enough cUSD to pay for onboarding and sends him the private key. This approach has two drawbacks; inviting Bob to join Valora costs Alice money, and Bob is unable to join Valora without being invited.

Bogdan, Asa and others have been working on a fee-less attestations scheme that can cover the cost of transaction and verification fees. Critically, this is done in a way that minimizes the incentives for attacking the system, as these subsidies can only be used to pay for requesting verification codes.

A new, centralized onboarding service would determine eligibility, and create a MetaTransactionWallet contract that allows anyone to execute meta transactions on behalf of the owner so long as they are signed by the owner. The service would use this to execute the verification flow on behalf of a new Valora user. You can follow the progress in the #fee-less-onboarding Discord channel.

Meet the team! Amy Slawson

We’re going to introduce you to one member of the team in each newsletter. This week, Amy Slawson, in her own words:

“I joined cLabs in January in San Francisco. I was looking for my next play to be at a startup that had a mission for strong social and/or environmental impact and was working with emerging technologies. When I learned about Celo and the work of cLabs, it checked all the boxes. It’s been exciting working in this nascent space of blockchain and finding positive ways to leverage it for our communities. I’ve worked on several areas of the stack and protocol including governance, phone number privacy, and most recently verification. There have certainly been challenges with having global end-users and a decentralized attestation service such as ensuring SMS deliverability, monitoring, and providing a user experience flow that’s seamless for our Valora users. With many small wins, we’ve been making steady progress!”

Events you shouldn’t miss

Join the cLabs Hackathon — Sept 30 — Oct 6

  • cLabs likes a good hackathon, and this time we’re opening it up to the community! It’s pretty informal, and will run for one week.
  • Sign up here if you’re interested and check out #hackathon on Discord.

Kuneco — Oct 1

  • Tune in to the next community all-hands, Kuneco on October 1 to learn about Celo projects from around the world and gather in togetherness. Have a community project you’d like to present at Kuneco? Submit your project for consideration.

Validator Happy Hour — Oct 9

  • Bring coffee or beer and hang out virtually with other validators, node operators and developers.
  • Keep an eye on #validators-announce on Discord for more details closer to the time.

Get involved

If you’re interested in following progress more closely, please take a look at the celo-org Github projects, consider joining the Celo Discord server, and if you’d like to contribute to the Celo ecosystem, please don’t hesitate to reach out!

Sign up here for the Developer Newsletter

Happy building and operating!

Tim

--

--

Building financial technology to enable prosperity of all beings. cLabs started Celo in 2018 and is one of many contributors to the open source project.