Snarkyscan is an open source block explorer for Mina protocol that you can selfhost and explore information about Mina accounts and ZkApps deployed on different networks.
The easiest way to get started exploring Mina is with the canonical deployments.
Mina Mainnet: https://snarkyscan.com
Mina's Berkeley Testnet: https://berkeley.snarkyscan.com
Additional documentation exists that can guide you through different features of the application.
App Documentation: https://docs.snarkyscan.com
The key features in the alpha release of the project are:
- Overview of Mina market and recent blocks
- Detailed lookups of wallets, blocks, and transactions
- Support for Berkeley testnet and Mina mainnet
- Connect a wallet to interact and highlight your activity with ZkApps
- Open source auditable code with various deployment methods
Deploying Snarkyscan is easy with Docker. Images are published from the latest branch commits. For example to start up an instance with the latest develop code:
docker run -e NEXT_PUBLIC_API_URL= --rm -p 80:3000 ghcr.io/onetxpunch/snarkyscan:develop
A docke-compose.yml for your deployment could look like the following:
services:
snarkyscan:
image: ghcr.io/onetxpunch/snarkyscan:develop
restart: unless-stopped
ports:
- 80:3000
env:
- NEXT_PUBLIC_API_URL= # local graphql endpoint
Snarkyscan is built as a hybrid application using Next.js. This permits developers to develop tightly coupled web applications with a trusted execution layer on the server side. Industry leading applications using are many such as: Uniswap, 1inch. It's also one of the recommended starting options for the o1js templates.
The UI is developed in React using Typescript and TailwindCSS. These are performant and result in highly optimized applications with a single page design.
Support for interactions with Mina network is provided using o1js
to fetch account information and over GraphQL using Relay to lint queries to archive Mina data providers.
To streamline contributions and avoid git conflicts, heres a good way to prepare a PR:
- Clone the Repository: Start by cloning the repository to your local machine or creating a fork.
- Create a Branch: Branch off from the develop branch. Name your branch in a way that helps to describe the proposed change.
- Commit Your Changes: Make your changes and commit them with clear commit messages.
- Open a Pull Request: Once your changes are committed, open a pull request against the develop branch.
- Describe Your Changes: In the pull request, provide a concise description of your changes.
When in doubt, feel free to still propose your change or start a discussion. Strong support and clear reasoning can lead to a contributor implementing your suggestions.
Snarkyscan is built for Mina's blockchain. The driving factor is the imminent launch of ZkApps on the mainnet which will unlock new programmatic use cases for decentralized application developers.
As more ZkApps are deployed onto the live networks, it will become imperative for users to have reliable and robust options for examining their activity on-chain. Snarkyscan augments every setup with their own UI they can deploy and privately view information transparently and conveniently from any device with a browser.