Skip to main content

11 posts tagged with "beginner"

View All Tags
Go back

· 8 min read

How To Transition From Web2 To Web3

The online world is continuously developing, expanding, fixing bugs, and adding new features to overcome limitations. Some advances, such as the rise of social media, have marked each generation of the Internet since the beginning. There will be a manageable break in continuity as Web2's shortcomings will likely be addressed by Web3 systems.

Web3 is an improved version of the web whose fundamental principles are founded on blockchain and cryptocurrency technologies which aim to return control to its users. It introduces many shifts, including the consolidation of content and digital space ownership into the hands of service providers with vested interests. The users of a Web3 network have complete authority over the network's data, resources, and even social dynamics.

However, the transition from Web2 to Web3 is something that only some are familiar with, as Web3 is still uncharted territory. That is why in this article, we explore the basic concept of what Web3 is, what its defining features are, and how to transition from Web2 to Web3 efficiently.

How do we Conceptualize Web3?

web 3.0 Image Source: istock

To conceptualize what he saw as an improved version of the web, Ethereum co-founder Gavin Wood came up with Web3. He defined its primary objective as restoring internet governance to its user community rather than private corporations. The Web3 system accomplishes this by utilizing blockchain and cryptocurrency technology to establish a system of ownership.

A comparison between the early and modern stages of the internet shows the striking improvements expected for web3 is explained below:

Web1 was a strictly informational online service, with no room for user participation or interaction. Web2, the version currently in use, is a read-only version of the web in which users can only collaborate and share information. In Web3, in addition to reading and writing, users will be expected to have some ownership over their online content.

In contrast to Web2, where centralized platform providers reap all the rewards, Web3's core goal is to create a decentralized internet that provides new applicability and benefits both developers and users. It is the next iteration of the internet, with the ability to make the internet's benefits available to everyone without requiring the authorization of a central authority.

Everyone will have access to Web3, and there will be a shift in how users conduct their online interactions and financial transactions. For instance, instead of dealing with a third-party intermediary, transactions will be handled directly between peers or between peers and a contracting party. Users will also have a voice in developing a service or product through voting and other forms of governance.

What are the Core Defining Features of Web3?

web2 vs web 3 Image Source: vitalflux

Web3 is defined by a set of technological and blockchain integrations that, when combined, create an upgraded version of the internet. Below are some of those features:

Decentralization: This idea is key to Web 3.0 architecture. In Web 2.0, information is typically stored in a single, central location, accessible only via a specific web address, and accessed by computers over the Hypertext Transfer Protocol (HTTP).

Since information will be located on Web 3.0 according to data type, data might be stored in several places at once, making the system decentralized. By doing so, power would shift from centralized institutions to the users. Users will be able to retain ownership of their data, which can be sold via decentralized data networks.

Trustless & Permissionless: Web 3.0 will be trustless (allowing members to engage directly without going through a trusted intermediary) and permissionless (anyone can participate without authorization from a governing body). As a result, Web3 will be characterized by decentralized applications (dApps), blockchain operations, and decentralized peer-to-peer networks.

A Semantic Web: The Web3 will involve an influx of technology that will lead to improved internet use. Through semantic search and analysis, the Semantic Web will enable web technologies to better generate, exchange, and connect content based on the actual meaning of words, rather than just keywords or numbers.

The Metaverse: The evolution to Web3 will also be featured with the acceptance and rise of the metaverse. Many in the IT field envision the metaverse as the next generation of the internet: a unified, social, resilient, and fully three-dimensional online environment where people can have unique and extraordinary experiences unavailable in the real world. That roughly captures the expectations from Web3.

These features show that information and content will become increasingly interconnected and pervasive in Web 3.0, with access provided through a variety of applications and a growing number of commonplace web-enabled devices. The question then becomes not if or when but how one should evolve to catch up with the Web.

How to Transition from Web2 to Web3

web2 to web 3 Image Source: leewayhertz

The transition from Web2 to Web3 is dependent on the right application of Web3 features for each phase of the transition. To shift seamlessly, you should be aware of the following options.

Understand Web3: Aside from understanding the core features of Web3, you must have a basic familiarity with Web3. To transition from one phase to the other, you'll need to understand the limitations of Web3 and find ways to make those limitations potential areas for improvement as defined by the core features.

For a Web3-based digital ecosystem to be successful, it must meet the needs of its users and solve Web2 problems. This necessitates a major shift in perception and operations, along with reconsidering how to adjust the current Web.

Given that not everyone will be required to make the same changes, it is crucial to make the shift smooth and construct a Web3 transition plan that suits your exact situation, and that will meet your future needs. Participating in a decentralized autonomous organization (DAO) can provide valuable insight into the inner workings of Web3.

Transition Slowly: Participating in this transition requires reassuring users that they won't notice a significant break in services due to your approach toward transitioning. This should be in addition to developing a user-friendly interface, enhancing the accessibility of Web3 components, and setting up learning methods that will ease users and operators into the new Web.

Do not Discard Web2: Every aspect of your online service, from the user interface to the data storage, must be hosted on-chain if a full transition to Web3 is to be realized. Because there is no requirement for outdated facilities, there will be fewer delays and less need for maintenance. This will produce a completely genuine Web3 experience while also dramatically enhancing performance.

However, you should note that an effective transitioning strategy will incorporate both Web2 and Web3 techniques. Moreover, Web3 and the metaverse will primarily alter marketing and communication roles, paving the way for new job titles, which means that transitioning from one to the other has to come from an already established and solid Web2 foundation.

What to Look out for when Transitioning from Web2 to Web3

Blockchain promises a wide variety of benefits and applications. However, there are still significant obstacles to overcome before this vision of Web3 can become a reality.

Partial Decentralization: Many so-called dApps are not fully decentralized since the front-end components of such services run on the cloud. Consequently, users must rely on Web2 infrastructure to access decentralized services, with the blockchain serving as a data transmission and storage gateway. Since the underlying consensus protocol lacks strong decentralization assumptions, blockchain ecosystems that should be intended as decentralized networks lose that distinction.

Lack of Interoperability: The persistent need for value transfer between blockchains is just one complication brought on by the rapid expansion of blockchain ecosystems. It is becoming more unlikely that a single blockchain will suit all of society's needs due to the trade-offs involved in decentralization, security, scalability, and prices.

Therefore, each blockchain ecosystem has become an isolated system with limited access. Users and developers of dApps who want to embrace easily and reap the benefits of numerous chains need to be improved by the blockchain's widespread inoperability. For the time being, the only way to gain access to multiple blockchain technologies is to address the interoperability issue.

Conclusion

For those who understand the potential of the blockchain revolution and realize that Web3 is the way of the future, Web2 can be a challenging place to transition from. Major technology firms from both the Web2 and Web3 spheres are trying to find seamless ways to ease into Web3.

An example is the Celo blockchain which allows people worldwide to conduct simple cryptocurrency transactions using their mobile phones. It is also essential that any attempt to rethink the Internet and transition from Web2 to Web3 be made with the users in mind rather than centralized corporations to meet its overarching standard of decentralization.

About the Author

Tomiwa Oladipo is a freelance content writer for the emerging Web3 industry, writing blogs and articles about blockchain, NFTs, DeFi, and cryptocurrencies. You can connect with me on LinkedIn.

References

Go back

· 9 min read
Elijah Sorinola

Introduction

