Contribute to MorScan
MorScan is source-open, and we love pull requests. It is the same code that runs this site, so anything you fix or build here ships for everyone. Come poke at it.
The license, plainly
MorScan is licensed under FSL-1.1-MIT, Sentry's Fair Source license with an MIT future grant: free to use, fork, and self-host; no competing hosted service for 2 years; every release becomes MIT after two years, guaranteed. For contributors that changes nothing: fork, branch, send a PR, and your work is welcome.
Want more than the license grants? If you want to offer MorScan as a hosted service, embed it in a commercial product, or take MIT rights ahead of the two-year date, commercial licenses are available: morscan@drm3.io. Self-hosting and building your own providers never need one.
Run it locally
One small codebase. You need Node.js 22+ and npm; the stack details live in the README.
git clone https://github.com/DRM3Labs-OSS/morscan.io.git
cd morscan.io
npm install
npm run dev # local worker at http://localhost:8787
# before you open a PR, keep these green:
npm run typecheck # tsc --noEmit
npm run lint # biome lint src/
npm run build # wrangler deploy --dry-run
First-run setup (account id, D1 database, env vars) is in docs/GETTING_STARTED.md. The explorer runs without provenance signing, so you do not need any secrets to get a working local instance.
What is welcome
- Bug fixes. Something looks wrong or a number is off? A focused fix with a note on how you checked it is the best kind of PR.
- New handlers and views. Another slice of Morpheus activity worth surfacing? The routing and handler pattern is small and easy to extend.
- Performance. The stack is vanilla TypeScript with Canvas charts and a seven-package runtime. Making it leaner and faster is always in scope.
- Docs and examples. Clearer getting-started steps, API examples, and architecture notes help everyone who comes next.
- Ideas. Not sure yet? Open an issue and describe the problem. Small, focused proposals are easiest to move on.
Feedback and feature requests
Comments, concerns, feedback, and feature requests all live in one place: open a GitHub issue. Say what you saw and what you expected - a number that looks off, a page that reads wrong, a dataset you wish existed. We read every issue.
Style and workflow details are in CONTRIBUTING.md; CI runs the same checks you run locally. Security issues go through SECURITY.md, not a public issue.
Ready? Fork the repo, branch from main, and open a pull request describing the change and how you verified it. If you are looking for a first task, the open issues are a good place to start. We read them, and we mean it when we say contributions are welcome.