Saravanan Vijayakumaran

A 3-Hour Lab on Ethereum Contract Development

tldr; I prepared a 3-hour lab session on Ethereum smart contract development. You can view the lab content here:


I am associated with the recently established Trust Lab at IIT Bombay. In December 2022, the lab organized a Winter School on Digital Trust in association with ACM India. I was tasked with delivering some lectures on cryptocurrencies and conducting a lab on smart contract development. This post is about the design and conduct of the lab. The lecture videos are available at the following links.

Lab Content

The lab slot was 3 hours long. Most of the winter school attendees were 3rd year CS undergraduates from all over India. No prior exposure to smart contract development was assumed of them.

When designing the lab content, I made the following choices:

Lab Execution

The students were sent a link to the lab manual and asked to work through it on their laptops. After successfully completing a testnet contract deployment, they were asked to enter the Etherscan link to the contract into a Google form.

Blockchain Lab Contract Submission Form

This form enabled real-time feedback on the progress of the students. It also illustrates the advantage of deploying the contracts on a public testnet. The instructor can check the contract deployments without looking into each student's laptop.


The venue was the new Collaborative Classroom in the EE department of IIT Bombay. It has hexagonal tables each seating upto six students. The layout allowed the TAs and me to walk around debugging the issues faced by the students.

Blockchain Lab Session in Collaborative Classroom

Alchemy Faucet Issue

One unexpected issue was that the Alchemy faucet failed to give some students Goerli ether even though they had created an Alchemy account. This was fixed by having these students access the faucet website using their mobile phone internet, and not through the IIT Bombay network.

Maybe Alchemy had implemented IP address-based rate limiting. All the student requests could have appeared to be coming from the small set of IIT Bombay public IP addresses.


I want to thank the TAs — Varun Thakore, Mayank Taneja, Kaartik Bhushan, Darshit Gandhi — who helped conduct this lab session. The students enjoyed it (see smiles here).