[!WARNING] This project is under active development and not yet suitable for production. For questions or feature requests, contact us on Telegram or submit an issue. To track progress, star the repository. Supported by an Optimism grant, the project is divided into four milestones. This warning will be removed after completion of Milestone 4.
- [ ] Milestone 1: Homepage and basic nav (current stage)
- [ ] Milestone 2: Tx detail page
- [ ] Milestone 3: Contract detail page
- [ ] Milestone 4: Feedback incorporation and polish
OP Scan is a transaction explorer tailored specifically for the OP Stack and the Superchain vision. It's purpose built to be lightweight, so that anyone can run it locally next to their OP Stack nodes, when working on a new rollup.
OP Scan is built for rollups built on the OP Stack. If you are interested in it, have feedback or feature request, submit an issue here.
The app requires the following dependencies:
NodeJS >= 20
pnpm >= 9
Clone this repository:
git clone git@github.com:walnuthq/op-scan
Install the dependencies:
pnpm install
You will need to create a .env.local
file in the root of your repository and populate it with NEXT_PUBLIC_L1_RPC_URL
and NEXT_PUBLIC_L2_RPC_URL
.
NEXT_PUBLIC_L1_RPC_URL="https://eth-mainnet.g.alchemy.com/v2/..."
NEXT_PUBLIC_L2_RPC_URL="https://opt-mainnet.g.alchemy.com/v2/..."
You can get free node rpcs url by signing up to services such as Alchemy or Infura.
If you're running the indexer, you will also need to setup a websocket connection to the L2 chain:
Start up the app and see it running at http://localhost:3000
pnpm dev
To run the indexer, you first need to setup your DATABASE_URL
in .env.local
as well as websocket connections to your L1/L2 chains (once again you can get them from a 3rd-party provider):
DATABASE_URL="file:dev.db"
L1_RPC_WSS="wss://eth-mainnet.g.alchemy.com/v2/..."
L2_RPC_WSS="wss://opt-mainnet.g.alchemy.com/v2/..."
Then you can sync your local database with the Prisma schema:
pnpm prisma:db:push
We use Bun to run the indexer as a long-running script so make sure it is installed globally on your system.
Now you will be able to start indexing the blockchain by running the op-indexer
command:
pnpm op-indexer
You should start seeing blocks getting indexed in your terminal and you can explore the state of your local database using Prisma studio:
pnpm prisma:studio
If you need to change the Prisma schema at some point, make sure to regenerate the Prisma client and push to your local database:
pnpm prisma:generate
pnpm prisma:db:push
Deployments are handled automatically by Vercel, as soon as your PR is merged to main.
Head on to the issues tab to find a list of open contributions. Before making your first contribution, get familiar with our contributor guidelines.