Preparing for a Hackathon
Research the event you’re attending
It’s super important to know everything there is to know about the event you’ll be attending. Read up on the theme if there is one, technologies to be used, things to avoid, and triple-check the amount of time allotted to make sure it’s cool with your schedule. Make a point to study problems or themes that are big in the industry at the current moment. Doing these things before the event will ensure you show up armed and ready to build.
Preparing Your Team
Start thinking about team formation
When looking for a team for your first hackathon, a great place to start is within the event’s Discord or other socials. Go ahead, reach out and introduce yourself, lots of other people will be looking for teammates as well! If you have a specific idea in mind, joining some niche communities or specific chats is a great idea to find like-minded people to collaborate with. Check out the guide: How to Organize a Hackathon Team
Preparing Your Project
Refining your idea & attention to detail
In order to come up with a winning idea, you must understand the winning criteria. Check out the event’s website – often the specifics of the judging criteria will be outlined there. It’s important to note that bounty projects will often add small details to the acceptance criteria to make sure participants are paying attention. It’s always better to have one well-defined bounty submission than a vague copy-pasta situation. Winning projects are typically chosen based on factors including:
- Technological complexity
Focusing on solutions to real-world problems and implementing newer approaches or technologies is a great way to have a leg up on the competition. Once your idea is crafted, narrowing it down to its most specific version will help you keep within the scope of the hackathon and the time constraints.
A polished front end and an engaging presentation are nice touches to a technically adequate project. This will grab the attention of the judges, and make your project stand out from the rest. Consider prioritizing quick-win features to improve overall accessibility for your users, like some basic documentation or how-to for using your dapp. These small details are essential for adding that “wow” factor of a winning hackathon project.
Preparing Your Machine
The steps to prepare your computer
If you’re newer to software development, we recommend you start by going through Consensys’ Before the Bootcamp Basics. This quick course covers a basic development environment, code editors, command lines, and git.
Set up VSCode IDE
For simplicity, features, and access to solidity-specific extensions, we recommend using VSCode as your primary code editor for Ethereum Development.
- MetaMask, a crypto wallet, and a web3 gateway, allows you to run Ethereum dapps right in your browser without running a full node
- Ganache, a one-click blockchain
- IPFS, a decentralized, off-chain storage solution
- React.js, a comprehensive frontend framework
- Truffle VSCode extension
- Solidity Extension Solidity is the language used in Ethereum to create smart contracts, this extension provides:
- Syntax highlighting
- Compilation of the current contract (Press F1 Solidity: Compile Current Solidity Contract), or F5 and much more
- Cairo Extension
Provides code assistance when writing Cairo smart contracts for StarkNet. Main features are
- Compiler support for .cairo files
- Live diagnostic highlighting for compile errors
- Quick fixes with suggestions provided by Cairo/StarkNet compiler
- Go to definitions for imports
- Code completion for imports
- Solidity Auditor Extension from ConsenSys Diligence
- Hardhat VSCode Extension
The rest of the packages will be installed by running the following commands in your project directory
💡Pro tip: In VSCode click ⌘ and ` at the same time to quickly open the terminal.
- npm install -g truffle
- npm install -g ganache
- npm install create-eth-app
- npm install web3 OR npm install ethers comparison here
- npm install create-eth-app
💡Pro tip: Etherscan also has an API! This can be used in your project to do things like check the balance of a wallet, see the history of token events or return the creator of a given contract.
Connecting It All: Double Check Your Environment
Alright, you’ve downloaded everything you need and feel geared up to hack. Now it’s time to take your tools for a spin by trying them out with a sample decentralized application. Go through Truffle’s quickstart tutorial on smart contract development on building an Ethereum Pet Shop application. This tutorial will ensure that you can successfully use your IDE/text editor, Truffle, Ganache, Web3.js, and MetaMask, and it will build your confidence that you can get up and running on the day of the hackathon. For a more complex end-to-end dapp tutorial check out their rental marketplace series.
Start Collecting Test Funds
Different faucets have different quantity allowances. If you’re doing a lot of testing in a short amount of time, it might be helpful to have plenty of test ETH stockpiled in advance. Sometimes the faucets can be “empty” as well, so preparing for this in advance will save headaches during the event!
💡Pro tip: Group useful information together by using chrome tab “groups” for locating specific docs quickly!
Bookmark these Tools and Knowledge Bases
The Ethereum community produces content at a rapid clip. Here are a few go-to resources to bookmark that you’ll find yourself revisiting as you become a more experienced builder.
- Ethereum Developer Tools List – Expansive GitHub repository of dev tools curated by experts at ConsenSys.
- Ethereum Developer Portal – ConsenSys’ developer gateway for everything from programming libraries to webinars to job kits.
- Getting started with MetaMask guide – Helpful walkthrough for getting started implementing MetaMask into your web3 project
- Blockchain Knowledge Base – Answers to the 40+ most popular questions about blockchain, intros to Ethereum, Ethereum 2.0, and more.
- Ethereum Foundation – Overview of Ethereum, as well as getting started guides for devs. Check out their Ethereum Studio for a first dive into a smart contract and to see what Solidity looks like. Here’s a tutorial video on how to use Ethereum Studio.
- Mastering Ethereum is a book for developers, offering a guide to the operation and use of the Ethereum, Ethereum Classic, RootStock (RSK), and other compatible EVM-based open blockchains.
- Kauri’s Getting Started Community – Kauri is an Ethereum-based knowledge network for technical docs that are curated by the community. This collection will provide you with technical tutorials to quickly start building blockchain applications. Check out their recent hackathon collection.
- Week in Ethereum News – A weekly newsletter for devs about the latest news in the Ethereum ecosystem, from Layer 1 developments to application layer progress.
- The Ethereum Blockchain Education Resources page by ConsenSys offers a knowledge base, case studies, insight reports, webinars, podcasts, and more.
Hackathon Time: 3 Pro Tips
It’s officially time to get hacking. You’re excited, a little nervous, and totally prepared. Make sure you arrive at the venue on the earlier side of registration so you can find out where the snacks and drinks are, locate the bathrooms (more important than you think), connect to the internet, scope out the most comfortable locations to hack, and start meeting your fellow hackers and members of the community. Here are four specific pro tips to guide you on the day:
Have a Bulletproof Plan: With all of the excitement abound, it’s tempting to dive right into coding. However, starting with a detailed plan of attack will save endless time and stress throughout the process. Understanding in advance which team members will be responsible for which tasks is crucial for efficient development in a time crunch. Additionally, having an MVP outlined before coding will keep your team focused on essential functionality.
💡Pro tip: Take notes as you build and keep track of any challenges or things you learned along the way. This will serve as a great memory jog for discussing your project with others at the event. Also – if selected as a winner you may be asked to present; in which case you’ll be glad you’ve already got something to work with!
Lean on the community: We can’t say it enough. Make sure you connect to the Discord or Slack channels of the tools that you end up using and the event itself. The community often has helpful answers to any questions that you might have. Meet people on the ground, both to find potential teammates and to identify experts who can help you debug a smart contract when you run into issues. ConsenSys often runs a help desk at events staffed with knowledgeable and friendly technical folks. Join our Discord and say hello before you run into an issue so they know who you are. We might even have a few surprises for you if you come talk to us in person!
Keep it simple: Hackathon winners are often only able to create a proof-of-concept due to the time limits – you won’t be able to sort out every detail or fix every bug. The simpler you keep the scope of your project, the more likely you will be able to bring a version of it to life. Remember, for most hackathons, your app does not have to be ready to deploy out to the world. For the judges, the biggest relief is a demo-ready project to evaluate, so consider having a presentation equipped with a recorded demo locked and loaded at go time.
After The Hackathon
Show off your masterpiece!
You’ve built a badass project, and it’s time to show it off! You can throw the GitHub link in the event/dev tools Discord, tweet it (tag @consensys we love to see what y’all are building), or even send it to your Grandma.
Keep in touch with hackathon friends
Having industry connections is a great way to keep up to speed on what’s happening in web3, and stay updated on new trends in development. Building out your network is a great way to find potential opportunities down the road from jobs to partnerships and even potential investors!
Why stop here? Your MVP can be expanded limitlessly with security features, scalability, additional functionality and features, and more documentation! Having a well-built hackathon project makes for a glowing addition to any resume/portfolio or a starting point for your next web3 startup.
Web3 Development Resources
Here are a few more tools you’ll need in your arsenal:
Truffle: Truffle is the most comprehensive suite of development tools for getting started with smart contracts. Truffle offers a variety of features when starting with our CLI, but also provides powerful tools such as our debugger, Dashboard, and local test chain, Ganache, to speed up your development workflow.
Diligence: Diligence provides industry-leading security analysis tools and reviews by experienced auditors to ensure smart contracts are securely built and ready for mainnet.
Infura: instant, scalable, and reliable API access to 10 networks including Ethereum, IPFS, L2s such as Polygon, Avalanche C-Chain, and more. Infura uses HTTPS and WebSockets to provide request response times up to 20x faster than other services and self-hosted solutions. Devs can use Infura’s dashboard to configure, monitor, and analyze their dapps and also add on Ethereum archive node data for a historical view of the network. Get started with Infura here.
MetaMask Snaps: MetaMask is the world’s leading non-custodial crypto wallet and a gateway to web3, trusted by over 30 million users worldwide. Snaps are a way to safely extend the capabilities of MetaMask. How, you may ask? A snap can add new APIs to MetaMask, add support for different blockchain protocols, or modify existing functionality using internal APIs. Getting started with Snaps is easy! Check out this beginner-friendly guide that developers use as a go-to resource for using Snaps at hackathons.
Etherscan: Etherscan is a Block Explorer and Analytics Platform for Ethereum. Etherscan is extremely useful to verify, view, and edit smart contracts deployed to mainnet or testnets.