Everything about the Celo India Fellowship ✨

Sameer Kashyap
9 min readAug 21, 2021

6 months ago I had no idea about blockchain, how it worked, what it did, or how huge of a deal it was. I treated it completely as alien technology which was too complex to comprehend. But over the past year, cryptocurrencies saw a lot of boom along with the stock market as people had more time on their hands. I first stumbled across it during my time as an MLH fellow, the last sprint week’s theme was ethical data, and certainly, blockchain seemed a logical technology stack to use without storing anything in a traditional database.

This is where I first stumbled on Ethereum and built an app along with Abir and Sai Durga Kamesh Kota that won the sprint 3 hackathon, fast forward to a month after the fellowship, I was looking for more opportunities when I came across CIF by Devfolio, my interest certainly did spark when learned more about the program and realized how great of a mission and technology it was.

The Interview Process 🔖

I applied to the Celo India Fellowship with the only blockchain project I had which I completed during the MLH fellowship. I wasn’t really expecting to get in as had just gotten started and my knowledge was very limited. I applied anyway as I wanted to dive deeper into the ecosystem and space. A few weeks later I got an email that asked me to schedule an interview call.

I was asked mainly about Celo’s protocol, mission, and Blockchain basics, apart from this I was also asked questions on my skillset such as Flutter and Node.js. By the end, I had lost a bit of hope as I didn’t answer some basic questions about consensus mechanisms. In the end, Denver Dsouza also told me not to be disheartened if I didn’t get a chance as the program was very competitive and there were very limited seats to fill, and that is the moment I decided I was rejected and moved on with my life.

But, to my surprise, within the next 4–5 days, I got a selection and mail and I was dumbstruck for a while as I couldn't believe that I was selected to be one amongst only 10 fellows selected out of 1000+ applicants in all of India. I was truly excited for the upcoming weeks and the journey ahead.

A bit about Celo 💵

Celo is an open-source, mobile-first Defi platform with a mission to make money beautiful, by making it accessible to people all around the world with a lack of financial infrastructure.

Celo is a layer 1 blockchain solution written in Go, it uses an EVM fork to facilitate smart contracts and hence makes it easy to migrate protocols and solidity code as the chain is EVM compatible. The protocol itself differs in the way that it can map account addresses to phone numbers so users can easily send and receive coins without the need to remember each other’s public addresses. Along with the Celo coin, Celo also has stable coins cUSD and cEUR which are pecked against the US Dollar and the Euro. This is what makes Celo a viable alternative to traditional financial services. Celo also has an easy-to-use wallet app, Valora, which provides a seamless experience in managing Celo assets.

The Protocol ⛓

The way Celo differs from Ethereum and other blockchain is the way its protocol operates. Instead of the popular Proof of Work(PoW) consensus mechanism, Celo employs a Proof of Stake(PoS) solution to validate and verify transactions. This helps solve the Ethereum scalability problem and make transactions faster and cheaper at only $0.001, which otherwise would not have been a real-world practical application as transactions have to happen quickly for two parties to verify and the fees to be minimum so people using the protocol could afford it.

KickOff! 🏁

The program officially kicked off on the 7th of June, and the first few weeks were of tremendous learning.

Week 1 & 2 📝

Started of with and mostly focused on discovering more about Celo and understanding the ecosystem better, getting to learn more about blockchain in general. I mostly wandered through the Celo docs trying to understand the code differences between Ethereum and Celo, how nodes work, how validators validate transactions, and the different incentives and program Celo offers to the Developer ecosystem.

If you’re interested in trying out the basic Celo transition and lessons, head over here, to learn more about developer tooling, head over here, and lastly download and try this code walkthrough to quickly get started.

I also completed a lot of lessons on crypto zombies, which I’d recommend if you’re planning on picking up solidity for wiring smart contracts.

Week 2 & 3 📝

Involved a bit of practical hands-on, the first task was to create a Dapp on the Celo blockchain either using React or React-Native and Celo contract-kit, Celo’s SDK for connecting to the node.

I came up with an idea to make a fundraiser Dapp that would allow people to donate cUSD two fundraisers. It was my first time using React-Native and writing a huge solidity contract. I had some trouble initially with expo tools and fetching smart contracts, but it all came together in the end. The app basically connects using the Valora wallet to display fundraisers, and users could click on the fund to send cUSD coins to the contract which would can then be claimed after the campaign ends. You can find the code for the project here.