The Web3 Industry is rapidly expanding. Hundreds of decentralized networks, cryptocurrencies, and other blockchain-powered applications are anticipated to be launched on the internet and in the global finance industry in the future.

However, there's a need for more web3 developers to create and implement these projects to accelerate the development of the space further.

Prerequisites​

This tutorial is designed for intermediate and beginner developers looking to port or start their amazing journey toward web3 development. Basic computer operation and programming knowledge in Python, JavaScript, and Solidity will help accelerate your journey even faster.

Requirement

Ensure you install the necessary programming languages before starting on a PC or desktop. This allows learning to be easier and more convenient. In addition, ensure you download the necessary packages (which will not be fully explained) to ease learning.

Getting started

According to SlashData, a developer statistics organization, there were over 30 million software developers worldwide in the first quarter of 2022. Despite this enormous quantity, there are surprisingly few Web3 developers available.

There are still less than 20,000 Web3 developers working in the whole space. To put this in a better perspective, that's less than the number of developers working for Web2 brands like Meta alone. The number only accounts for less than 1% of developers worldwide.

With a small number of web developers and a growing market, the web3 sector desperately needs skilled programmers like YOU.

Pie Chart

Breaking into the web3 Industry as a budding developer can be difficult. Many blogs and productivity experts would advise you first to define your goals, who you want to be, locate a niche, etc.

But how will you know since you most likely need more real-world experience to understand what appeals to you the most? This article is intended for beginning and intermediate developers and aims to ease their transition into the Web3 world as developers.

Web3 developer roadmap

Roadmap

A roadmap for web3 developers provides step-by-step instructions on beginning a career as a Web3 developer. It is used by numerous institutions, training organizations, job seekers, and specialists in the web3 field. In this article, we'll go over the most crucial abilities required of web3 developers. We have also compiled a lengthy list of tools and ideas you should learn to get into the field.

Understand the basics of several Web2 computer programming languages

As aforementioned, there are mandatory prerequisites that beginners and intermediates should be aware of. This includes basic or in-depth knowledge of coding/programming in basic languages like HTML, CSS, JavaScript, React, and more.

Your Web2 knowledge will help you advance to Web3 and expose you to fundamental computer concepts (such as operating systems and networking) and problem-solving techniques necessary for web2 and web3 programming.

To fully understand the basic concept of programming, free resources and websites like Celo Developer resources, Future Learn, and Freecodecamp provide the public with thousands of videos, articles, and interactive coding lessons.

Learn the fundamentals of blockchain

Although they are brilliant pieces of technology, blockchains are difficult to comprehend. The blockchain is a shared, unchangeable ledger that keeps track of transactions, assets, and trust. While it may take some time to learn blockchain thoroughly, there are certain key aspects to keep an eye out for:

  • The significance of blockchain technology
  • Use cases and the blockchain's operation
  • Immutable Records, Smart Contracts, and Distributed Ledger Technology (DLT) are the three main components of the blockchain.
  • Learn about the decentralization of Web3, consensus methods, hashing operations, mining, security, and cryptocurrencies.
  • Include Web3 elements such as blocks, block indexes, timestamps, block hashes, block times, and others.

To understand better, there are free online courses from blockchain professionals. These include the free Celo YouTube channel for developers, the Blockchain Developer Nano degree on Udacity, and the Blockchain Developer Course by Pluralsight.

Learn cryptography

Cryptography is the most crucial and essential requirement for building a blockchain. Sensitive information can be safeguarded by cryptography from unauthorized access. The blockchain uses cryptographic methods as part of its security measures. Check out this comprehensive list (GitHub repository) of cryptography resources for a more in-depth understanding of encryption and the blockchain.

Learn about Bitcoin, Ethereum, Celo, and any equivalent

Now that you have an understanding of how Blockchain looks like and functions, explore more about the working of a Blockchain. This documentation helps you understand and build on Celo; for an interactive learning experience.

Understand smart contracts

On a blockchain, smart contracts are self-executing programs that run when certain conditions are satisfied. Most of the time, they are used to automate transaction performance so that everyone may know the outcome immediately without involving a third party or losing time.

You can create clients that communicate with the Ethereum Blockchain using Web3JS or build a full and lightweight framework for gaining access to the Ethereum Blockchain and its ecosystem on the ethers.js library.

Learn DApps (Web3 programming languages) – Solidity

Dapp stands for Decentralized Application and describes the programs constructed on top of blockchains. DApps can be created as a website or a mobile application because they are used in the majority of functional ways like any other software program. There are tutorials and introductions to Dapps in several well-known ecosystems, some of which include:

Build

Now that you have mastered Blockchain development, It's time to practice your Blockchain development skills with some great projects. Here are some resources that will help:

Web3 developer certification

The most important phase in the process of becoming a certified web3 specialist would be selecting a trustworthy certification. With trustworthy web3 credentials, you have a higher chance of landing a career or a high-paying position. Even though abilities are a requirement, a certificate raises your appeal.

Knowing which certification to get might be challenging, given the wide variety available. Ensure you obtain certification from a reputable educational organization in any desired web3 development area.

Web3 developer vs blockchain developer

Web3 developer vs blockchain developer

Image by rawpixel.com

The terms "web3 developer" and "blockchain developer" are frequently used interchangeably. Although they both play a part in the web3 platform, their jobs are distinct, they call for different skill sets, and their salaries vary.

As the name suggests, a Web3 developer develops blockchain-based applications. Web applications are made by web3 developers using the design and protocol of web3 architects. These programmers also oversee the stack that dApps run on and develop their front-end and back-end.

Applications built using the blockchain architecture and protocol are the responsibility of blockchain software developers. They make smart contracts, which are blockchain-based programs that execute automatically when certain circumstances are satisfied. There are two categories of blockchain developers:

  • Blockchain software developers
  • Core blockchain developers are in charge of creating the blockchain system's architecture, design, and security.

Web3 developer job description

Web3 developer job description entails the need for a job developer by the company, the expected duties you are to carry out, and the possible qualifications you are to have. In a web3 developer job description, some of the duties include

  • The company's public API and SDK will be designed, implemented, and supported by Web3 developers.
  • Requirements, wireframes, APIs, and SDK, should be designed, developed, supported, and maintained.
  • Come up with and assess ideas for new tools and technology
  • Help develop, test, and implement protocols
  • Assume responsibility for the creation and upkeep of the interface that connects smart contracts with the native web experience.
  • Make smart contracts for the issue, creation, and trading of financial instruments on the Ethereum-based blockchain.

Are web3 developers in demand?

There is a high demand for web3 developers in the market. Companies and startups looking to create decentralized products for the public require highly skilled professionals in DApp language to bring these products to life.

Why the Celo ecosystem is perfect for every developer

Celo is a layer one protocol and blockchain platform, and the Celo Mainnet is entirely separate from the Ethereum network. As both networks use the Ethereum Virtual Machine (EVM) to implement smart contract functionality, Celo and Ethereum are comparable in terms of programmability. Because of this resemblance, all programming languages, development tools, and standards geared toward the EVM apply to Celo and Ethereum.

With Celo, beginner Web3 developers can build for the 6 Billion smartphones on Earth. The ecosystem enables web3 developers to construct financial dApps that establish the foundations for everyone's success.

Every developer should use the Celo ecosystem because of its decentralized security. Because it is secure against hackers, it is prohibitively expensive for online criminals to hack a blockchain network.

