Skip to content

Koko-cares/hackathonsolution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hackathon Solution

Streamlining Hackathon Bounty Payments with Smart Contracts

Problem Statement Hackathons are a breeding ground for innovation, yet the current bounty payment process often undermines their efficiency and principles. Issues include:

  • Delays: Payments to winners can take weeks, discouraging participation
  • Liability: Organizers shoulder excessive risk for unfulfilled payments or disputes.
  • Lack of Transparency: Payment processes are opaque, leading to potential disputes and dissatisfaction.
  • Trust Dependency: Hackathon organizers and participants must trust sponsors to honor payouts.
  • Complexity in Distribution: Manually splitting bounties among winners creates inefficiencies and errors, as well as more work for tired organizers post a hackathon

Solution Overview Let’s leverage Ethereum smart contracts to create a transparent, trust-minimized, and efficient solution for hackathon bounty payments. It aligns with Ethereum principles of decentralization, trustlessness, and transparency while providing organizers and sponsors with a user-friendly tool to streamline the process.

Core Features Escrow Contract for Bounty Funds:

  • Sponsors deposit bounty funds into an escrow contract before the hackathon begins.
  • The contract is jointly controlled by the sponsor and the hackathon organizer, ensuring shared responsibility over the funds

Configurable Challenge Setup:

  • Sponsors specify the number of challenges within a bounty and the total reward allocation upon deposit. (ex. Optimism Bounty with 3 challenges, the Prosperity Paradox, the Calculator, the DeFI for the Superchain)
  • Bounty configuration options are immutable once the hackathon starts. could be a bad feature but I think it will be important for accountability before a hackathon starts

Automated Winner Distribution: Once winners are determined, winners are given access to a dashboard to input their wallet addresses into the system. This dashboard would also have to have functionality to TEST the wallet to ensure it is ERC20 compatible and that the hackathon winner is inputting a wallet that will work to receive the funds accurately ** might be able to use some source code from this to create this feature https://ethglobal.com/showcase/prank-wallet-cgnb3 ** The escrow contract automatically divides the bounty evenly among winners, reducing manual errors and disputes.

Transparency and Accountability: All transactions are recorded on-chain, ensuring transparency and accountability. Participants can verify the availability of funds and transaction details at any time. This is a VERY important feature! I want hackers to know and understand that sometimes the organizers don’t have the funds and in fact I want to change the standard that protocols can even participate in hackathons without putting the funds in the escrow

Technical Architecture Escrow Contract Design Sponsor Deposit:

  • The sponsor deposits the bounty amount into the escrow contract before the hackathon begins.
  • The contract includes a function to specify the number of challenges and allocate funds per challenge.
  • The number of winners is a configuration that will be determined POST hackathon
  • Joint Control: Both the sponsor and the hackathon organizer have joint control over the contract like a SAFE
  • Releases or modifications require multi-signature approval to mitigate risks. 2-3 signatures makes a lot of sense for me. 1 point of contact from both ends, 1 extra for good measure
  • Immutable Configurations: Once the hackathon starts, configurations like the number of challenges and funds per challenge are locked. Ex. Optimism 1st place $2000 Optimism 2nd place $1500 Optimism 3rd place $1000

User Roles Sponsor: Deposits bounty funds and configures challenges. Approves bounty releases. potentially adds KYC process TBD might be too difficult to configure in one place Usr flow can have 2 options Organizer: Facilitates winner selection and inputs wallet addresses. Collaborates with sponsors for fund release approval. Participant: Views on-chain bounty details to ensure fund availability and transparency. Receives payments instantly post-approval. Inputs wallet address Signs waiver to comply to not using the grant for illegal activity

Smart Contract Implementation Key Functions: depositFunds(uint challengeCount, uint totalAmount)

Allows sponsors to deposit funds and set the number of challenges. lockConfig()

Locks the challenge configuration once the hackathon begins. addWinners(uint challengeId, address[] calldata winners)

Inputs the list of winners for a specific challenge. approveAndDistribute(uint challengeId)

Executes fund distribution upon sponsor and organizer approval. withdrawUnclaimedFunds()

Returns unclaimed funds to the sponsor/organizer after a specified period.

Security Considerations Multi-Signature Control: Ensures no single party can act unilaterally. Timelocks: Prevent premature or delayed payouts. Audited Smart Contracts: Guarantees reliability and security. Fallbacks: Enables fund recovery in edge cases such as disputes or errors.

Questions to Answer (Comments Welcome)

  • Should KYC process be implemented into this from the start or sponsors still want their own KYC process?
  • Will it make sense to be immutable in the challenges after the hackathon starts? Or does it make more sense to allow flexibility based on the hackathon submission results
  • How can this be a standalone product that gets added to any hackathon platform (ex. Aya, Dora, Taikai etc)
  • Will this be an open source project, ofcourse! Will there be an opportunity to monetize?

Things to research

Hackathon Tools That Already Exist (How can this tool be an extension of the tools that already exist)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published