Fund me coin

The following week had a case study on an app built on the Celo protocol. I chose Doni since it was based on a similar project I choose the previous week. We presented slides to give more information and context on the things the app was doing right and wrong. More or less Doni was pretty simple Dapp revolving around the same ideas I had.

One thing lacking from these projects was a process to verify the legitimacy of a fundraiser, the solution suggested by mentors was to use an arbitration service like kleros.io to solve community disputes and verify the authenticity using community voting, this might be the best way to validate content on blockchain-based social apps.

The Final Phase 🛠

The last phase of the fellowship was to build a project which could be of real-world use case and potentially be funded to become a product.

I started with this idea and goal ever since I applied to the fellowship, porting the JavsScript Celo SDKs to Dart, it made sense since Celo is a mobile-first Defi platform and the entire mission is targeted at building Dapps for mobile since that was what most people can easily afford around the world.

Celo currently supports React-Native and some python SDKs, but since Flutter has taken over the cross-platform app development space, and it can be easily used in hackathons to create MVPs in very little time, a Dart contract-kit SDK would help hackers and Flutter developers easily develop apps.

Some Challenges 🤒

I certainly didn't research enough while picking this project as I assumed I’d only have to port a few files within the contract-kit, but it was only after seeing the entire Celo-monorepo that I was completely overwhelmed and felt lost. The problem with web3 is how deeply it is integrated within javascript and most SDKs have peer dependencies which in turn have dependencies and makes it a dependency hell while rewriting SDKs in other languages.

Initially, I was lost for a couple of weeks trying to figure out where to start and matching the code, but soon after that I spoke to mentors from Celo and realized my entire approach was wrong. It was better to write my own logic using the existing libraries available in Dart that would help me.

Hence began the journey of trial and error, since Celo was EVM compatible, most of the Ethereum calls did work with the methods from the web3 package but Celo has some core differences in the protocol and hence the way it signed transactions and some additional fields mainly, gatewayFee, gatewayFeeRecipient, feeCurrency, facilitate gas fee payment through stable coins. This also led me to learn more about the process of signing and RLP.

Major Takeaways 🚀

  • Blockchain is a revolution— from being unaware about the impact blockchain was having to discover multiple protocols and layer 2 solutions and various Defi concepts like Liquidity pools, mem-pools, flash loans, and yield farming. It is definitely having a ton of influence and impact on the real world and the way we trade might be very different in the near future.
  • SDK Engineering — writing code is great, but writing SDKs gives a new perspective into how modular, and reusable things can be made, SDKs are primarily an abstraction over an underlying low-level API, this gave me immense experience in writing SDKs especially using core OOPs concepts.
  • Blockchain core concepts — By choosing to write an SDK I was getting my hands dirtier than I would if I chose a project that would just use the libraries. I had to get an understanding of some of the core concepts of blockchain-like consensus mechanisms, seed-phrase derivative paths, and how signing a transaction using cryptography actually worked, and some algorithms such as SHA, MD5, and RLP encoding. This gave me more depth and clarity, but blockchain has certainly grown into a vast space and there is always more to learn.
  • Opportunities — There are a ton of opportunities in the web3 space and getting into this fellowship gave me some awesome exposure, I had multiple companies reaching out to me for Blockchain developer roles when I was only a beginner in this space and had less than 6 months of experience. These companies don’t also look for hard skills and only look for your enthusiasm in the space and how excited you are and definitely don’t have the hard Data structures interviews. This is one of the greatest reasons why you should involve in web3 communities as the opportunities can be limitless.

This project is still in experimental mode and still has a lot of work to be done before it can be deployed in production, but here’s the link to the repository, feel free to play around and submit any ideas, issues, or pull requests.

Shoutouts 🎉

A huge shoutout to the entire team at Devfolio who has been doing awesome work over the years to empower the hacker community by providing such amazing opportunities. Devfolio has recently been bringing amazing programs and initiatives in the Blockchain space, there is always at least one hackathon every month which I wouldn't miss if I were you, so head over and check out the awesome stuff which can change your pathway.

Also, thanks to Celo for bringing this initiative and helping me and other fellows get to know more about the ecosystem, and welcoming us to the community. Celo is growing in greatly in the web3 space and has multiple programs and initiatives for funding for protocols on the Celo network and additional work in developer tooling, educational content, and also ambassador programs. So Be sure to check them out!

--

--