Due to the Ethereum development ecosystem's maturity, many blockchain developers favor the Celo ecosystem. The ecosystem separates itself from the competition because of its wide variety of resources and development tools.

Conclusion

Congratulations on being one of the many finishing the tutorial. Getting into web3 development might initially look difficult, but it is an excellent career choice, especially for beginners and intermediates with little or no experience.

If you choose to go self-paced (that is, self-teaching), ensure you understand basic programming, read up on the blockchain, and understand smart contracts, for better understanding.

You can also join the Celo Developer community, where you can connect with many like-minds who will be willing to help guide you toward taking the right step in your web3 development journey.

What's Next?

For beginner and intermediate web3 developers, follow up with:

About the Author

Elijah Sorinola

Content Marketing Strategist for Blockchain, Cryptocurrency, and Web3 brands.

Reference

Go back

· 10 min read

header

How Much More Can Blockchain Grow As Regards Use Cases?

What else does blockchain technology have to offer after all the utilities we've seen in the past decade? If you're thinking along these lines, you're not alone. We've seen multiple applications in the years since blockchain technology was introduced. Some of these applications include money transfers, lending, voting, non-fungible tokens, and lots more. In this article, we go over many of the blockchain utilities we've seen and take a peek into what the future holds as it concerns blockchain utilities.

What is Blockchain?

The blockchain idea was created by a person or group using the pseudonym Satoshi Nakamoto. Blockchain is a digital public distributed ledger technology (DLT) for recording and tracking transactions. This immutable ledger is duplicated and distributed across computers that participate in the network. Blockchain follows the pattern shown below:

  • Transactions recorded as a "block" of data
  • The data blocks are linked to themselves in sequence, forming a "chain."
  • Each new block strengthens the verification of old ones hence forming the "blockchain."

The first blockchain source code was uploaded to SourceForge in 2008, allowing developers worldwide to work on this project. In 2009, its first application was launched as a cryptocurrency known as Bitcoin.

What Major Blockchain Applications and Use Cases Currently Exist?

Blockchain has been used for more than just payments, which Satoshi Nakamoto originally envisioned. Over the years since publishing the Bitcoin whitepaper, we've witnessed newer use cases. Let's look into current blockchain use cases:

Money Transfer

The original goal of the blockchain was to create a robust payment system not owned by anyone since Satoshi made Bitcoin a valuable asset that could be held or given away. This is still the most critical use of blockchains, as many blockchain protocols have cryptocurrency assets that support their ecosystems. In the same way, money can be saved in your bank account or physical wallet your digital wallet holds your crypto. It is encrypted and can only be opened with a digital signature. Some examples of cryptocurrencies today are Bitcoin, Ethereum, Binance Coin, and Ripple.

Smart Contracts

Smart contracts were the next generation in the blockchain space, and Ethereum was the first smart contract protocol running on blockchain technology. Nick Szabo first proposed the conceptThe concept was first proposed by Nick Szabo in 1994. As the name implies, smart contracts are computerized contracts that execute themselves once a certain condition is met. They are simply executed and run through a computer network once the agreement between the seller and buyer is confirmed. Smart contracts have opened up new opportunities for blockchain. Smart contract platforms include; Ethereum, Solana, Binance, and Cardano

Non-Fungible Tokens (NFTs)

Non-fungible tokens are unique tokens on the blockchain that can't be replicated. Since blockchain makes it impossible to make data copies outside the network, NFT is an application of blockchain technology that makes it possible to prove ownership and authenticity through uniqueness. Authenticity can be validated via blockchain in the form of NFTs. Think about personal IDs, real estate assets, tickets, and loads more getting converted to NFTs to make them unique and prove they are authentic. Right now, the most popular NFTs are digital arts, primarily used for profile pictures and held for their values, such as BAYC, Crypto punks, ENS, and others.

DeFi

Decentralized finance is among the biggest applications of blockchain and is only possible through smart contracts. Smart contracts can be programmed to redistribute digital assets with custom rules. Decentralized finance, to put it simply, takes the important parts of traditional finance while removing the middleman and replacing them with smart contracts in a decentralized environment. DeFi is a non-custodial financial system much different from banks. This means you don't have to rely on a third party to handle transactions. Aave, Chainlink, Uniswap, Ankr, and Compound are great examples of DeFi protocols.

Decentralized Autonomous Organization

DAOs are organizations built on the blockchain with rules encoded in a computer program. Any centralized government does not influence the organization's decisions. Power is distributed among the token holders, and voting power is based on how many tokens you hold. All the votes cast through DAOs are recorded on the blockchain and are publicly accessible to everyone. DAOs, as you might have guessed, are heavily based on smart contracts. DAOs are simply about bringing decentralized governance to the blockchain. Some top DAOs are; DAO Maker, BitDAO, Uniswap, 0x, Compound, Curve DAO, and Aave.

Some Big industries Blockchain Might be Disrupting in the Future

Blockchain applications are growing daily, and newer protocols are being developed. Even though many new applications are being developed, many are not game changers. Let's take a deep dive into the big use cases being worked on and how disruptive they can be:

Media

IP infringement is being fought with the help of metadata digitization of unique content on the blockchain. Enterprise Ethereum will allow artists and creators to store their IP on a time-logged, immutable ledger. The blockchain will also help ensure that artists get more for their talents. Intermediaries such as YouTube, Apple Music, Spotify, and others take a large portion of the gains in the media industries. Blockchain could make this possible if it became necessary to eliminate these intermediaries. Blockchain will use smart contracts to create a more transparent consumption-based system; this can be made possible through the automatic execution of microtransactions between creators and consumers. ConsenSys is a major player in this application. At the moment, the top blockchain use cases in media and advertising are "streamlined royalty payments," "peer-to-peer sales and content distribution," and "usage-based billing models."

Healthcare

Blockchain in healthcare is applicable in a wide range of ways, including but not limited to: management of the medicine and medical equipment supply chain, easy and secure transfer of patient medical records, and also to help healthcare researchers unlock genetic codes with greater ease. Blockchain's ability to keep records in a transparent, unchangeable, and decentralized ledger makes it a worthy technology for keeping medical data safe and secure. Genomics has great potential to improve human health, and blockchain makes that possibility more feasible. Imagine a marketplace of billions of genetic data points where individuals can encrypt their genetic information and sell it to scientists if they choose. Nebula Genomics, Blockpharma, Avaneer Health, Medicalchain, BurstIQ, and many others are using blockchain to solve problems in healthcare.

Supply chain management

One of the biggest challenges the supply chain faces is transparency. Another big challenge is system inefficiencies, which happen when vendors and suppliers cannot connect on who needs what, how, and when. From the big challenges supply chain management faces, it is easy to see how blockchain is a major solution. Blockchain technology allows the tracking of all transaction types more transparently and securely. With the blockchain in use, it will be easy for companies to track a product back to its source. Blockchains can record transactions on a product every time it changes hands. These records are made securely on a permanent, immutable ledger. With a shared blockchain, companies can do the following: track all shipments, synchronize their logistics data and automate payment. Green Track, ShipChain, Slync and IBM are among the blockchain protocols currently assisting global supply chains. Some big companies where blockchain is applied to supply chain management are; FedEx, DeBeers, Walmart, and PepsiCo.

Identity Management

