This project is a POC developed for the Polkadot ink! Hackathon powered by Encode Club
Kudos Ink! is a platform that helps developers to find their next open-source software (OSS) tasks with AI assistance based on their skills and interests.
As a project, use your community to get stuff done
Kudos Ink! addresses several significant pain points in the OSS ecosystem. First, it tackles the challenge of finding relevant OSS contributions, which is often a daunting task for developers. Additionally, the project aims to decentralize payments, providing a trustless environment where contributors can receive their dues without intermediaries. Lastly, Kudos Ink! offers a solution for the diversity and customization of rewards, overcoming the limitations of conventional transfers and airdrops.
Two existing solutions in the OSS community address decentralized contribution rewards: NEAR Crowd, a platform that manages contribution bounties and reviews through smart contracts with community involvement, although it lacks reward customization; and Web3 Actions, a system offering customizable payment workflows for OSS, using smart contracts and GitHub workflow signers to establish trustless reward systems; however it uses Kovan network which is deprecated today.
We drew inspiration from the second approach to develop Kudos Ink!: a solution for customizable contribution rewards and decentralized payment workflows.
This article was a solid source of inspiration: Ethereum on Github, by Markus Kottländer.
The reward contribution flow relies on two main characters:
organization
calling for contributors to address certain Github issues.issues Aspiring contributors
The contract is instanciated by calling new
and providing at least the reward workflow file hash as an argument (in the SingleToken reward contract template we also provide the reward amount as an argument).
register_contributor
with their Github ID on the reward contract.approve
on the reward contract with the given issue #ID and the contributor Github ID as their identity.claim
method on the reward contract with the issue #ID. This action triggers the custom reward flow specified in the contract (e.g. a single bounty transfer, an NFT minting, ..)This approach offers a high level of customization. The claim
method, the final step in the process, allows for a wide range of reward mechanisms, making it highly adaptable to the specific needs and preferences of the organization and contributors. This flexibility empowers projects to implement diverse and tailored reward structures, whether it's a straightforward balance transfer, the issuance of non-fungible tokens (NFTs), or other creative and unique reward systems, ensuring that the Kudos Ink! platform can seamlessly accommodate a variety of open-source project needs and preferences.
Kudos Ink! provides some templates ready to use as reward workflow with dedicated Github actions and reward contract
To use Kudos Ink! in your project follow these steps:
Add a reward workflow to your Github repository; Kudos Ink! provides the following example
Create and instanciate a reward contract; Kudos Ink! provides the following example
It can be any reward contract implementing the following trait:
#[openbrush::trait_definition]
pub trait Workflow: Ownable {
/// Register the caller as an aspiring contributor.
#[ink(message)]
fn register_identity(&mut self, identity: HashValue) -> Result<(), WorkflowError>;
/// Approve contribution. This is triggered by a workflow run.
#[ink(message)]
#[modifiers(only_owner)]
fn approve(
&mut self,
contribution_id: u64,
contributor_identity: HashValue,
) -> Result<(), WorkflowError>;
/// Check the ability to claim for a given `contribution_id`.
#[ink(message)]
fn can_claim(&self, contribution_id: u64) -> Result<bool, WorkflowError>;
/// Claim reward for a given `contribution_id`.
#[ink(message)]
fn claim(&mut self, contribution_id: u64) -> Result<(), WorkflowError>;
}
Kudos Ink! supports OpenBrush. The approve
method extends the Ownable contract from OpenBrush.
A contract to automatize single contribution rewards with a predefined bounty.
Kudos Ink!'s goal is to deliver a developer-friendly hub for contributions. This benefits the ecosystem as a all.
In the next months we want to expand the array of available reward contracts, offering a wider selection of customizable options to cater to the diverse needs of open-source projects.
Additionally, a dedicated frontend application is on the horizon, designed to streamline and simplify various aspects of the platform's functionality. This application will allow organizations to instantiate reward contracts in bulk, providing a more efficient and scalable solution for project management. It will also introduce Github OAuth authentication for seamless contributor identity registration, making it easier for aspiring contributors to participate in the ecosystem. The app will further enable contributors to claim their rewards effortlessly and track their contribution metrics.
Kudos Ink! has ambitious plans to implement AI assistance, leveraging contributors' skills, interests, and experience to provide personalized suggestions for their next ideal open-source contribution, thereby enhancing the platform's utility and contributing to the growth of the open-source community.
These future ideas promise to make Kudos Ink! an even more robust and user-friendly platform for both organizations and contributors.