Introducing OpenQ on Polygon

Andrew O'Brien
openqdev
Published in
8 min readMay 4, 2022

Fund Issues. Get Devs. Merge Pull Requests. Get Paid.

TL;DR

OpenQ is a permissionless, GitHub-integrated, on-chain work platform tailored for software development feature bounties.

With OpenQ, ANYONE can mint and fund a bounty for ANY OPEN SOURCE ORGANIZATION from a GitHub Issue in seconds at https://app.openq.dev.

That means dApps underpinning DAOs, FOSS packages like Log4j, or any firm with an open source presence.

Contributors can then automagically claim their funds after a maintainer reviews and merges a pull request that completes the issue.

From Humble Beginnings to Production

“Every good work of software starts by scratching a developer’s personal itch”

- Eric S. Raymond, The Cathedral and the Bazaar

It is with great excitement that the OpenQ team(still small! Just Andrew, Rick, Chris, Victor, and Ximena) deliver OpenQ to the world.

What began as a Chainlink hackathon project in 2020 has now blossomed into a live work management and bounty crowdfunding platform.

Check it out at app.openq.dev, then come back here for some more info.

OpenQ sprouted from years of pain points we’ve experienced recruiting, project managing, and remunerating software developers on traditional contracting platforms like Upwork.

We started asking some sensible questions like:

  1. Why do I recruit, project manage and pay my developers on one platform, while all of the technical project management I do happens on GitHub?
  2. If I’m working on a feature that could be useful to other projects, why isn’t there an easy way to crowdfund it?
  3. Why can’t I leverage different types of payment methods and work arrangements, such as competition style “first pull request wins,” or splitting a contract payout between multiple developers?

It just didn’t feel…programmable enough, or tailored for developers enough.

It left so much potential for creative collaboration on the table.

It squeezed the looseness of software engineering collaboration into the square hole of either fixed price contracts or hourly contracts, little else.

Well, the more we learned about Web3, we realized:

  1. We could code programmable escrow in smart contracts
  2. We could connect these contracts to the GitHub API through an oracle
  3. Payouts could be unlocked by merging pull requests

So what if…🤔💭

And lo, the idea for OpenQ was born — a permissionless, on-chain, GitHub-integrated bounty system that now allows my team to manage payments through pull request activity.

It’s the software-centric work management platform that the team as one-part-devs, one-part-PMs have always wanted, and we hope others will enjoy it now too.

While OpenQ has a ways to go adding more programmability to the platform, we believe the standalone GitHub-integrated bounty system we have already been using to build ourselves since February 2022 is worth releasing into the ever-swirling and quickly saturating gauntlet of DAO tooling.

The future of work will be programmable.

🤐 Shut Mouth, Show Working Code 👨‍💻

Fitalik agrees.

Mint a Bounty

Pop in an open GitHub Issue URL to Mint Bounty.

Fund a Bounty

Throw some ERC20 or MATIC on it, timelocked for a configurable number of days.

Refund a Bounty

Refund your deposit if the bounty is still not completed by your lockup time.

Claim a Bounty

Claim by referencing the bountied GitHub Issue in your closing pull request, have a maintainer review and merge it, then simply OAuth as the closer and click “Claim”.

More info here.

That’s It

So, that is what OpenQ is capable of right now. If that’s all you want, then you’re good to go.

If you want to learn a bit more about the how we do it and what we plan on doing next, read on brave soul.

What OpenQ Does Differently

Given the constant need for new contributors in DAOs and open source, there are already dozens of Web3 bounty funding and management platforms.

We’ve found that many existing platforms are quite skeumorphic in that they recreate old work platforms on decentralized platforms without fully venturing into the new territory unlocked by Web3.

😢 Bountied funds are often still held in maintainer wallets or safes instead of in escrow on-chain.

This is honestly worse than traditional platforms which hold funds in bank escrows, effectively erasing the risk for contributors of clients lacking the funds they claim to have.

😢 Work completion still requires coordination outside of GitHub, e.g. DMs on Discord including the completed merged pull request, and the desired address for the funds.

😢 I’ve met too many DAOs that still rely on spreadsheet and Notion boards for bounty programs

With OpenQ:

✅ Each bounty is one smart contract

✅ Bounty funds are held in timelocked escrows to reduce counterparty risk

✅ Bounty activity is indexed and auditable with The Graph, with amounts and claimant address already there. No more spreadsheets.