Identity fraud remains a big problem today. According to AARP, in 2021, about 42 million people were hit by identity fraud, losing over \$52 billion. By storing personal IDs such as SSNs, birth certificates, birth dates, and more on the blockchain identity theft may be greatly reduced. This is because storing IDs on the blockchain makes them impossible to counterfeit or reproduce. Ligero, Civic, Evernym, and Ocular are some of the blockchain platforms built for identity security.

Manufacturing

The manufacturing sector is plagued by serious issues that continue to cause problems for the entire sector. These long-standing issues include the increasing number of players in its supply chain, its growing complexity, and the need to go digital while continuing to improve the system to stay profitable. Blockchain is a technology that can be applied to solve these main problems in the manufacturing sector. Immutability, decentralization, transparency, and smart contracts are major features of the blockchain that make it ideal for improving manufacturing. Some major use cases of blockchain in manufacturing include machine-led maintenance, ensuring the provenance of materials, preventing warranty fraud, simplifying and safeguarding quality check processes, and providing a sustainable supply chain. Protokol and IBM are among the blockchain protocols providing solutions to improve manufacturing.

Insurance

The insurance industry is highly valuable and well-established, but even a big industry like this has many problems, such as fraud, inefficiency, cyberattacks, and human errors. With the application of blockchain technology to insurance, it'll become possible to automate human paperwork processes, secure sensitive data, and track insurance claims. Blockchain's trustless systems and their public ledger will positively impact the insurance industry, like optimizing security, efficiency, and transparency. Some blockchain insurance protocols include IBM, Deloitte, ConsenSys, and Lemonade.

Transportation

Transportation is a critical industry that affects our daily lives both directly and indirectly. Global trade, commerce, and tourism are all strongly dependent on transportation. Considering how important this sector is, it is important to make the movement as efficient as possible. To make this possible, you must create and apply systems that can improve product traceability, remove inefficiencies, help cross-border management, and boost trust in the supply chain. Blockchain technology checks all these boxes, making it a perfect system to tackle many of these problems. Blockchain can be used to improve the flow of passengers, the efficiency of documents, the movement of goods across borders, the supply chain for the automotive industry, and to build trust. Flare, IBM, and Pixelplex are some of the main blockchain protocols changing the transportation industry.

Some More Areas we can Expect to see Blockchain Shine

Beyond all the key industries and areas mentioned already, there are some other areas blockchain can still be functional

  • Cloud storage can be employed while eliminating servers to store data on the cloud through blockchain. Storj is an example of a blockchain protocol with low cost and high speed. On Storj, users can share their storage space and earn while they do that.
  • Real Estate can be improved with blockchain technology. Asset owners can make their assets into NFTs and sell them on a marketplace. Less paperwork is needed in a process like this, and transactions can be handled well via smart contracts.
  • Statistics collection can be made decentralized and transparent using blockchain. Distributed ledger technology can be deployed while storing records and data from population census or voting. Smart contracts can be used to deploy the data live so everyone can see it. A system like this can build more trust and confidence.

Conclusion

Blockchain technology has been around for over ten years and can still be described as being in its infancy. The core technologies, like the consensus mechanisms, are getting a novel approach. However, this technology will play a significant role in various industries in the coming years. As digitization spreads quickly, people want systems that are open, safe, and not controlled by one person or group. All of this is possible thanks to distributed ledger technology (DLT) in the form of blockchain.

Go back

· 15 min read
Ishan Pathak

header

Introduction

As soon as the word Hackathon comes, I make sure I give attention. Let's start with answering what Hackathon is; on paper, it's just that you have a limited time, and you have to make a product that fulfills specific criteria by the organizers.

Now a question may arise, then why would I participate in Hackathon when I can make the product in my comfort zone and without any criteria or restrictions?

Well to answer that and many questions which may arise, I am here to make you aware of what potential this Hackathon has! And till the end of the article, make sure that you are ready.

Prerequisites​

You don’t need any prerequisites​ here, and that’s the best part of a hackathon you can start your journey in a Hackathon

Let's dive in now

Hackathon-For all the people around the community, no matter if you are a tech or a non-tech guy, it's like a festival, I am still amazed to know that a single event has a different meaning for each single people, it has a different opportunity for each single of us there, and it spares no one, no matter how much experience you have, there will always be something more and new

For a beginner:-It may be a starting kick that needs For an experienced master-It can be an opportunity to get introduced to new technologies and have hands-on and a superb platform to showcase his/her skills and yeah don’t forget the chances of winning too...

Let’s divide how a hackathon WILL be beneficial into three different parts(I am emphasizing WILL because no matter what, you surely will be beneficial in these three aspects)

  1. Experience
  2. Networking
  3. Vibes/Energy/Motivation

Experience

No matter how much knowledge you have, you are sure to get a different experience in Hackathons for sure, and For many attendees, after every Hackathon experience, they have a more explicit goal and a more straightforward path because at the end of the hackathon, you know what mistakes a person made and also how to rectify them and what more technologies are out there which he/she will be exploring after going back so it’s like the event is for a limited time but it’s after effect is for a much longer time, and this small yet impactful things will help you to grow as a person and as a developer too.

Networking

You have the best opportunities to meet like-minded people and the most unexpected people because you could never anticipate whom you will connect with. There can be a founder and CEO roaming around or any investor or anyone. Especially for TIER-2 and TIER-3 colleges, students are not fortunate enough to have one on one talks with them on campus or during placement cells too, here you will build a network and if the person is impressed by you and your personality impactful you don’t even dream of what wonders it can bring. It can also help you learn from others who may have different skill sets and experiences than you, which can help you grow as a person and a professional. Additionally, networking can open up opportunities for mentorship and guidance, which can be especially helpful for those who are just starting their careers. Finally, networking can help you build a support network of like-minded individuals who can provide encouragement and advice as you pursue your goals.

Vibes/Energy/Motivation

When everyone around you is DEVELOPING, most probably BUIDLING(web3 jargon) around you, then you have this different energy around you which motivates you also to build something, when you have all the like-minded people around its not only stack overflow helping you to solve your code its a whole community there to help you and also to guide you that how you can solve such problems and what can be done to avoid such problems in future and everyone around you is helpful, This is the vibe which I am talking about, you will learn more than any tutorial or course out there, everyone is there to compete with you for the same prizes in the same hackathon still people will help, and the same thing goes around so at the end you have much more in the knowledge bag of yours than anticipated, you don’t feel tired that easily there because there’s a different kind of adrenaline is running inside every one of us for that period. Around you anything anyone can motivate you, A junior to you who is building great projects, you are motivated by him/her, A senior to you is great at managing the whole team you are motivated by this.

The best and worst thing about the above-mentioned topics is same-You can’t share that with anyone

It's the experience that can’t be shared. You have to participate and make that extra effort to come out of your comfort zone, and everyone knows you can’t learn new things in your comfort zone.

Some of my personal experiences, which motivated me to write this article and share with as many people as possible, are shared in the section below.

You may think that hackathon starts, and end on particular exact dates, yes on paper, the event follows that timeline , But it’s not like that, the team formation starts before the starting date, and you meet and network with people during this time too, you will get to know which kind of projects are people thinking of building in the hackathon and how the procedure of making a product is different in a team to team. This can help you to be clear on how to go with your project and which things can help to improve yourself and your team.

If it's an offline hackathon, you will then book your travel and stay, and to make sure that the hackathon doesn’t cost you much, always try to book a stay together which will increase networking also. It will help in keeping your budget low also, and for this, you will then most probably join a group on Discord, Telegram, WhatsApp, or Twitter.

