Skip to content
Notional

Notional

Incentivise development of issues in GitHub repos. Repo Owners can create ‘bounties’ on GitHub issues, and Devs can score the bounties by resolving issues.

Created on 21st April 2024

•

This project has been flagged for recycling pre-existing work

Notional

Notional

Incentivise development of issues in GitHub repos. Repo Owners can create ‘bounties’ on GitHub issues, and Devs can score the bounties by resolving issues.

The problem Notional solves

Notional is a helper app to GitHub for incentivising development of issues in GitHub repos. It helps teams delegate work amongst themselves using a pay-by-task model. Repo Owners can create ‘bounties’ on GitHub issues, and Devs can score the bounties by resolving issues. This creates a marketplace of issues / issue-solvers and can help streamline the development of software projects. The app can be used by regular software teams to automate their payments, or outsource work, and DAOs can benefit from the app's decentralisation to commission work in a more trustless way.

In the app, owners of GitHub repos can sign in and connect their wallets. The app displays the open Github issues in their Repositories. They can create bounties for each issue, and these bounties are available to developers or ‘bounty hunters’. Repo Owners can also cancel their bounties and withdraw the payments if the bounty is not yet closed.

Developer or ‘bounty hunters’ can also sign in and connect their wallets. They can see a list of open bounties in a repository, with the payment amounts shown. Each bounty also links to the GitHub page for that issue. This serves as a dashboard for Developers to find work. When the GitHub username they registered to the platform creates a successful Pull Request, which closes a bounty issue, the Developer is paid the bounty.

Challenges we ran into

We experienced issues when trying to call our Chainlink Functions request both from an on-chain source and directly from web3.js. The error was ‘cannot estimate gas’ when calling our ‘executeRequest’ method in the Consumer. Despite manually setting a gasLimit, we could not get it to work. However, the Functions script was confirmed to work when simulated in the Functions-Hardhat-Starter-Kit. If completed, our Functions would have triggered a payment from Escrow to the author of the merged PR by looking up the author name in the username-address mapping in Main. This would mean that any registered Dev could receive payout just by submitting a successful PR for the issue.

We spent a lot of time trying to fix the above issue, which meant we also ran out of time to implement Chainlink Automation. We would have added an automated call to a method which iterates through each Escrow, and prompts each one to make a Functions request.
The status of every bounty would be checked every hour, so if a developer performs a task, they would be paid within the hour.

Tracks Applied (2)

ETHDubai General Track

Notional contributes to the Ethereum ecosystem by providing an open-source solution deployed on Polygon Mumbai L2 networ...Read More

Chainlink Track

Notional seamlessly integrates with Chainlink by leveraging Chainlink Functions to query the GitHub API for relevant dat...Read More
Chainlink

Chainlink

Discussion

Builders also viewed

See more projects on Devfolio