diff --git a/experiments/ethereum-repo-clusters/.gitignore b/experiments/ethereum-repo-clusters/.gitignore new file mode 100644 index 00000000..58ae5f3c --- /dev/null +++ b/experiments/ethereum-repo-clusters/.gitignore @@ -0,0 +1,38 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environment +.env +.venv +env/ +venv/ +ENV/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Project specific +data/ +output/ \ No newline at end of file diff --git a/experiments/ethereum-repo-clusters/CategorySummary.ipynb b/experiments/ethereum-repo-clusters/CategorySummary.ipynb new file mode 100644 index 00000000..9ca79d6b --- /dev/null +++ b/experiments/ethereum-repo-clusters/CategorySummary.ipynb @@ -0,0 +1,531 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "9c0861ae-d89b-4f21-a743-f5a77efa7648", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "add99052-fecf-4130-9cc5-b7413c643864", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
| \n", + " | repo_artifact_id | \n", + "project_id | \n", + "project_name | \n", + "display_name | \n", + "repo_artifact_namespace | \n", + "repo_artifact_name | \n", + "created_at | \n", + "updated_at | \n", + "star_count | \n", + "fork_count | \n", + "... | \n", + "is_actively_maintained | \n", + "final_recommendation | \n", + "processing_timestamp | \n", + "summary | \n", + "readme_status | \n", + "protocol_architect | \n", + "ecosystem_analyst | \n", + "security_researcher | \n", + "user_experience_advocate | \n", + "governance_specialist | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "jXXy/fnXRva/c1jf/Weav9O3pWDHf/lVArjj0/oteUM= | \n", + "KLkMfahLmIEtzAbihkJ4U9p0e/3zWn0iN6xBrwN++lU= | \n", + "ethereum-attestation-service | \n", + "Ethereum Attestation Service | \n", + "ethereum-attestation-service | \n", + "eas-docs-site | \n", + "2022-11-09 19:39:56.000 UTC | \n", + "2025-06-02 15:51:08.000 UTC | \n", + "17 | \n", + "39 | \n", + "... | \n", + "True | \n", + "Developer Experience Tools | \n", + "2025-06-06T00:55:35.737447 | \n", + "The project provides documentation for the Eth... | \n", + "SUCCESS | \n", + "Developer Experience Tools | \n", + "Developer Experience Tools | \n", + "Developer Experience Tools | \n", + "Developer Experience Tools | \n", + "Application-Specific & Niche Tools | \n", + "
| 1 | \n", + "Ymt6ZmVh75JL7ml3IM9hU32qFd+GB84kXijLttRFS+w= | \n", + "4JnmAZ2ikJpcjoRMX+2ZLxAQ10don2FQd6yPyDaBZ20= | \n", + "erigontech | \n", + "erigontech | \n", + "erigontech | \n", + "gmp-wasm | \n", + "2020-12-16 08:27:02.000 UTC | \n", + "2025-03-24 16:40:59.000 UTC | \n", + "17 | \n", + "4 | \n", + "... | \n", + "True | \n", + "Cryptography & Primitives | \n", + "2025-06-06T00:55:27.645719 | \n", + "The GNU MP Library provides arbitrary precisio... | \n", + "SUCCESS | \n", + "Cryptography & Primitives | \n", + "Cryptography & Primitives | \n", + "Cryptography & Primitives | \n", + "Cryptography & Primitives | \n", + "Cryptography & Primitives | \n", + "
| 2 | \n", + "sTL/I78T3P6uyVN+En480uSHiTXT7UdHPmKQlvWxCkc= | \n", + "4JnmAZ2ikJpcjoRMX+2ZLxAQ10don2FQd6yPyDaBZ20= | \n", + "erigontech | \n", + "erigontech | \n", + "erigontech | \n", + "diagnostics | \n", + "2023-02-22 11:05:42.000 UTC | \n", + "2025-04-25 07:42:52.000 UTC | \n", + "17 | \n", + "21 | \n", + "... | \n", + "True | \n", + "Infrastructure & Node Operations | \n", + "2025-06-06T00:55:20.010674 | \n", + "The Erigon Diagnostics System is a web applica... | \n", + "SUCCESS | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "DeFi Security & Monitoring | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "
| 3 | \n", + "9C23r6x0hqtbR/lB/1nYpc5KVgCtm4ga+lOJa4gd2cY= | \n", + "Fs/BFdYMfeuzzzWPOX3dtOA6Z4AOJsB2eO2JIoZEzUo= | \n", + "ensdomains | \n", + "ENS | \n", + "ensdomains | \n", + "court | \n", + "2018-05-02 19:41:02.000 UTC | \n", + "2025-05-20 03:41:25.000 UTC | \n", + "17 | \n", + "7 | \n", + "... | \n", + "True | \n", + "Application-Specific & Niche Tools | \n", + "2025-06-06T00:55:11.604116 | \n", + "Court provides smart contracts for arbitrating... | \n", + "SUCCESS | \n", + "Application-Specific & Niche Tools | \n", + "Application-Specific & Niche Tools | \n", + "DeFi Security & Monitoring | \n", + "Application-Specific & Niche Tools | \n", + "Governance & DAO Tooling | \n", + "
| 4 | \n", + "j9aT6b4e9dCsCbJ42JXen90EHik4VhyLFvX2RjeiJGM= | \n", + "Fs/BFdYMfeuzzzWPOX3dtOA6Z4AOJsB2eO2JIoZEzUo= | \n", + "ensdomains | \n", + "ENS | \n", + "ensdomains | \n", + "op-resolver | \n", + "2022-11-03 11:14:36.000 UTC | \n", + "2025-05-20 03:21:33.000 UTC | \n", + "17 | \n", + "6 | \n", + "... | \n", + "True | \n", + "Interoperability & Cross-chain | \n", + "2025-06-06T00:55:03.917944 | \n", + "The Optimism Resolver project facilitates stor... | \n", + "SUCCESS | \n", + "Infrastructure & Node Operations | \n", + "Interoperability & Cross-chain | \n", + "Interoperability & Cross-chain | \n", + "User Interface & Integration SDKs | \n", + "Governance & DAO Tooling | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 5234 | \n", + "AcuAtRmOCfY1rQN0rAx8iP5pdbgveBahZYSWK2leQq4= | \n", + "AmxsQKHnsygqA+a7WJawinHjVclh84R+edks3EL9jiM= | \n", + "fuellabs | \n", + "Fuel Network | \n", + "fuellabs | \n", + "fuels-rs | \n", + "2021-10-31 22:33:54.000 UTC | \n", + "2025-06-03 17:34:29.000 UTC | \n", + "43747 | \n", + "1355 | \n", + "... | \n", + "True | \n", + "Development Frameworks | \n", + "2025-06-05T14:24:14.479181 | \n", + "The fuels-rs project provides a Rust SDK for t... | \n", + "SUCCESS | \n", + "Core Protocol Interfaces | \n", + "Development Frameworks | \n", + "Development Frameworks | \n", + "Development Frameworks | \n", + "Development Frameworks | \n", + "
| 5235 | \n", + "JfvNeHojsqThZKXGfbrSSW4JIf2db88eIku67txzj9w= | \n", + "vD6QgU2nKpWiutcCnblDJkVHtDkLDH6oyITV+xpe3+g= | \n", + "go-ethereum | \n", + "geth | \n", + "ethereum | \n", + "go-ethereum | \n", + "2013-12-26 13:05:46.000 UTC | \n", + "2025-06-03 16:54:54.000 UTC | \n", + "49065 | \n", + "20888 | \n", + "... | \n", + "True | \n", + "Infrastructure & Node Operations | \n", + "2025-06-05T14:24:08.096520 | \n", + "Go Ethereum (geth) is a Golang implementation ... | \n", + "SUCCESS | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "
| 5236 | \n", + "imBvQgAogfFYL0+hque3sUxe+dN53nsDQFoz1q1jgDA= | \n", + "AmxsQKHnsygqA+a7WJawinHjVclh84R+edks3EL9jiM= | \n", + "fuellabs | \n", + "Fuel Network | \n", + "fuellabs | \n", + "fuel-core | \n", + "2020-08-27 21:12:14.000 UTC | \n", + "2025-06-03 17:34:30.000 UTC | \n", + "57637 | \n", + "2852 | \n", + "... | \n", + "True | \n", + "Infrastructure & Node Operations | \n", + "2025-06-05T14:24:01.176979 | \n", + "The Fuel client implements a Fuel node, provid... | \n", + "SUCCESS | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "
| 5237 | \n", + "XK2KsRrMXU8N9WUAXb0V+X2pZWgx9H2UCtaJ6IONUC4= | \n", + "AmxsQKHnsygqA+a7WJawinHjVclh84R+edks3EL9jiM= | \n", + "fuellabs | \n", + "Fuel Network | \n", + "fuellabs | \n", + "sway | \n", + "2021-01-19 20:54:33.000 UTC | \n", + "2025-06-03 17:34:31.000 UTC | \n", + "62255 | \n", + "5405 | \n", + "... | \n", + "True | \n", + "Language & Compilation Tools | \n", + "2025-06-05T14:23:54.181337 | \n", + "Sway is a programming language designed for th... | \n", + "SUCCESS | \n", + "Language & Compilation Tools | \n", + "Language & Compilation Tools | \n", + "Language & Compilation Tools | \n", + "Language & Compilation Tools | \n", + "Language & Compilation Tools | \n", + "
| 5238 | \n", + "ACDSfw399At2CyBKEzgNCwOZ3zvC990eWZjGw+Z8isA= | \n", + "cJt1yXO/geeLxyt++Pe5iU+kUyklaoGot3rHqrDNk1o= | \n", + "base-org | \n", + "Base | \n", + "base-org | \n", + "node | \n", + "2023-02-01 13:55:02.000 UTC | \n", + "2025-02-10 01:22:12.000 UTC | \n", + "68568 | \n", + "2635 | \n", + "... | \n", + "True | \n", + "Infrastructure & Node Operations | \n", + "2025-06-05T14:23:47.813647 | \n", + "The Base Node project provides Docker configur... | \n", + "SUCCESS | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "Infrastructure & Node Operations | \n", + "
5239 rows × 22 columns
\n", + "| \n", + " | metric_name | \n", + "
|---|---|
| 0 | \n", + "GITCOIN_DONATIONS_funding_awarded_biannually | \n", + "
| 1 | \n", + "GITCOIN_DONATIONS_funding_awarded_daily | \n", + "
| 2 | \n", + "GITCOIN_DONATIONS_funding_awarded_monthly | \n", + "
| 3 | \n", + "GITCOIN_DONATIONS_funding_awarded_over_all_time | \n", + "
| 4 | \n", + "GITCOIN_DONATIONS_funding_awarded_quarterly | \n", + "
| 5 | \n", + "GITCOIN_DONATIONS_funding_awarded_weekly | \n", + "
| 6 | \n", + "GITCOIN_DONATIONS_funding_awarded_yearly | \n", + "
| 7 | \n", + "GITCOIN_MATCHING_funding_awarded_biannually | \n", + "
| 8 | \n", + "GITCOIN_MATCHING_funding_awarded_daily | \n", + "
| 9 | \n", + "GITCOIN_MATCHING_funding_awarded_monthly | \n", + "
| 10 | \n", + "GITCOIN_MATCHING_funding_awarded_over_all_time | \n", + "
| 11 | \n", + "GITCOIN_MATCHING_funding_awarded_quarterly | \n", + "
| 12 | \n", + "GITCOIN_MATCHING_funding_awarded_weekly | \n", + "
| 13 | \n", + "GITCOIN_MATCHING_funding_awarded_yearly | \n", + "
| 14 | \n", + "OPEN_COLLECTIVE_funding_received_biannually | \n", + "
| 15 | \n", + "OPEN_COLLECTIVE_funding_received_daily | \n", + "
| 16 | \n", + "OPEN_COLLECTIVE_funding_received_monthly | \n", + "
| 17 | \n", + "OPEN_COLLECTIVE_funding_received_over_all_time | \n", + "
| 18 | \n", + "OPEN_COLLECTIVE_funding_received_quarterly | \n", + "
| 19 | \n", + "OPEN_COLLECTIVE_funding_received_weekly | \n", + "
| 20 | \n", + "OPEN_COLLECTIVE_funding_received_yearly | \n", + "
| 21 | \n", + "OSS_FUNDING_funding_awarded_biannually | \n", + "
| 22 | \n", + "OSS_FUNDING_funding_awarded_daily | \n", + "
| 23 | \n", + "OSS_FUNDING_funding_awarded_monthly | \n", + "
| 24 | \n", + "OSS_FUNDING_funding_awarded_over_all_time | \n", + "
| 25 | \n", + "OSS_FUNDING_funding_awarded_quarterly | \n", + "
| 26 | \n", + "OSS_FUNDING_funding_awarded_weekly | \n", + "
| 27 | \n", + "OSS_FUNDING_funding_awarded_yearly | \n", + "
| \n", + " | metric_name | \n", + "total_amount_in_usd | \n", + "
|---|---|---|
| 0 | \n", + "OSS_FUNDING_funding_awarded_over_all_time | \n", + "364887873.600968 | \n", + "
| 1 | \n", + "GITCOIN_MATCHING_funding_awarded_over_all_time | \n", + "13305117.158144 | \n", + "
| 2 | \n", + "GITCOIN_DONATIONS_funding_awarded_over_all_time | \n", + "11666103.711711 | \n", + "
| \n", + " | project_display_name | \n", + "total_amount_in_usd | \n", + "
|---|---|---|
| 0 | \n", + "GMX | \n", + "21000000.0 | \n", + "
| 1 | \n", + "MUX Protocol | \n", + "10876479.0 | \n", + "
| 2 | \n", + "Synthetix | \n", + "10022628.074157 | \n", + "
| 3 | \n", + "Perpetual Protocol | \n", + "9287212.140718 | \n", + "
| 4 | \n", + "Gains Network | \n", + "7898396.135 | \n", + "
| 5 | \n", + "Velodrome | \n", + "7895037.76024 | \n", + "
| 6 | \n", + "Camelot | \n", + "5407500.0 | \n", + "
| 7 | \n", + "Stargate Finance | \n", + "5289458.865658 | \n", + "
| 8 | \n", + "Vertex Protocol | \n", + "5250000.0 | \n", + "
| 9 | \n", + "Radiant | \n", + "4991077.0 | \n", + "
| \n", + " | project_display_name | \n", + "total_amount_in_usd | \n", + "
|---|---|---|
| 0 | \n", + "Gitcoin | \n", + "1099895.038376 | \n", + "
| 1 | \n", + "Revoke | \n", + "748859.365745 | \n", + "
| 2 | \n", + "DefiLlama | \n", + "429924.507285 | \n", + "
| 3 | \n", + "Hey | \n", + "360529.24178 | \n", + "
| 4 | \n", + "JediSwap | \n", + "333277.670918 | \n", + "
| 5 | \n", + "Dark Forest | \n", + "332205.420888 | \n", + "
| 6 | \n", + "ZigZag Exchange | \n", + "210175.931949 | \n", + "
| 7 | \n", + "ethers.js | \n", + "190702.539836 | \n", + "
| 8 | \n", + "rotki | \n", + "174990.340416 | \n", + "
| 9 | \n", + "Taho | \n", + "170854.869607 | \n", + "
| \n", + " | project_display_name | \n", + "total_amount_in_usd | \n", + "
|---|---|---|
| 0 | \n", + "Gitcoin | \n", + "797206.330376 | \n", + "
| 1 | \n", + "Dark Forest | \n", + "297517.115925 | \n", + "
| 2 | \n", + "ZigZag Exchange | \n", + "199746.433382 | \n", + "
| 3 | \n", + "ethers.js | \n", + "129500.966707 | \n", + "
| 4 | \n", + "Prysm Ethereum Client | \n", + "128522.705766 | \n", + "
| 5 | \n", + "rotki | \n", + "122666.927997 | \n", + "
| 6 | \n", + "ZeroPool | \n", + "116795.642612 | \n", + "
| 7 | \n", + "Lighthouse by Sigma Prime | \n", + "114759.839844 | \n", + "
| 8 | \n", + "The Tor Project | \n", + "110669.738113 | \n", + "
| 9 | \n", + "Hardhat | \n", + "110539.758225 | \n", + "
| \n", + " | time | \n", + "round_number | \n", + "round_name | \n", + "event_source | \n", + "donor_address | \n", + "amount_in_usd | \n", + "
|---|---|---|---|---|---|---|
| 0 | \n", + "2023-02-09 15:58:07.078 | \n", + "<NA> | \n", + "Gitcoin Grants | \n", + "GITCOIN_DONATIONS | \n", + "0x386ea3171dcc9405311fd75b316cc2a87ecadeca | \n", + "617893.575 | \n", + "
| 1 | \n", + "2023-08-29 08:32:57.000 | \n", + "18 | \n", + "Web3 Open Source Software | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "15001.1375 | \n", + "
| 2 | \n", + "2024-11-25 14:26:59.000 | \n", + "22 | \n", + "GG22 OSS - dApps and Apps | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "14984.28125 | \n", + "
| 3 | \n", + "2024-05-31 14:35:02.000 | \n", + "20 | \n", + "dApps & Apps | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "14979.978125 | \n", + "
| 4 | \n", + "2023-11-29 20:18:47.000 | \n", + "19 | \n", + "Web3 Open Source Software | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "14849.591509 | \n", + "
| 5 | \n", + "2022-08-24 00:00:00.000 | \n", + "15 | \n", + "<NA> | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "12500.0 | \n", + "
| 6 | \n", + "2024-08-26 15:19:00.000 | \n", + "21 | \n", + "GG21: Thriving Arbitrum Summer | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "9839.680095 | \n", + "
| 7 | \n", + "2022-08-24 00:00:00.000 | \n", + "15 | \n", + "<NA> | \n", + "GITCOIN_MATCHING | \n", + "<NA> | \n", + "7410.488854 | \n", + "
| 8 | \n", + "2024-05-07 10:04:49.000 | \n", + "20 | \n", + "dApps & Apps | \n", + "GITCOIN_DONATIONS | \n", + "0xe2a26d5174b133abc4b338df1b07295f03a4c85e | \n", + "1000.42865 | \n", + "
| 9 | \n", + "2024-05-06 17:29:47.000 | \n", + "20 | \n", + "dApps & Apps | \n", + "GITCOIN_DONATIONS | \n", + "0x60a06b2eee871e349331143ef173ecefd7a8ce01 | \n", + "537.338562 | \n", + "
| \n", + " | from_funder_name | \n", + "grant_pools | \n", + "amount_in_usd | \n", + "
|---|---|---|---|
| 0 | \n", + "optimism | \n", + "12 | \n", + "240450291.744 | \n", + "
| 1 | \n", + "arbitrumfoundation | \n", + "1 | \n", + "122850952.0 | \n", + "
| 2 | \n", + "stellar | \n", + "29 | \n", + "32989032.98 | \n", + "
| 3 | \n", + "octant-golemfoundation | \n", + "5 | \n", + "3965429.51329 | \n", + "
| 4 | \n", + "dao-drops-dorgtech | \n", + "1 | \n", + "250001.0 | \n", + "
| 5 | \n", + "clrfund | \n", + "1 | \n", + "83028.740386 | \n", + "
| \n", + " | from_project_id | \n", + "to_project_id | \n", + "funder | \n", + "project | \n", + "amount | \n", + "
|---|---|---|---|---|---|
| 2142 | \n", + "Qgbm336fY9862LN2Czg3UX04A3p7I/79Bv2M4D61DAI= | \n", + "8IKXraxq1pDuQD1xaDI20cjFrel55TZ/zf6LmP69qEg= | \n", + "Gitcoin | \n", + "efdevcon | \n", + "13.531599 | \n", + "
| 2143 | \n", + "Qgbm336fY9862LN2Czg3UX04A3p7I/79Bv2M4D61DAI= | \n", + "79HQoZtyZftibazh6Yz63aU06XODWs7b/9h4JAqPa1s= | \n", + "Gitcoin | \n", + "LexDAO | \n", + "86499.728685 | \n", + "
| 2144 | \n", + "5Fgf9xv3CxTV+YbSShdY9XCJs7tgW8KNwQWq9rHUEsQ= | \n", + "79HQoZtyZftibazh6Yz63aU06XODWs7b/9h4JAqPa1s= | \n", + "clr.fund | \n", + "LexDAO | \n", + "193.952856 | \n", + "
| 2145 | \n", + "Qgbm336fY9862LN2Czg3UX04A3p7I/79Bv2M4D61DAI= | \n", + "yEebFy4M1iAdb9+YQmdssSx9Qf+ZXfSVguL/JyidngI= | \n", + "Gitcoin | \n", + "DeFiEye | \n", + "224058.115245 | \n", + "
| 2146 | \n", + "5Fgf9xv3CxTV+YbSShdY9XCJs7tgW8KNwQWq9rHUEsQ= | \n", + "JQtLQErRk0u41xS292Cg+s3cRr8LaD5lQ2kME/Syp2Q= | \n", + "clr.fund | \n", + "Asilo Digital | \n", + "703.639308 | \n", + "