Integrating Standard Bounties

Bringing security, interoperability, and a richer feature-set to Gitcoin’s smart contracts via Bounties Network

Moving money is easier than ever before. This trend is likely to continue with the rise of virtual currencies like Bitcoin and Ether. It is becoming increasingly clear that we’ll be living in a future where “moving money is as easy as sending an e-mail is today.”

“Live in the future, then build what’s missing.” — Paul Graham

In the future of fast transactions, we’ll want to govern the movement of money well. This is especially true for complex transactions, where human judgement is still required. Figuring out when money should move is still hard. Think about the below examples:

  • UX Design: Did the final interface meet the requirements the issuer specified?
  • Software Development: Was the feature built, tested, and successfully merged based on the requirements outlined?
  • Content Marketing: Did the article written discuss the appropriate topics, was it descriptive enough, and did it follow through on the intended scope?

Standard Bounties

Standard Bounties aims to be the standard for tackling these questions across the Ethereum ecosystem. From the “Rationale” section of the Github:

Ethereum smart contracts can trivially facilitate transactions of resources (or tokens) between individuals or groups, but service transactions are more complex. Requesting individuals (issuers) must first approve the work they’re receiving before paying out funds, meaning bounty hunters must have trust that the issuer will pay them in the spirit of the original contract.

The StandardBounties.sol contract facilitates transactions on qualitative data (“deliverables”), allowing bounty issuers to systematically approve work received.

We believe there are many benefits to recognizing an open standard for bounty smart contracts on Ethereum:

  1. Security: If we all use the same standard, there are more eyes looking at that contract. If everyone writes their own, it’s not as secure.
  2. Platform Interoperability: Bounties shouldn’t be tied to any platform. In an ideal world, bounties should propagate across platforms and communities.
  3. Reputation Tracking: If all sites use the same interface for the actions relating to a bounty, it becomes far easier to track the reputational metrics of various actors in the system.

Gitcoin + Bounties Network integrate

With these philosophical reasons in mind, we are excited to announce the integration of Gitcoin and Bounties Network on the Standard Bounties smart contracts. This integration is live today, and allows for these contracts to be tested across a variety of test cases on two separate bounty platforms.

Gitcoin is focused depth-first on funding bounties for open source software projects, in line with the mission to “grow open source.”

Bounties Network is focused breadth-first, leading the design of the Standard Bounties contracts, and potentially supporting a variety of bounty platforms over time.

Gitcoin (depth-first) and Bounties Network (breadth-first) have integrated!

This integration opens up the doors for a number of product updates to Gitcoin down the road, alongside the benefit of longer term improvements to Standard Bounties itself. Some, which we are most excited about, include:

  • Multiple funders
  • Auction bounties
  • Automated bounty acceptance
  • Bounty arbitration
  • Public contributions
  • Multiple correct submissions
  • Draft bounties
  • Updating submissions

Each one of these possibilities represent ways the Gitcoin product can scale to better serve the mission to “Grow Open Source” in 2018 and beyond. The future is bright!

Managing The Migration

The bounties on Gitcoin which are based upon the current, Gitcoin legacy smart contract will remain open. The web application will completely support these bounties until the very last one has expired or been fulfilled.

All new bounties posted to Gitcoin as of today will be utilizing the new, Standard Bounties smart contracts.

Details, Details, Details

As a Gitcoin user, you can expect the following functionality changes:

  • ‘Claim Work’ has been moved off-chain and renamed to ‘Start Work’. When you use ‘Start Work’, a comment is left on the issue’s Github thread letting the bounty owner know that you’re interested in working together. It’s up to you to agree with the bounty owner that you’re the right person for the job, so we recommend leaving a follow up comment on the thread letting them (and other potential bounty hunters) know that you’re on it!
  • New Feature: ‘Submit Work.’ Use this feature only if you’ve turned around the work and are ready to submit the bounty for payout.
  • You can “Kill Bounty” at anytime if you are the bounty submitter.
  • Some other small changes: (1) “Name” and “description” fields have been added to bounties. “Accepted” means “completed” work.
  • Gitcoin now natively integrates with Github. This means that, when you login to Gitcoin, the application will know your Github identity, allowing us to more easily keep you in the loop when things change.
Login Button in the top right of the app

We have also cleaned up the statues on Gitcoin to make it a little more clear the linearity of flow:

The flow of Bounties on Gitcoin

If you have any questions about these changes feel free to poke in on our slack and message Kevin Owocki or myself, or post an issue on Github. We are excited to see these changes in the wild and to continue our mission to grow open source.

Interested in Bounties Network?

Are you considering using a bounty system to build your platform? Are you interested in contributing towards leading Web3 projects, while getting paid? We let you put bounties on any task, paying in the native token of your project (or ETH). Feel free to reach out.

Interested in Gitcoin?

Looking for a dev for your web3 project? Hoping to incentivize someone to take on an issue in your repo? Looking for work in web3? Check out Gitcoin.

To learn more about Gitcoin, click below. We welcome you on our journey to grow open source and change the way we work.

True to form, integration of Standard Bounties was completed using Gitcoin. Thanks to Jason Haas for his help integrating the contracts across platforms.

Gitcoin and Bounties Network both look forward to working together on this experiment to bring bounties to the Ethereum and blockchain ecosystems. We appreciate your support.