OSS on OP Directory
OSS projects produce many work artifacts (eg, git repos, smart contracts). But it takes inside knowledge to know where to find them. We created a schema for mapping artifacts to OSS projects. We built an initial directory of 100+ OSS projects on OP. And we deployed it to EAS.
Screenshots






Problem Statement
Open Source Software projects produce many different work artifacts (eg, git repos, smart contracts). But it often takes inside knowledge to know where to find them. Itβs hard to link onchain impact to offchain work.OSS on OP Directory introduces several new tools for addressing this problem.First, we created a schema for mapping artifacts to OSS projects. Next, we built an initial directory of 100+ OSS projects that are building on Optimism. We published the directory on npm. We also deployed a simplified version of the schema to EAS -- and tested it by making 50 attestations from the directory. Last, we built a Dune Dashboard to help track attestations from the community.In our repository, you'll find JSON schemas for defining artifacts, projects, and collections and reading them from YAML files. You'll also see automated tests to verify that all data (from us or crowdsourced via a pull request) conforms to the schema.In the./data/projectsdirectory, you'll see an initial 100+ open source projects populated by our team. We looked at projects that had smart contracts deployed on Optimism and manually mapped them to an associated GitHub repo or GitHub organization. The data is not complete -- and likely never will be as new artifacts are produced everyday.On Ethereum Attestation Station, you can view or interact with the schema we created for linking projects to blockchain addresseshere. You can view usage trends onDune, which currently includes 50 attestations for well-known projects like Galxe, sound.xyz, and Zora that are building on Optimism.Going forward, we'd love to see the community add more projects, artifacts, and EAS attestations. That way, anyone can track and analyze the impact of an OSS project permissionlessly!
Solution
This project consists of a number of components that work together to form the directory:JSON Schema for specifying projects and collection: We created aJSON schemafor specifying an open source "project", as well as a "collection" of projects. This current schema includes fields for GitHub organizations, GitHub repositories, npm packages, as well as on-chain contracts. Data is read to and from YAML files that are stored in theoss-directoryrepository. See here for more details: https://github.com/hypercerts-org/oss-directory/tree/main/src/resources/schemaData for 177 projects currently on OptimismUsing the schema, we collected information for 177 top projects on Optimism and committed them into the repository. This involved indexing on-chain activity using Dune dashboards, as well as manually searching for the associated GitHub organizations. See here for the data: https://github.com/hypercerts-org/oss-directory/tree/main/dataContinuous integration: Because we expect to receive outside contributions to the data, we created continuous integration scripts that will validate that contributed data conforms to the the specified schema. Below, you'll see where we useAjvto validate read files to the schema. We wrap these utility functions in a command-line tool usingyargs, which we invoke from GitHub actions.https://github.com/hypercerts-org/oss-directory/blob/main/src/validator/index.tshttps://github.com/hypercerts-org/oss-directory/blob/main/.github/workflows/ci-default.ymlJavaScript/TypeScript library for reading the latest dataWe published an npm package that makes it easy for anyone to read the latest data. Because we expect this data to be changing frequently, we do not publish the data itself to npm. Instead, the library will clone the repository into a temporary directory, read the latest data from the main branch, and return the data as JSON objects.https://www.npmjs.com/package/oss-directoryhttps://github.com/hypercerts-org/oss-directory/blob/main/src/fetchData.tsScripts for publishing to EASWe then created a script to also transform the data to conform to an EAS schema, and publish attestations on Optimism. These attestations are visible on indexers like Dune and EAS Scan:https://dune.com/os-observer/oss-on-op-attestationshttps://optimism.easscan.org/schema/view/0x739257b1bf8533a29a5c59a6dda5905c50f7c2bf436d709cd9ea7bfabbe5172b
Hackathon
Superhack
2024
Prizes
- π
π« Optimism β π₯ Best App for RetroPGF, PG, or Impact
Contributors
- ccerv1
229 contributions
- ryscheng
58 contributions
- ravenac95
28 contributions
- Aghostraa
22 contributions
- rohitmalekar
16 contributions
- DistributedDoge
4 contributions
- Jabolol
4 contributions
- lorenz234
4 contributions
- mseidlx
4 contributions
- baumstern
3 contributions
- Pfed-prog
3 contributions
- thinkAfCod
3 contributions
- TimDaub
2 contributions
- divine-comedian
2 contributions
- autonome
2 contributions
- eternauta1337
2 contributions
- vivekpal1
1 contributions
- xutianyi1999
1 contributions
- ufkhan97
1 contributions
- cryptotwilight
1 contributions
- kryptocodes
1 contributions
- sonyamann
1 contributions
- smallbraingames
1 contributions
- tnkshuuhei
1 contributions
- freedomhz
1 contributions
- darobin
1 contributions
- RobQuistNL
1 contributions
- patsissons
1 contributions
- noahlitvin
1 contributions
- nijoe1
1 contributions