Ultimate Ethereum Hackathon Survival Guide for 2023
Tags: hackathon, solidity, dapp
Published: 2023-01-27 09:58:39

### Ultimate Ethereum Hackathon Survival Guide for 2023

Everything you need to know for your next Ethereum hackathon: essential developer tools, expert setup tips, and support resources to help you build a winning app.

Full Disclosure: This content was produced with [Anthony Albertorio](https://medium.com/u/d582c6f9e3b), [Robbie](https://twitter.com/Ro_bbieK) and [Coogan Brennan](https://medium.com/u/94b038bdee85) back in the days at [ConsenSys](https://medium.com/u/6c7078bf7b01) with the goal of preparing hackers for any ETHGlobal hackathon or any hackathon out there! You can find the main blog on the [ConsenSys](https://medium.com/u/6c7078bf7b01) page [here](https://consensys.net/developers/ultimate-hackathon-survival-guide/) : Keep 🎸 and buidling ⬇️

### Benefits of Going to an Ethereum Hackathon

#### What’s this guide about?

This guide will run through training resources, development tools, and best practices to help you plan and win your next web3 hackathon.

Whether you are a beginner or seasoned professional, this guide can be helpful in the hackathon process. Use this guide to learn how to get started with web3 development quickly. Then use the [Crash Course: How to Organize a Hackathon Team](https://tesla809.medium.com/draft-crash-course-how-to-organize-a-hackathon-team-29b221c23905) guide to learn how to build and finish hackathon projects with ease.

Together these guides increase your team’s probability of competition and success. Plan the work, and work the plan.

Happy BUIDLing!

#### What are Hackathons?

Hackathons are events where teams compete under a deadline to create a minimum viable product that solves a real-world issue. They are usually hosted on weekends and last around 48 hours. After COVID-19, most are hosted online and last between one to four weeks. These types of events allow you to participate from anywhere in the world!

Ethereum hackathons are excellent opportunities to:

-   make new friends and connections worldwide
-   get hands-on development training
-   stay up to date with the latest tools
-   develop your web3 portfolio outside of work
-   learn new technologies in a bounded period
-   find a job from companies looking to hire
-   gain interest from venture capitalists and investors for your startup or any future startups
-   develop a name for yourself
-   get exclusive swag
-   start a startup
-   build cool stuff!

By expanding your network of developer friends, you can find referrals to unlisted opportunities, find possible co-workers in a startup, create a startup, or have cool people to talk about crypto. So whether you’re competing virtually or in the real world, hackathons can provide you with a place to go deeper into the rabbit hole that is web3.

Currently, the gold standards for web3 hackathons are those hosted by [EthGlobal](https://ethglobal.com/) and [Gitcoin](https://gitcoin.co/hackathon-list/). Both provide a [massive amount of training](https://www.youtube.com/c/ETHGlobal/playlists) and hands-on experience. Sign up for EthGlobal’s [Youtube channel](https://www.youtube.com/c/ETHGlobal), browse the history of presentations from past events, and gain inspiration from [projects of past events](https://showcase.ethglobal.com/).

The Ethereum community is evolving and growing quickly! By joining and participating in hackathons you can rest assured that you will stay up to date and at the cutting edge.

The fastest way to a career in web3 is through participating in a hackathon and finding friends at [your local Ethereum meetup](https://www.meetup.com/pro/BUIDL/).

> Hackathons are for everyone!

Hackathons offer a place to learn new technologies with others in an applied manner. Do not get caught up with “impostor syndrome” and feel like you are not good enough to participate. Hackathons are places to learn and grow!

> What is imposter syndrome?

Imposter syndrome is when a person feels like they are not adequate to participate in an activity or organization. No matter where you are skill wise, you can start today!

No matter where you are skill wise, you can start today!

> Steps to a successful hack

![Steps to a successful hack](https://cdn-images-1.medium.com/max/720/1*dpqhduYYz3EZSuLkZNZD4A.png)

#### Inspiration from Past Winners

Here’s some inspiration before you hit the command line. For a larger list of past participants see the [ETHGlobal showcase](https://showcase.ethglobal.com/) and [Gitcoin Hackathon](https://gitcoin.co/hackathon-list/).

-   [SwapForum](https://github.com/viraja1/swap_forum) — a bulletin board for trading that integrates with the AirSwap Trader widget.
-   [2C](https://showcase.ethglobal.com/hackfs2021/2c-%F0%9F%91%9B-the-data-wallet-%F0%9F%A5%82-byof-marketplace) — The Data Wallet hosts social graphs of trusted people, so that any dApp can load data curated by specific communities
-   [Loop](https://showcase.ethglobal.com/web3jam/loop) — A platform where people can support their favorite creators. To support creators they stake some amount in the creator’s pool, this complete amount can be withdrawn and creators get the interest generated!
-   [Tx.Drip](https://showcase.ethglobal.com/unicode/tx-drip) — It is a 3D visualization and comparison of the swaps occurring across the three services on Uniswap.
-   [RhadaPay](https://showcase.ethglobal.com/hackfs2021/rhadapay) — Rhada is pioneering ‘Event Driven Payments’. We are building a service for DApp developers to link payment streams to real world events.
-   [Enable](https://github.com/enabledao/enable) — a peer-to-peer stablecoin credit marketplace that received additional funding through a ConsenSys Labs grant.
-   [gDai](https://github.com/CryptoManiacsZone/gDAI.io) — enables gasless DAI transfers by using compound interest on DAI to pay for gas.
-   [Winners of the Ethereal Blocks Hackathon](https://gitcoin.co/blog/ethereal-blocks-retro-sponsors-winners-and-more/)
-   [Winners of the Road to DevCon Hackathon](https://gitcoin.co/blog/the-road-from-devcon-hackathon-retro/)

Learn how to win a hackathon from the [Crash Course: How to Organize a Hackathon Team](https://tesla809.medium.com/draft-crash-course-how-to-organize-a-hackathon-team-29b221c23905) guide.

If you are looking to get inspired with projects from the ecosystem, check out [Rabbithole](https://rabbithole.gg/). RabbitHole’s mission is to create tools to attract new users and stakeholders for a project’s community. It allows projects to distribute tokens to users through proof-of-use, use the product and earn tokens.

### Learning Web3

If you have time to prepare before the hackathon, go through these resources to learn how to build your first sample decentralized applications (DApps).

This section focuses on helping you learn about web3 and developing DApps on Ethereum based networks.

#### Overview of a DApp

DApps are like regular applications, except they leverage blockchain-based smart contracts as part of their back-end logic. Like traditional legal contracts, smart contracts are useful for social collaboration. Because they are on impartial blockchains, Smart contracts can create networks of cooperation towards a common goal.

A DApp’s stack is similar to a regular full-stack application. However, a key distinction is that DApps leverage smart contracts and contain hooks for interacting with them via a wallet.

If you come from the web2 world, you will most likely focus on:

-   how to use wallet APIs,
-   use frameworks to write and manage the life cycle of smart contracts,
-   learn Solidity securely,
-   understand the general architecture of a blockchain network.
-   you will need to develop an intuition of what applications are best suited for a blockchain and which are not on the meta-level.

The overwhelming majority of a DApp is front-end code, followed by state management, then large amounts of testing, and finally smart contracts. Although Solidity is the smallest amount of code, it requires the most attention due to its security implications. In production, smart contracts could handle billions of dollars. However, getting them to work on a test network is fine enough for a hackathon.

#### DApp overview:

-   Optional Theming library (Chakra, React Bootstrap, etc.)
-   MetaMask API / Web-3-react (Wallet API and hooks to interact with smart contracts)
-   Optional Front End Library for web3 UX/UI (Drizzle, web3)
-   Library to interact with the Ethereum Blockchain (Web3js or EthersJS)
-   Front End Library (React, VueJS, VanillaJS / jQuery)
-   Testing Library (Jest, Mocha & ChaiJS)
-   Solidity

Zooming into the Solidity code, there are various dependencies, namely the smart contract development framework and secure, audited libraries to provide your contract’s base.

#### Solidity:

-   Actual Solidity Code
-   Truffle / Hardhat / Forge / Brownie (smart contract development framework)
-   OpenZeppelin (The gold standard library of secure, audited contracts)
-   Solc (Solidity compiler)
-   Solidity syntax highlighting for code editor
-   Scribble, a runtime verification tool and domain specific language to reliably test assertions. This is optional for hackathons. But increasingly necessary for production level projects. Go beyond testing your code! Fuzz your code!

![A sample DApp file structure with React and Truffle
](https://cdn-images-1.medium.com/max/720/1*p9BR21Agbno3v9O71VMdZg.png)

A sample DApp file structure with React and Truffle

First you set up the Truffle smart contract framework. This sets up the contracts portion. Then inside of that root directory you will set up your User interface with React or your favorite front end library.

A barebones sample setup code would be to run in the command line:

mkdir your-project  
cd your-project  
truffle init  
npx create-react-app src

Note: you can use [web3](https://www.npmjs.com/package/web3) or [ethers](https://www.npmjs.com/package/ethers).

yarn add web3-react @truffle/hdwallet-provider dotenv @openzeppelin/contracts web3-react web3

Or

yarn add web3-react @truffle/hdwallet-provider dotenv @openzeppelin/contracts web3-react ethers

Note: depending on your project, you may want to have client side package.json in your src/ folder or at the root. Either would work.

Then you would add the .gitignore for Node projects.  
touch .gitignore

#### Note on dependencies:

[@truffle/hdwallet-provider](https://www.npmjs.com/package/@truffle/hdwallet-provider) is necessary to connect your DApp to a what is basically a headless wallet.

[web3-react](https://www.npmjs.com/package/@web3-react/injected-connector) provides convenient methods to connect to web3 easily. [wagmi](https://www.npmjs.com/package/wagmi) is another library with similar convenience functionality. See their [docs](https://wagmi-xyz.vercel.app/).

For another method to set up a DApp, check out [Scaffold-ETH](http://scaffoldeth.io/) by [Austin Griffith](https://austingriffith.com/). You can also get great DApps examples with [BuidlGuidl](https://buidlguidl.com/).

For a full fledged project check out. 0xSparky’s ConsenSys Academy project called [Spread](https://github.com/dinadeljanin/sprd), an options betting platform.

Although it is not a hackathon project, it gives a great example of how React, state management, Solidity, and all the pieces interact cohesively.

See a cool repo? Give it a Github star!

### Web3 Development Basics

If you have a web3 background, you get up to speed on the entire ConsenSys stack to create a DApp. You can use these tools all together or swap them out for another later on.

How can I understand blockchains in a quick and hands on manner?  
[Andres Brownworth](https://andersbrownworth.com/blockchain/) — Use these Javascript demos to understand what is a hash, blockchain, blockchain network, and how tokens are created.

> What is a blockchain and Ethereum?

[Truffle Ethereum Overview](https://trufflesuite.com/guides/ethereum-overview/?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website&__hstc=148571112.27c191377f01ae58b2e09a998d9ef184.1625763718312.1641321275773.1641330012952.101&__hssc=148571112.1.1641330012952&__hsfp=3076257690?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website) — This is a high-level overview covering Blockchain basics and how the Ethereum blockchain works.

> How do I create my first DApp?

[Truffle Pet Shop](https://trufflesuite.com/tutorial/index.html?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website&__hstc=148571112.27c191377f01ae58b2e09a998d9ef184.1625763718312.1641321275773.1641330012952.101&__hssc=148571112.1.1641330012952&__hsfp=3076257690?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website) — This tutorial will take you through the process of building your first Dapp, an adoption tracking system for a pet shop!

> How do I add MetaMask to a DApp?

[Create a Simple Dapp](https://docs.metamask.io/guide/create-dapp.html#project-setup?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website) — We will be building a simple DApp using the MetaMask APIs.

> How do I connect and deploy a DApp to the Ethereum-based network?

[Infura getting started](https://blog.infura.io/getting-started-with-infura-28e41844cc89/?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website&__hstc=148571112.27c191377f01ae58b2e09a998d9ef184.1625763718312.1641321275773.1641330012952.101&__hssc=148571112.1.1641330012952&__hsfp=3076257690?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website) — A step-by-step tutorial to help you get set-up with Infura and start using the Infura Ethereum API.

> How do I configure my credentials prior to deploying my DApp?

[Infura Dapp basic security](https://blog.infura.io/how-to-use-dotenv-to-enhance-basic-security-within-your-dapp/?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website&__hstc=148571112.27c191377f01ae58b2e09a998d9ef184.1625763718312.1641321275773.1641330012952.101&__hssc=148571112.1.1641330012952&__hsfp=3076257690?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website?utm_source=consensys&utm_medium=referral&utm_campaign=consensys_website) — How to Use .env to Enhance Basic Security Within Your Dapp.

> How do I test my smart contract?

We recommend using [Ganache](https://trufflesuite.com/ganache/) to develop your smart contract first on a local blockchain on your machine. Each account in Ganache comes pre-loaded with test Ether, so you’re all set from the start.

Later you can launch on a Testnet. Remember, if you are using a testnet, you have to get test Ether beforehand. It is required so that you can send transactions and deploy your smart contract.

To get testnet ETH you need a faucet like those linked below. Faucets are programs that give a small amount of tokens. Testnet ETH is NOT real money.

[https://faucet.paradigm.xyz/](https://faucet.paradigm.xyz/) — Issues testnet tokens from ALL the major testnets, Layer-2 and even test NFTs. Highly recommended.

[https://faucet.ropsten.be/](https://faucet.ropsten.be/) — in case you have to get extra tokens.

> How do I use a boilerplate to quickly get started building DApps?

[Scaffold-eth](https://docs.scaffoldeth.io/scaffold-eth/) — A great series of React components to build DApps

> Where can I read awesome blogs on Ethereum Development?

Developer Portal — The ConsenSys Developer Portal has awesome blogs ranging across the entire Ethereum stack, from Protocols to DeFi.

### Web3 Development Intermediate

If you want to go deeper into Solidity smart contract language and DApp development more in-depth, check out these resources.

How do I start to write basic DApps beyond Truffle’s Pet Shop?  
[Scaffold-eth](https://docs.scaffoldeth.io/scaffold-eth/) — The library also has a great series of tutorials to learn how to build DApp using Decentralized Finance (DeFi) primitives.

How do I easily connect my DApp to web3?  
[web-3 react](https://medium.com/coinmonks/web3-react-connect-users-to-metamask-or-any-wallet-from-your-frontend-241fd538ed39) — An easy way to connect to React. See docs on how to connect via various means. Requires a Connector listed in docs.

How does Solidity and Web3JS fit into creating a DApp?  
[Cryptozombies](https://cryptozombies.io/) — Learn to Code Blockchain DApps By Building Simple Games. They have added recent sections around Oracles (information providers for blockchain) and ZKSync (layer-2 sidechain for cheaper transactions).

How do I learn to write Solidity more in-depth?  
[Solidity by example](https://solidity-by-example.org/) — An introduction to Solidity with simple examples and related [Youtube channel](https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9eyA).

Another great resource is [Smart Contract Programmer](https://smartcontractprogrammer.com/) and his youtube [here](https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9eyA).

Also consider [Patrick Collins](https://medium.com/u/589c510eb216) videos, really useful ⬇️

[**Patrick Collins**  
_Linktree: https://linktr.ee/PatrickAlphaC Smart Contracts, Blockchain, Defi, Fintech, Solidity, Python, Golang…_www.youtube.com](https://www.youtube.com/@PatrickAlphaC/videos "https://www.youtube.com/@PatrickAlphaC/videos")[](https://www.youtube.com/@PatrickAlphaC/videos)

⚽️ 🥅 🙌 GOOD ENOUGH! The rest are extra things for your career development after the hackathon.

### Extra Credit: Web3 Development Advanced

How do I write clean Solidity code?  
[Clean Contracts by Wesley van Heije](https://www.wslyvh.com/clean-contracts/) — In a series of blog posts, Wesley goes through several patterns, practices, and principles that can be applied to blockchain and smart contract development to reduce the risks associated with it.

How do I begin to write Solidity in a secure and in a scalable manner?  
[Openzeppelin](https://docs.openzeppelin.com/learn/) — Comprehensive guides for every step of your development journey

[EIP-2525 Diamond Standard](https://eips.ethereum.org/EIPS/eip-2535) — Standard for creating modular smart contract systems that can be extended after deployment. See the creator [Nick Mudge’s introduction](https://eip2535diamonds.substack.com/p/introduction-to-the-diamond-standard), [Trial of Bits review](https://blog.trailofbits.com/2020/10/30/good-idea-bad-design-how-the-diamond-standard-falls-short/) for some in-depth clarity on terminology and the [creator’s rebuttal](https://dev.to/mudgen/addressing-josselin-feist-s-concern-s-of-eip-2535-diamond-standard-me8) to concerns.

How do I go in-depth in building smart contracts using Python tooling?  
[Smart Contracts Crash Course](https://www.youtube.com/watch?v=M576WGiDBdQ) — A 16 hour course on Solidity, Blockchain, and Smart Contract Course taking you from beginner to expert using python based tools.

Where can I get the best education to become an Ethereum Developer?  
[ConsenSys Academy](https://consensys.net/academy/) — The gold standard in turning web2 devs into web3 developers.

How can I test my Solidity skills?  
[Ethernauts](https://ethernaut.openzeppelin.com/) — The Ethernaut is a Web3/Solidity based wargame inspired on overthewire.org, played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be ‘hacked’.

[Capture The Ether](https://capturetheether.com/) — Capture the Ether is a game in which you hack Ethereum smart contracts to learn about security.

🥚Easter Egg  
[Cryptocurrency Class 2022](https://cryptocurrencyclass.github.io/) — Patrick McCorry leads a course on how something like Bitcoin can work, the implications and beauty of self-enforcing smart contracts, and focuses on bringing all students up to date with state-of-the-art research in this emerging area. There is a special focus for off-chain protocols.

This includes the history of payment channels (the lightning network) and validating bridges (rollups).