Prize-Worthy: An Ethereum Python Hackathon Guide
This is a companion post to an in-person workshop with the same name. Within you'll find a summary of each workshop section along with links to relevant resources. Update: the published workshop video can be found here.
Summary
The workshop walks attendees through a successful hackathon project using Python tools, from rough idea to final presentation.
Chapter 0: Idea
- Hackathons are career/company/OSS project launchers! 🚀
- Generate ideas by paying attention to tools/apps/features you wish existed, pain points in your workflows, complaints on social media, sponsor wish lists, team formation events, and past winner profiles.
- Evaluate ideas within the “Who What How Now” framework.
- Talk about your idea. It gets sharpened by feedback and you may rally support.
Ch. 1: Dapp Architecture
- Imagine the ideal UX for each actor in the system.
- Scale down your idea to an MVP. Iterate.
- All your data and functionality does not need to live within a contract. Decentralization is a spectrum.
Ch. 2: Contract
- Get moving quickly with tools like OZ Wizard, Remix, and sneko.
- sneko is a simplified Remix-in-the-terminal and can generate configured Ape projects.
- Ape is a great smart contract platform option for Python devs:
- It simplifies compiling, testing, and scripting contracts.
- Accounts can be securely imported for scripting use.
- Deployments require relevant plugin + gas for the transaction.
Ch. 3: Contract Interaction
- web3.py:
- offers fine control over blockchain data and transactions
- can be configured to communicate with L2s and testnets
- can be customized via middleware and custom modules, methods, providers
- Make your projects more human-friendly via ENS name or metadata resolution, eth-utils' humanize functions, etc.
Ch. 4: UI
- Get creative: CLI, TUI, chat bot, webapp, data viz, Jupyter notebook, <other>
- Distribution: web app, PyPI, chat app, physical space
Ch. 5: Presentation
- Tell the user’s story via the “Who, What, How, Now” framework.
- Start ~75% through timeline; factor in time for script, slides, rehearsal, redos.
Ch. 6: Polish
- Only once an MVP is complete, iterate on the product or presentation.
- Product: bonus features/sponsor integration, styling, graphics, logo, context and usage instructions, loading experiences, error messages, testing edge cases
- Presentation: polish script, improve slides or demo, rehearse, re-record
Resources
- Devcon workshop page
- Python libs:
- Pythonic smart contract frameworks:
- Smart contract language resources:
- Solidity
- Vyper
- reference material
- prototyping editors
- Reference repos:
- popupfaucet: CLI, server, contract, submission
- Discord bot starter kit
- Guides