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