Proof of Contribution

Documentation

How Proof of Contribution works.

Everything you need to understand the data, methodology, and how to use or extend this project.

What is Proof of Contribution?

Proof of Contribution is an open-source dashboard that tracks merged pull requests across crypto ecosystems. It turns public GitHub data into a searchable, filterable contribution map — showing who builds, where they contribute, and which projects concentrate open-source activity.

Why it exists

Crypto ecosystems rely on public infrastructure, but contribution is scattered across many repositories. This project makes that work easier to inspect by consolidating merged PRs into a single view, organized by contributor, project, organization, and ecosystem.

How it works

The project periodically fetches merged pull request data from GitHub's public API for tracked organizations. The data is processed, aggregated, and served as static CSV files. The dashboard reads these files and renders the contribution layer in the browser.

Data

How we collect, organize, and keep fresh the information you see on the dashboard.

Ecosystems tracked

The project currently indexes merged PRs from multiple crypto ecosystems. Each ecosystem is defined as a set of organizations on GitHub. The full list of tracked ecosystems and organizations is available in the project repository's configuration.

Collection methodology

Data is collected through GitHub's public API using the Search endpoint for merged pull requests. The collection process is fully open-source and reproducible. Collection scripts reside in the repository for anyone to inspect or run independently.

Data freshness

The dataset is refreshed periodically. Each refresh captures the latest merged PRs from tracked organizations. New contributors, projects, and PRs appear after the next successful refresh cycle.

Metrics

What we count, what we don't, and how contributions are attributed.

What we measure

The dashboard focuses on merged pull requests by contributor, organization, project, and date. Metrics include: total PRs per contributor, number of contributors per ecosystem, project-level activity, and contribution concentration across ecosystems.

Limitations

This project measures merged PRs only. It does not track issues, comments, code reviews, or other forms of contribution. Additionally, only public repositories in tracked organizations are included. Data is as fresh as the last refresh cycle.

Attribution

Contributions are attributed to GitHub usernames as they appear in merged PR author fields. Bot accounts are identified and can be filtered out. GHOST — GitHub's placeholder for deleted or unavailable users — is also identified in the dataset.

Frequently asked questions

How often is the data updated?
The dataset is refreshed periodically. Check the repository for the latest refresh schedule.
Can I add a new ecosystem?
Yes. The collection scripts are open-source. See the Contributing section below or the repository README for instructions.
Why only merged PRs?
Merged PRs represent accepted contributions — work that was reviewed and integrated. This provides a clearer signal of meaningful contribution than raw activity metrics such as issues or comments.
How are bot accounts handled?
Accounts identified as bots are flagged in the dashboard filters. You can choose to hide or show them using the filter controls. GHOST (deleted accounts) is shown separately.
How is experience tier calculated?
Experience tiers are based on total merged PRs: Newcomer (1), Explorer (2), Regular (3-5), Builder (6-10), Experienced (11-20), Core (21-50), Veteran (51-100), Elite (101-500), Legend (501-1000), and Icon (1000+).

Technical

Architecture, local setup, and repository layout for developers.

Technical overview

The project is a static site hosted on Render. The frontend is vanilla HTML, CSS, and JavaScript with no framework dependencies. Internationalization (i18n) is handled client-side with JSON locale files. The dashboard is fully client-side rendered from static CSV data.

Local development

Clone the repository and run the dev server from the scripts/ directory. The dev server handles clean URL rewrites for the contributors page. Open the dashboard locally to test changes. See the repository README for full setup instructions.

Repository structure

The main application lives in app/. Data collection scripts are in scripts/. CSV data files are at the repository root. Locale files for i18n are in app/locales/. The contributor detail page is at contributors/.

Contributing

This project is open source. Contributions are welcome.

Contributing

To add a new ecosystem, submit a pull request updating the collection configuration. To report issues, suggest features, or ask questions, open an issue on GitHub.

Tracked transparently

All contributors to this project are tracked transparently through the dashboard itself.