✅ Self-service claims to a contributor’s desired address work via oracles connected to GitHub API, without the need of any admin activity by the DAO

So with this decentralized baseplate as our foundation, here’s the special sauce where OpenQ stands out from the others:

📍 OpenQ works where you work — on GitHub

Our GitHub-integrated oracle allows payouts to happen automatically when pull requests referencing bountied issues are merged.

Indeed, since OpenQ is opinionated about Git, this does mean that OpenQ may not be the perfect fit right now for non-version controlled work, like bountying a Discord server maintainer.

But hey, as with all endeavors “You can do anything, but you can’t do everything.” Perhaps we’ll integrate oracles for other work platforms like Medium or Notion in the future.

⛓ OpenQ is on-chain

All ERC20/protocol tokens (and soon NFTs!) are locked in escrow until they either:
A) become refundable after their lockup period
B) are claimed by the GitHub user who authored the closing pull request

Being on-chain isn’t just some “good deed” or salesy marketing filler — we need to be on-chain to leverage the automated accounting benefits of indexing with The Graph.

No more spreadsheets and Notion boards to track bounties for your organization.

🤖 OpenQ is automated

No more “Hey I finished this, can you send funds?” DMs on Discord. Claims are handled using our GitHub integrated oracle.

No more marketing your software development bounties, we comment on the GitHub Issue directly.

Close pull request, and the funds are released to you as the contributor.

Note: It’s true that our oracle is centralized. This is because it is a single-source (GitHub API) authenticated oracle, requiring a signed GitHub OAuth token to determine if the caller is indeed the closer.

Authenticated oracles are still a nascent space in DeFi, and we intend to work with API3 and GitHub to decentralize the claim process as much as possible in the coming months.

👩🏼‍💻 OpenQ is fully open source

Every inch of our platform is open sourced at OpenQDev GitHub.

🔐 OpenQ is secure for both maintainers and contributors

Just like on traditional contracting platforms, OpenQ requires funds for jobs to be deposited ahead of time. They are locked for a programmable period of time, after which they can be refunded to the funder if not already claimed by the contributor.

Thanks for Coming Ya’ll!

So that’s it, you can leave now and try it out at app.openq.dev

We are excited to see what you build with us!

Or if you dare, you can stick around for some roadmap talk — reputation, token streaming, accounting and more. Up to you!

The Future of Work Stack — Beyond Bounties

Not all work is well-suited for short term fixed price contracts. That’s why OpenQ has already started building for all kinds of work arrangements.

Here’s what’s next on our roadmap:

Reputation + Dispute Resolution

Reviews and dispute resolution are noticeably lacking on the current beta release and notoriously hard to implement on permissionless decentralized systems.

We are already in talks with Kleros about spinning up a Kleros court to abjudicate cases of platform misuse by both contributors and maintainers.

Until we implement these measures, work coordination can continue in immutable GitHub Discussion as usual, with all the norms of open source etiquette prevailing.

Token Streams

Bounties are good for making initial connections, getting involved in projects, and trial running potential contributors before investing more resources in them.

But not all software development work is sufficiently context insensitive or modularized to be bountied out to new contributors. In fact, most software development work is decidedly not bountyable.

That’s why we’ve begun work on adding token streaming to OpenQ — integrating decentralized payroll with automated accounting.

Fabien at Snapshot once said it well in a community call: “DAOs are less about hiring and firing, and more about onboarding and offboarding.”

It should be dead-simple to enter and exit token streams as your contributorship waxes and wanes with a DAO or open source project.

Accounting and Invoicing

Say what one will about Web3 revolutions and skirting taxes in the Bahamas, — for most people today, crypto is only as useful as it is convertible and spendable in fiat. Unpopular opinion on crypto-Twitter sure, but when rent comes due, I don’t think landlords care if I have 200 LINK locked in a Balancer pool on Polygon.

Until they do (I did pay rent in Bitcoin once), I want my on-chain work activity to auto-generate invoices for all my fixed-price contracts and crypto salaries.

This is as much of an operational lift as it is a technical one.

Onwards!

So that’s the roadmap.

We leave you with one of our favorite tweets of the year, and hope to see you on OpenQ soon.

Join the OpenQ Discord, check out OpenQDev GitHub, and follow us on the bird app.

Happy building!

--

--