# The Kickoff

By [Yajas Sardana](https://paragraph.com/@yajas-sardana) · 2023-02-10

---

This week marked the beginning of my journey as an EthIndia fellow. The tasks were clear: attend all sessions, engage on discord, and complete the first two speed runs. Being new to web3, I was more than excited to begin my journey in this new world, and I think it would be safe to say that one week down the line, I’m 2x more hyped.

The Speedrun challenges
-----------------------

Coming to this weeks challenges, I shall be mentioning points about them individually. These points cover the challenges faced and the learnings gained.

**Challenge 0 - NFT App**

*   Understood the need for **scaffold-eth** and the techstack which comprises it.
    
*   Learnt about burner wallets, their need and their usage.
    
*   Read up on the various testnets, and used goerli in our case.
    
*   Understood the concept of faucets, failed to find good free faucets with multiple transaction support, and ended up using a PoW goerliETH faucet for my metamask wallet.
    
*   Created the static build of the dApp and learnt how to deploy it on surge.
    
*   Looked the deployed contract up on goerli etherscan to verify its successful deployment.
    

**Challenge 1 - Decentralized staking app**

Being new to solidity, this challenge offered a steep climb with a lot of reading, testing and learning. I tried a lot of different functions, and debugged tons of errors to finally get the logic working.

*   Learnt the concept of “payable”, and `receive` and `fallback` functions.`payble` signifies that a function can receive eth.
    
*   Explored the `msg` object, and its attributes like msg.eth and msg.value.
    
*   Learnt about the `block` object and block.timestamp.
    
*   Understood the mechanism to transfer eth from one contract to another using `call` method.
    
*   Learnt about and used `mappings`, `events` and `modifiers` in solidity to achieve the requirements mentioned in the problem statement of the challenge.
    
*   Wrote all the possible staking and function call conditions, and edgecases on a whiteboard and tried to come up with modifiers to handle each possible edgecase, including the sidequests.
    

**A common bug discovered:**

Commands like `yarn deploy` and `yarn build` often give an error saying: `error:0308010C:digital envelope routines::unsupported`

Solution for the same is to execute the following command in the shell: `export NODE_OPTIONS=--openssl-legacy-provider`

Experience
----------

Being new to web3 and solidity, the first task for me was to understand the technical jargon like faucets. As the challenge-0 was mainly just a follow along, I did not face much difficulty in solving the same and could follow along smoothly for the most part.

The real climb and learning took place in challenge-1, as the basics of solidity were a prerequisite to it. I approached the challenge one sub-task at a time, and read a lot of blogs and documentation on concepts like: `payable, receive and fallback, modifiers, msg, block, events, and call.`

I used the `debug UI` to test my code after each step, and kept solving bugs on the go.

After about a day of coding, fixing errors, and handling edge cases, I jumped out of the chair when on running `yarn test` , all the test cases **passed** one go.

![](https://storage.googleapis.com/papyrus_images/5448e8ff084af8b36d5f17d819919875aa44f801b3cffbfa42f41c0d5a80cc72.png)

As a learner, the nature of challenge-1 threw me in the deep end, urged me to figure things out on my own, and thus ultimately ended up being a great hands-on learning experience.

I’m absolutely looking forward to the next 7 weeks of learning and shipping!

---

*Originally published on [Yajas Sardana](https://paragraph.com/@yajas-sardana/the-kickoff)*