And in the group, everyone will be chatting about the hackathon topic and all, so the excitement and learning phase is started from that time only; just by this, the excitement will increase day by day, and it will help you in your hackathon.

I can go on and on about the advantages of the Hackathon, but I don’t want to bore you.So after all this, one last thing I will say is

" JUST GO "

You just have to make an effort for the first time, and then after that dopamine and Adrenaline mixture you will be addicted and will try not to miss any of such events.

Ok, so after this much, many questions can arise like:

  1. How to know which hackathons are happening where and which hackathons you can attend in a way that the hackathon won’t be a waste of your energy and other resources?
  2. How to ensure your application is approved(If it has any criteria like that)?
  3. How to increase the chances of winning?
  4. What to do in hackathons that can help you on a different level?

Answer to the above question, make an account on Twitter and explore the space of your field; follow the accounts which provide about such hackathons; first, it can be hard to know the accounts, but here is the Algorithm of Twitter helps you, will throw many accounts which you can follow after you start following the accounts on Twitter, Then it's like a flow you will be aware of what’s going around in the space.

Join the Discord servers, and I will take this space to tell you about the great hackathons organized by Celo; you can get the details of a hackathon on the Discord server (link to join a server-“PLEASE PASTE A PERMANENT DISCORD INVITE LINK”) and also there are other servers out there whose link you will get from folks like me and on Twitter bios and yeah the whole community is helpful, so everyone is so happy to help the beginners, I am here talking mostly about the Web3 world because according to me the major thing in web3 is the community which is trying to make this a better place for developers to build and come out off the localhost.

Find your niche, what kind of products you like and which product you would love to build, and look out for hackathons related to that, For eg, I was interested in blockchain technology, and I was not aware of anything not even Metamask or ERC-20 token and ERC-721 contract still I participated in one hackathon around the web3 projects (but yeah DISCLAIMER -I was already a frontend developer and UI/UX designer, so not like I am unaware of the coding world, but even you don’t know that still you can go and explore and after that event you will know what to do and how to get ahead) a clearer path for you. I started my journey around web3 like this only, I was in my first hackathon, Didn’t ship any project but after coming back I dived into space looked for a project and resources which can help me and In a month or so I was I was able to ship my first project as I was in the community I participated in my first online hackathon with the friends which I made in my first hackathon which I mentioned earlier, And we won too, And from that day I have not looked back.

So how to make sure your application gets selected for the Hackathon(if there are any criteria like that) Not many, but some hackathons can have this procedure of filling out an application, and they will have a thorough look at your application, and then they will decide to accept or reject you, If you are a beginner, then my advice is to not get too involved in such hackathons in the starting as the chances of getting selected is less. Some key points they look out for in the application - 1)How much you have contributed (How many projects of yours or in which you were involved are life)

  1. What are those projects?
  2. How active are you in developing?
  3. What is your experience in participating in hackathons?

The above things are a few key parameters that they use to judge your application, So make sure

  • Your application has a good amount of GOOD projects
  • You have your linked GitHub account, and that is too active, where they can see your projects
  • Make sure you tweet about them(Shh.. It’s a secret (I am not sure if it works or not, but you don’t have any loss in tweeting, so make an audience and make a tweet) )
  • Have some experience holding your profile tight in the competition
  • I participated in a few online hackathons and offline hackathons and won a few sponsor prizes and bounties so the hackathons and the projects shipped during that hackathons make my application stronger.

How to increase the chances of winning? (I hope you have not scrolled directly to this part, please don’t cheat and read it from the first line)

Find a team

  • Make sure you know your skill set and tech stack which you will be bringing with you to the table in any team
  • Keep in mind, a team that doesn’t make you feel pressured is better for you than a team that has a cool project. So make sure before joining a team that you wouldn’t exhaust yourself while working with them, because I have seen many that because of a mistake in selecting a team everyone suffers, if one chooses a team where they are getting that a little sweet spot which brings you out of your comfort zone which will help you and also a spot where you don’t feel alone or like they know much more than you and they are getting dragged because of you or vice-versa.
  • Make sure you like the concept of the project so you would be passionate to build this project.

Other things after getting into a team

  • Make sure you already know all the rules and other things which are set by the organizers
  • Make sure you don’t cheat
  • Make sure you look around at all other things which people are making around you to get an overview of what is a general category and try to make it different from that general category.

And the most important part

  • Keep yourself open for any challenge, anything can come up, and any error can be sticky so don’t lose hope.
  • Make sure you are open to acquiring more knowledge from your team members and other members too.
  • Make sure to roam around and connect to people around you.
  • Make sure you make connections that you can keep for a whole lifetime
  • Make sure that your team feels your impact and the same for everyone around you
  • Make sure you have your best time, and best experience and enjoy every moment

Now after doing all these steps, YOU ARE ALREADY A WINNER

Here are your prizes

  • You will have the best memories
  • A superb project on your portfolio
  • And motivation enough to keep on learning new technologies to improve your tech stack and also keep on building cool projects and to keep on collaborating which will improve your soft skills and also networking.

OK, OK some tips also for winning… IYKYK(Cling Cling)

  • Make sure your project has some unique features
  • Try to make a project which solves any current problem in the ecosystem a tool or any product which can be helpful
  • Make sure to have a robust backend and superb UI/UX and a well-integrated Frontend
  • Try to integrate as many sponsor prizes in a useful way in your project and add the functionalities(take this with a pinch of salt, just don’t add the sponsor requirement haphazardly and be greedy, make sure your project has its actual use case)
  • Have a team member in your team who can manage a team and attend as many workshops going around the event
  • So this team member will keep the flow of the project streamlined and many times workshops are of the sponsors only, many times you can get insider info, which can help you and your project and also you get mentorship from the speakers (they are super happy to help and answer your questions, so don’t be shy)
  • Having an experienced team helps

Now a crucial part WHAT NOT TO DO?

  • Don’t stay confused and don’t be shy to share any problem with your team, or this can harm you and your team, if you are having any problems share as soon as possible, I am sure enough they will understand and also help you, but if you don’t share beforehand and at the end, it comes out, then there can be a huge blow, so please avoid.
  • Make sure you don’t disrespect anyone on the team and be respectful to every team member.
  • Make sure you and all your team members don’t fail to have a supportive environment and you keep appreciating each other's work and contribution. It will help all the team members to keep motivated.

We have come to an end

“JUST MAKE SURE YOU MAKE YOUR EFFORT WORTHWHILE AND ENJOY THE FULLEST, LEARN THE FULLEST, INSPIRE, AND GET INSPIRED TO THE FULLEST”

Phew…, It was a long article, but I wanted to make sure that everything is covered in one article only, so you don’t have to click multiple links. In this one article, you will be educated enough to have great experience and exposure.

All the information which was thrown at you is what I have gathered by participating and talking to thousands of folks around me, so this information is validated and tested by many, in the context of hackathon participating, winning, exposure, and everything….

Conclusion

Its an event which can only be experienced and to is shared, so you have to go there, and as said that there are many things which you do beforehand which will make the experience of participating in a hackathon smoother, so just be open to new connections, opportunities , lessons and experience

Next steps

You dive into the space, make a Twitter account search for the folks around which you know that are active in the space, throwing some links towards you, you can start with

CeloOrg - https://twitter.com/celoOrg EthGlobal - https://twitter.com/ETHGlobal devfolio - https://twitter.com/devfolio

