Skip to content

ethereum-optimism/ecosystem

Repository files navigation



Optimism

Optimism is Ethereum, scaled.


Ecosystem

In this repository, you'll find numerous code references for applications & packages to help app developers build on top of the OP Stack with ease.

If the Optimism Repository is a place where the protocol and its infrastructure gets built. The Ecosystem Repository is a place where utilities, applications, and examples get built to interact with the protocols and its infrastructure.

Designed to be "aggressively open source," we encourage you to explore, modify, extend, and test the code as needed. We look forward to building with you!

Documentation

Support

For technical support head over to the GitHub Developer forum. Governance discussion can also be found on the Optimism Governance Forum.

Directory Structure

├── apps
│   ├── bridge-app: Example Bridge App
├── packages
├── ├── supersim: Util supersim package that works with npx
│   ├── viem: Viem action/utils
│   ├── wagmi: Wagmi react hooks

Development Quick Start

Dependencies

You'll need the following:

Setup

Clone the repository and open it:

git clone git@github.com:ethereum-optimism/ecosystem.git
cd ecosystem

Install the Correct Version of NodeJS

Install the correct node version with nvm

nvm use

Install Node Modules With pnpm

pnpm i

Running Targets

Each application and package have npm scripts in there indivdual package.json. In order to run those easily we can leverage nx here. The nx.json file is setup to improve QoL while working in the repo.

The npm package name can be found in their package.json and the targets are what you'll see in the scripts object in the package.json

pnpm nx run <npm package name>:<target>

For example if we wanted to run the bridge-app for development we could run this

pnpm nx run @eth-optimism/bridge-app:dev

If we wanted to build the op-app package we could run this

pnpm nx run @eth-optimism/bridge-app:build

There will be a few common targets that you will most likely see across all applications and packages in the repo.

  • build
  • clean
  • dev
  • typecheck
  • lint
  • lint:fix

Contributing

No contribution is too small and all contributions are valued. Thanks for your help improving the project! We are so happy to have you!

You can read our contribution guide here to understand better how we work in the repo.

License

All other files within this repository are licensed under the MIT License unless stated otherwise.