Cointributors enables fair and automated donation distribution to open-source contributors and dependencies using Ethereum smart contracts. Link your repository, allocate funds, deploy your contract, and display a badge to invite donations and showcase your support.
Cointributors is a platform aimed at transforming open-source contributions by providing a streamlined, standardized approach for allocating and deploying donation contracts for both project contributors and dependencies. Through Ethereum smart contracts, Cointributors automates the equitable distribution of ERC-20 tokens, ensuring that contributors and project dependencies are properly supported.
Users can link their GitHub repositories, where the platform scans for contributors and dependencies with associated Gist addresses, and deploy a smart contract to manage donations. By integrating with package managers like npm, RubyGems, NuGet, and PyPi, Cointributors identifies dependencies and determines the appropriate recipients of funds.
The system also supports hierarchical funding, allowing dependencies to allocate a portion of their donations to their own contributors. This creates a transparent, automated framework to sustain open-source ecosystems. Contributors can showcase their involvement by displaying a badge on their GitHub profiles, encouraging others to donate and support the open-source community.
Cointributors is built using a combination of .NET, Nethereum, and Razor, creating a robust and scalable platform for automating donations in the open-source ecosystem.
.NET & Razor: The frontend is developed with Razor Pages, a .NET-based web framework that allows for dynamic web content generation. Razor seamlessly integrates front-end and back-end logic, providing a smooth and intuitive user experience for linking GitHub repositories and deploying smart contracts.
Nethereum: Nethereum, a .NET library for interacting with Ethereum, is used to handle all blockchain-related operations. It facilitates smart contract deployment, management, and interaction, ensuring secure and transparent token transfers. Nethereum is essential in managing ERC-20 token transactions, contract deployment, and validating recipients.
Smart Contracts: At the core of Cointributors are Solidity-based smart contracts that automate donation distribution to contributors and dependencies. These contracts ensure funds are allocated based on predefined percentages and support hierarchical distribution structures, enabling dependencies to distribute funds to their own contributors proportionally.
GitHub Integration: GitHub’s API is integrated to allow users to link repositories and identify both contributors and dependencies. This integration enables Cointributors to automate the donation process, associating funds with the appropriate individuals and packages, streamlining the entire workflow for users.
Hacky Details:
One notable hack involved implementing package manager scanning to identify dependencies. This is partially implemented for npm, RubyGems, NuGet, and Python. By parsing package files and mapping them to GitHub profiles, we can dynamically identify dependencies for open-source projects.
We also leveraged Razor’s flexibility to iterate rapidly on the frontend design. This allowed us to provide real-time feedback during the smart contract deployment process without heavy reliance on JavaScript frameworks.
These technologies, along with smart contracts and GitHub integration, enable Cointributors to deliver a transparent, automated, and secure platform for distributing donations across the open-source ecosystem.