If you learn any technologies search for the docs, it will be helpful and keep on building projects, and for technical blogs,

Biased towards this - https://docs.celo.org/

Other sources where you will find good articles are (and I read)

  • medium.com
  • hashnode.com

Make sure to have a strong portfolio, keep adding your projects,keep everything neat on the GitHub

About the author

I am Ishan Pathak, I am a Frontend Developer, I am a UI/UX designer, I am still in college and also maintaining a community of my own to help all the students around me

GitHub - https://github.com/Ishanpathak1 Linkedln - https://www.linkedin.com/in/ishan-pathak-96852a1b7/

Go back

· 11 min read
Mukunde Brisa

header

Introduction

Blockchain technology has gained significant attention in recent years for its potential to revolutionize industries and change how we conduct transactions and exchange information. Blockchain technology can increase efficiency, reduce the risk of fraud, and give individuals and organizations greater control over their data.

Practitioners from various fields and sectors have participated in open debates on the disruptive potential of blockchain technology, and it has become more prevalent throughout the world of information and technology, hence being more than merely a platform for online payments. This article will provide an overview of Layer 1 blockchains, DeFi, ReFi, social impact, and more. We will also explore some of the key concepts of Celo’s layer 1 blockchain, as well as some of the potential and use cases associated with blockchain technology and the ecosystem. By the end of this article, you will have a better understanding of Celo's main concepts and how it’s transforming the digital financial industry.

Celo as a Layer 1 Blockchain

Celo Blockchain is a mobile-first blockchain that makes decentralized financial (DeFi) tools and services accessible to anyone with a mobile phone. Celo is a Layer 1 blockchain, a base blockchain or network where other scaling protocols within the ecosystem (layer 2 protocols) build their solutions to improve the scalability and transaction execution of the main chain.

A layer 1 blockchain, which makes up most of the blockchain, controls how scalable a project can be. The well-known examples of these layer 1s include Ethereum and Bitcoin.

Celo’s Consensus

Celo uses a proof of stake(POS) consensus algorithm. This consensus mechanism ensures the security of a distributed database(blockchain), validating entries and adding new blocks to a blockchain. It also determines which nodes become validators and how incentives are arranged to secure the network.

The Celo blockchain uses a Byzantine Fault Tolerant (BFT) consensus mechanism. This is a well-defined set of validator nodes that broadcast messages between themselves in a sequence of steps to reach a final agreement. The network can handle up to 1/3rd of the validators being offline, faulty, or malicious. A quorum of validators must agree for a decision to be considered final.

In BFT consensus, validators build blocks by running transactions and verifying the blocks proposed by each other. This allows the network to deliver higher transaction throughput.

Mobile Friendly and First

Celo is a mobile-first blockchain. It offers a fast light client protocol, a lightweight identity protocol that lets anyone on the network send crypto to phone numbers using the Attestation system. This feature lets you send payments to phone numbers even before the recipient has created the wallet.

With Web3 mainstream, Celo blockchain provides builders and developers a platform to build solutions to a market of over 6 billion smartphones in circulation, i.e., over 83% of the world’s population connected to the internet today. Celo being a mobile-first blockchain and having a family of a variety of native stable coins, e.g., cUSD, cEUR, cREAL, etc make cryptocurrencies user friendly, thereby enabling a new evolution of financial solutions accessible to mobile users in different communities hence a global financial ecosystem.

ReFi

Based on this regenerative economics theory, regenerative finance(ReFi) was developed. ReFi's close ties to DeFi (decentralized finance).

Refi is a form of using money as a tool to solve systematic problems for the good of the community. Refi values money and wealth that often comes at the expense of people and the planet. In Refi, profits are used to replenish our planet’s ecosystems so that they can continue to support life and address our pressing social issues of justice and inequity.

Numerous communities are forming in the ReFi sector with the same goal of utilizing the blockchain (distributed ledger technology) to address sustainability issues, including climate change, biodiversity loss, resource scarcity, and the underlying socio-economic and institutional structures that exacerbate these crises.

Refi is an emerging key player in innovative climate finance, bridging cryptocurrency, climate action, and aligning incentives to enable millions of people to take climate action.

In Refi, carbon offsetting has been a major use case with the goal of reaching net zero. This kind of technology is enabling the rapid scaling of climate action required, with everyone participating using their computers to make meaningful action and be financially rewarded for it.

Refi’s goal is to re-imagine and re-design money and the system it moves through.

Refi Projects within the Ecosystem

  • Wren. Wren is an approachable on-ramp to climate action. Wren is a platform for anyone who wants to tackle the climate crisis but isn’t sure where to start.

  • Climate Collective. Climate collective is an expanding coalition of companies building at the nexus of web3 and climate action.

  • Flow Carbon. Flow Carbon is accelerating decarbonization through the preservation and protection of earth’s natural ecosystems, which are among the most immediate and cost-effective carbon sinks while investing in longer-term carbon removal and reduction projects.

  • Moss. Moss is a climate tech with a common objective to combat climate change. Moss unites companies and people with the same goal. They simplify the offsetting process and guarantee the traceability and transparency of everything using blockchain technology.

  • Wasset. Wasset is a blockchain protocol that incentivizes conscious waste management actions. Their efforts are to keep our planet safe and strive to solve global waste management issues from the ground up.

Social Impact

Blockchain technology has the potential to significantly alter society in many ways. This kind of technology has promoted greater financial inclusion by providing financial services to underserved and unbanked communities and populations.

Blockchain technology has offered far-reaching possibilities for social impact in different sectors i.e., supply chain, digital identity, personal data protection, trust, and many more. Therefore, with blockchain technology’s ability to track, audit and access to publicly shared information, it’s possible to rebuild the gaps that have been established between centralized systems and the people they serve.

With the use of blockchain (trust-based and peer-to-peer systems), it has played a positive impact in different communities through the reduction of costs, eliminating borders, avoiding intermediaries, and providing UBI to the end users, thereby changing the world in a better way than we know it.

Blockchain use cases and examples for social impact

  • Universal Basic Income(UBI). Blockchain technology has an impact on the implementation and how UBI is distributed and managed. One way blockchain technology can be used in UBI systems is by creating a decentralized digital currency that can be distributed to individuals as part of their basic income. This digital currency could be securely stored and managed on a blockchain platform, allowing individuals to easily access and use their basic income funds. Impact Market, one of the projects in the Celo ecosystem, is a human empowerment protocol that provides accessible financial solutions and knowledge to empower underprivileged people all over the world, unlocking opportunities and human potential.

  • Digital identity. A digital identity is a unique set of identifying characteristics that an individual or entity can use to establish their online presence. Blockchain technology has replaced traditional systems with a highly trusted mechanism for managing identities. It can empower users to have greater control over their identity, and organizations can use the information only with customers’ consent, and no central entity would be able to compromise a consumer’s identity. Blockchain technology for digital identity can provide a high level of security, the ability to provide individuals and entities with greater control over their personal information additionally, blockchain-based digital identity systems can also provide greater convenience and efficiency.

  • Supply chain Management. By offering a safe and transparent mechanism to track the flow of goods and materials, blockchain technology has the potential to significantly enhance supply chain management. By using a decentralized and distributed ledger, all parties in a supply chain can access and update information in real-time, allowing for greater visibility and accountability. This can help reduce the risk of fraud, errors, and inefficiencies, and enable more efficient and effective supply chain management. Additionally, many of the procedures and transactions involved in supply chain management can be automated and streamlined through smart contracts on a blockchain platform.

  • Data Protection. Numerous approaches have been put in place using blockchain technology to enhance data security, for example, offering a high level of security for confidential data since it uses cryptography and decentralized networks to secure that kind of data. By doing so, malicious activities like tampering and illegal access to data can be reduced. Blockchain technology can replace traditional systems with a highly trusted mechanism for managing identities. It can empower users to have greater control over their own identity. Organizations can use the information only with customers’ consent. Blockchain technology can offer practical tools and capabilities for managing and protecting sensitive data.

