ecosystem
ecosystem copied to clipboard
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
- If you want to build on top of OP Mainnet, refer to the Optimism Documentation
- If you want to build your own OP Stack based blockchain, refer to the OP Stack Guide
- If you want to contribute to the OP Stack, check out the Protocol Specs
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 │ ├── dapp-console: Dapp console frontend app │ ├── dapp-console-api: Dapp console backend api │ ├── event-log-indexer: Indexer app │ ├── paymaster-nft-mint: Nft mint + paymaster example app │ ├── paymaster-proxy: Paymaster proxy service ├── packages │ ├── api-plugin: Nx generators for api apps │ ├── contracts-ecosystem: Ecosystem contracts │ ├── op-app: Optimism Stack App Utils │ ├── screening: Utils for integrating app with screening service │ ├── ui-components: Shared ui components
Development Quick Start
Dependencies
You'll need the following:
Setup
Clone the repository and open it:
git clone [email protected]: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/op-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
Codegen
Nx generateors
-
trpc-api-generator
: generates the boiler plate code for creating a trpc api server
To run a generator run this command:
pnpm nx generate <name of generator> <name of new project>
Feel free to open up an issue on the repo if you're running into any issues!
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.
Releases
As of now we have not published any packages in this repo to npm, but stay tuned as we plan to do that once we add more packages to the repo!
License
All other files within this repository are licensed under the MIT License unless stated otherwise.