DeFi

DeFi (decentralized finance) is the use of blockchain technology and cryptocurrency to create decentralized financial instruments and applications. DeFi applications are built on top of blockchain networks and do not rely on traditional financial institutions for their operations.

DeFi has the potential to disrupt the financial industry by providing users with access to financial services that are more transparent, secure, and accessible than those offered by traditional financial institutions. DeFi applications are able to lend, borrow, stake, save, pay and accept and trade a variety of cryptocurrencies and stablecoins, and predict markets.

DeFi has challenged the traditional banking and financial solutions by eliminating service fee charges, third parties and central authorities or institutions. In this case, DeFi users can hold their assets or money in a secure digital wallet, and can trade their assets in a faster way with an internet connection.

Why DeFi?

Defi has been increasingly utilized in different communities, and this has replaced human or institutional trust with blockchain technology, paperwork with smart contracts, third parties with open-source code, and public ledgers. In centralized finance, becoming a market maker needs large capital of income hence being unbalanced for everyone. Therefore, this is dominated by large institutions providing liquidity and exchange or trading assets. However, DeFi solves this problem by allowing anyone with low capital or crypto assets to become a liquidity provider to certain pools and earn yields automatically. Examples of DeFi systems include Uniswap, Ubeswap, Moola Market, Revo, e.t.c

In DeFi, anyone can trade their assets without the need for KYC, credit score to represent the credit worth of an individual, and borrow against crypto collateral. Additionally, DeFi aims at providing crypto loans without trusting any third parties and this is executed by smart contracts on the blockchain.

Importance of DeFi

  • DeFi solutions are better, faster, cheaper, and more trustful compared to today’s financial services. The best example use case in the celo ecosystem is Valora App

  • Security and Transparency for everyone on the blockchain. You don't have to "open" an account or submit any information. By making a wallet, you can simply gain access.

  • Accessibility for financial solutions is easy. Anyone with an internet connection can access DeFi platforms and make transactions without any restrictions and provision of KYC documents compared to the traditional banking system.

  • Low fees and better interest rates that facilitate direct transactional negotiations between two parties using DeFi networks.

Conclusion

Blockchain technology has the power to transform different sectors of the economy and extremely alter how we transact and share information. It has the capacity to boost productivity, lower the risk of fraud, and give people and organizations more control over their data by offering a safe and open platform for recording and verifying transactions.

The future of blockchain technology looks good, and it will be interesting to see how it continues to develop and be adopted in the upcoming years, even though the technology is still in its early phases and some issues need to be resolved.

Celo believes in a future where everyone can prosper and is on a mission to build a financial system that creates the conditions for prosperity for everyone.

About the Author

A Software Developer, writer, community educator, and Country Ambassador at Celo Foundation. Connect with me on Twitter, and LinkedIn

References

Go back

· 12 min read
Isaac Jesse

header

Introduction

Since the bubbling part of the Web3-learning stream features more about tooling than writing code, many aspiring web3 developers often are exposed to boilerplate code where most of the things happening are abstracted. Picking the right choice of tools and knowing how to use them effectively will give you a better experience as a web3 developer and increase your efficiency. This is one of the goals of Celo as a platform.

Prerequisites

This tutorial exposes you to Hardhat (basic setup and configuration) as one of the many tools you need to successfully deploy smart programs on Celo. You need to be familiar with the following:

  • Prior knowledge of Javascript programming language.
  • Familiar with using the command line.
  • Foundational programming know-how.

If you need some headstarts, there are a couple of tutorials on Javascript documentation that prepare your way.

Requirements

To get started, you will need to have the following technologies installed to make the journey smooth:

  • Code Editor. To follow along with me, I recommend that you install Visual Studio Code.
  • Nodejs version 12.0.1 or later . With Nodejs, you have access to Node Package Manager - NPM or Yarn .
  • Download and install Git bash, and a tutorial to help you get started.

Please note that this tutorial will not cover smart contracts or frontend code.

Basic Hardhat Configuration

What is Hardhat?

As defined on the official website, Hardhat is a development environment for Ethereum software. It consists of different components for editing, compiling, debugging and deploying your smart contracts and dApps, all of which work together to create a complete development environment.

Basically, Hardhat was built to target blockchain platforms that are compatible with Ethereum Virtual Machine - EVM, of which Celo happens to be one. Its flexibility of use and extendability makes it one of a kind. Hardhat potentially allows the installation of plugins, and it can even be configured to use other competitive tools, such as the Truffle framework. Let’s do a basic Hardhat installation and set up; to automate connection to Celo networks. As a reminder, you should have the aforementioned prerequisites set up before attempting this section.

Open up a git bash terminal and the system terminal side by side. We don’t need two command lines, but I want to show you a common challenge most web3 developers often encounter and a simple hack that saves you the headache.

image

Make a new directory in the "git bash" terminal for this tutorial. And name it celo-hardhat-example .

Run:

mkdir celo-hardhat-example && cd celo-hardhat-example

These simple commands create a new project folder with the name tag “celo-hardhat-example” and navigate into it. As one of the git bash features, it allows nesting commands by using the && operator.

image

Still in the project directory, run: "yarn add hardhat" or "npm install hardhat", whichever package manager you prefer. Be sure to have an internet connection as the command downloads hardhat set-up scripts in the project’s root directory. You may experience delays with Git bash as sometimes it takes longer to install hardhat successfully. If this is the case, switch to using the system’s command prompt or that of VSCode but split the commands instead by removing the “&&” operator. After that, run:

npm install --save-dev hardhat

Here, we are installing the Hardhat setup script as a dependency. When the installation is complete, we will create an instance of a hardhat boilerplate project. To do this, run:

npx hardhat

This command initializes a new instance of the Hardhat development environment. Note: If you run 'npx hardhat' using Bash CLI, you get a weird error like this.

image

This is a known compatibility issue with Git bash to create an instance of hardhat. To solve it, simply navigate to the project’s folder in a new terminal other than Git bash (one you opened earlier), run the same command in the command prompt or VSCode terminal, and “Viola” works fine.

image

A warm display showing installation success and a dialogue section will pop up in the terminal asking for your preferences. Select Javascript as the preferred language (for this tutorial) by clicking “Enter” on your keyboard. Next, you will be asked to install nomiclabs tools. There are a couple of dependencies/packages we need for our project. They’re compressed in “@nomicfoundation/hardhat-toolbox” so you do not have to download them separately such as “@nomiclabs/hardhat-waffle”, “@etherproject” plus a few others. Watch out for it in the terminal. Copy-paste it back to the terminal and run it. In a few minutes, the installation should be complete. Open the boilerplate code from the current CLI. Run "code ." (i.e code space dot).

npm install --save-dev "hardhat@^2.12.2" "@nomicfoundation/hardhat-toolbox@^2.0.0"

If all goes well, Your project folder/file structure should look like this:

  • Celo-hardhat-example (Project/root directory)
  • contracts (folder)
  • scripts (folder)
  • test (folder)
  • .gitIgnore (file)
  • hardhat.config.js (file)
  • package.json (file)
  • README.md (file)

Let’s examine the structure and how we can configure it to make the best use of them.

contracts:

This folder contains smart contract files written in solidity. When you invoke hardhat to compile your contracts i.e, "npx hardhat compile", The instruction is passed to the default solidity compiler - “solc” to execute compilation instruction on every file with ".sol" extension inside the contacts folder. In other words, contracts are an array of solidity files. You can override the compiler version by explicitly defining the version of "solc" that will be used to compile all of the solidity files by explicitly speecifying a preferred list of "solc" versions in the "hardhatconfig.js". Don't worry much about this. I will show you as we progress.

As a good practice, you could separate concerns among the different ".sol" files by filtering them into groups.

Example: Under the contract folder, you could have:

  • contracts
  • interfaces
  • libraries
  • utilities

Let’s take a look at the example contract (Lock.sol) under the contracts folder. The contract is written for example purposes. So you should not try to deploy to production. The first thing we want to do is compile the contract.

npx hardhat compile

An artifact folder is created that contains the compile contracts from which we can fetch the contract’s JSONInterface i.e ABI and other information.

scripts:

This folder contains Javascript files used for special tasks such as deployments. “scripts/deploy.js” is a deployment file that fetches and deploy compiled contracts from the artifacts that were generated when npx hardhat compile was run. To actively run any ".js" file under the scripts, for example, “deploy.js”, use the command in the format:

npx hardhat run scripts/deploy.js

If you have files other than "deploy.js" and want to specifically point to it, you only need to substitute “deploy.js” for it.

Let’s try to deploy our Lock.sol contract to the Celo testnet. We will use the same command except for additional arguments to show we want to deploy to a specific network.

npx hardhat run scripts/deploy.js –network alfajores

The above command starts by invoking node package manager - npm, which goes into the node_modules (a folder containing all of the dependencies we need to run the program successfully), looks for hardhat, checks for “run” in its command list, invoke it on “deploy.js” file and instruct hardhat to deploy the outcome of the file to the selected network “alfajores” which is Celo testnet.

image

Note: Hardhat will always perform a new compilation instruction if changes to previously compiled contract (s) exist. This is done using the cache file that will be generated soon as hardhat command is invoked. To deploy to Celo mainnet, we point the command to Celo as in:

npx hardhat run scripts/deploy.js –network celo

Alternatively, you may need to first deploy your contracts locally before sending it to a live network. This enables you to test extensively, debug and catch potential errors ahead of time. Hardhat provides you with two hardhat-based network options:

An In-memory instance of Hardhat Network created by default on start-up. When you run “npx hardhat deploy” without using the “--network” flag, the in-memory network is used.

The second option is a standalone hardhat network, that allows external clients, such as web3 wallets e.g. Metamask, to connect to it. To use this option, you have to run it as a node.

npx hardhat node

image

It uses a JSON RPC Websocket server that runs on port http://127.0.0.1:8545. A set of pre-funded accounts is generated, and you can connect external clients like Metamask. In the following tutorial, we will learn how to do that. To deploy to the server, run:

npx hardhat run scripts/deploy.js --network localhost

image

test:

As the name implies, the test holds all of the test files we have written for our smart programs. To run test files, we invoke the command:

npx hardhat test

To run a specific test file, use: npx hardhat test/somefileName.js where ‘somefileName’ is the name of the target file.

hardhat.config.js:

This is the heart of hardhat which connect and serve every other part. From smart contract compilation to deployment to testing, Hardhat manages the processes by injecting some variables globally via the hardhat.config.js. It allows us to define however we want to interact with our DApp. Let’s set up our configuration to use either Celo testnet or mainnet each time we run designated commands.

The network parameters we will use are defined in Celo’s documentation.

Hardhat config file is a module that exports a JSON object with which hardhat exposes an object called networks - a JSON object that contains network information. Since we could connect to Celo’s testnet or mainnet, let’s populate the network field. Copy the following and replace the module.exports:

  /** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.17",
networks: {
localhost: {
url: "http://127.0.0.1:8545",
accounts: {
mnemonic: DEVCHAIN_MNEMONIC,
},
},
alfajores: {
url: "https://alfajores-forno.celo-testnet.org",
accounts: [`${process.env.PRIVATE_KEY}`],
chainId: 44787,
},
celo: {
url: "https://forno.celo.org",
accounts: [`${process.env.PRIVATE_KEY}`],
chainId: 42220,
},
solidity: {
version: "0.8.9",
settings: {
optimizer: {
enabled: true,
runs: 200
},
}
},

From the image, we defined just after the network parameter a configuration for the solidity compiler. Let’s understand what this means.

  • version: Defines the compiler version that should be used for compiling solidity files.

  • settings/optimizer/enabled: If enabled, it optimizes our contract by pruning unnecessary and unused code to reduce contract size. If the contract size exceeds a certain range, their deployment may be rejected by the target network.

.gitignore:

Some folders are too big to commit to the repository. An example of such is the “node_modules” that houses all of our dependencies. Another example is the .env that holds sentitive information such as the environment variables we do not wish to commit to source control.

package.json:

This serves as the heart of most projects that use node js. It records the functional attributes of a project that npm uses to install dependencies, run scripts, and identify the entry point of our application.

README.md:

Use this file to describe your project : how to run and test it.

Common Mistakes Or Errors You Might likely Encounter

Invalid account Error

image

Most errors like this are triggered as a result of one or more issues in the “hardhat.config.js”. The message complains of an invalid account because hardhat could not find any private key from which to generate an account and send a transaction. If you have defined something like “process.env.PRIVATE_KEY” under the “account” field in the network object, you will need to provide where to find this variable. Such variables are sensitive and should be kept private as much as possible. Often, we use a .env file to manage it. Create a .env file in the project directory, and add the private key

Solution

This should keep the error away.

image

Invalid value undefined for HardhatConfig.networks.solidity.url

image

This error is prompted when you add a solidity object as part of network field object. The terminating curly brace for the networks was after the solidity object. From the image below, the terminating curly brace was omitted and hardhat sees “solidity” as part of the network hence it expects that you include a URL which is an expected format for network objects.

image

Solution

Simply terminate the network object before defining a solidity object. Add closing curly brace between the network object and the solidity object.

Connection timeout

When you are not connected to the network or your network is bad, you get errors like below. All you need is ensure you are connected to the internet when trying to deploy to the testnet or mainnet.

image

Conclusion

We have learned:

  • How to start a new hardhat project.
  • How each of the files and folders work, their uses and how to configure them to match our needs.
  • We have also gained an understanding of how things work under the hood.
  • And lastly, we learned about few errors or mistakes that might likely arise during development.

What next?

I hope that you will try this on your own. Create a new project. Try it several times and you will get used to it. As soon as you understand how things work, you will increase in speed and knowledge of web3 development.

This is foundational knowledge you need to work with hardhat as a Celo developer. In my next tutorial, I will show you more advanced interesting stuff you can do while developing DApps on Celo.

Isaac Jesse , aka Bobelr is a smart contract/Web3 developer. He has been in the field since 2018, worked as an ambassador with several projects like Algorand and so on as content producer. He has also contributed to Web3 projects as a developer.

References