Skip to content

1cbyc/view0x

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

392 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

view0x

okay, today is a new day on my one project daily aim, and i am trying to build a smart contract audit tool. i noticed people i taught in 2021 became a big deal in just 18 months of work. the universe rewards those who put in their efforts and try their best.

to be honest, i have to perfect everything with the yarn setup and then i setup docker for this to work efficiently.

finally, the vuln scanner is working fine without errors. but i think it is not detecting vulnerabilities, gas optimizations or coe quality issues, because i intentionally used bad code from one hack for this. but i think this is because some detection methods i used are still stubs and need more robust AST traversal logic.

maybe because i am not much of a ui guy, so i want to perfect the vuln detection method before doing anything about the frontend/backend integration or even the UI itself.

So, I will implement tx.origin usage detection, unchecked external calls, weak randomness sources, missing access control, and dangerous delegatecall usage before i sleep.

i am used to getting my setup run properly on cli before trying to add a web ui for it. just to feel like a god!

okay, let me just work up the frontend at this point. let's even see what i have going. i downgraded my express from 5.x to 4.x and it is smooth now. backend running fine, time to get back to the frontend. some org wasted my time for an interview that never held, and while at it i lost funds i requested withdrawal for, i guess life is not fair.

freaking pissed, because why on earth would tailwind be causing so much errors.

okay, i use this method:

view0x/
├── backend/                    # Node.js/Express API server
│   ├── src/
│   │   ├── scanner-engine/    # TypeScript-based analysis engine (moved from root)
│   │   ├── services/          # Business logic services
│   │   ├── controllers/       # API route handlers
│   │   ├── models/            # Database models
│   │   └── workers/           # Background job processors
│   └── package.json
├── frontend/                   # React + Vite application
├── python/                     # Python analysis worker (FastAPI)
│   ├── analyzers/             # Slither, Mythril, Semgrep wrappers
│   └── main.py               # FastAPI server
├── docs/                      # Documentation
└── docker-compose.yml         # Container orchestration

view0x is a cloud-native SaaS platform for automated smart contract security analysis, providing developers with comprehensive vulnerability detection, gas optimization suggestions, and code quality assessments.

Screenshots

Contract Analyzer Login Page Login Page Login Page History Page Details Page

Features

  • Automated Security Scanning - Detect vulnerabilities in Solidity smart contracts
  • Real-time Analysis - Get instant results with WebSocket updates
  • Modern UI - Beautiful dark theme interface
  • Public & Authenticated - Scan contracts without login, save history with account
  • Detailed Reports - Comprehensive vulnerability analysis with severity levels
  • Fast & Scalable - Built for performance and reliability

How to Run

Option 1: Docker Compose (Recommended)

The default Docker setup runs the app as separate services:

  • web - frontend container
  • api - Node/Express backend
  • python-worker - analysis worker
  • postgres - PostgreSQL
  • redis - Redis

Everything uses the single root .env.example. Do not create separate backend/.env or frontend/.env files for Docker.

  1. Copy the root environment template:

    cp .env.example .env
  2. Start the stack:

    docker compose up -d --build
  3. Access the services:

    • Frontend: http://localhost:8088
    • Backend API: http://localhost:3001
    • API docs: http://localhost:8088/api-docs
    • PostgreSQL: localhost:5433
    • Redis: localhost:6380
  4. Check container status:

    docker compose ps
  5. Stop the stack:

    docker compose down

You can change any host port from the single root .env:

  • WEB_PORT
  • API_PORT
  • POSTGRES_PORT
  • REDIS_PORT

Option 2: Manual Setup (Development)

If you prefer to run services individually:

  1. Start PostgreSQL and Redis:

    docker-compose up db redis -d
  2. Backend Setup:

    cd backend
    npm install
    # Create .env file with your configuration
    npm run build
    npm run dev  # Runs on http://localhost:3001
  3. Frontend Setup:

    cd frontend
    npm install
    npm run dev  # Runs on http://localhost:5173 (Vite default)
  4. Python Worker (Optional):

    cd python
    pip install -r requirements.txt
    python main.py  # Runs on http://localhost:8000
  5. Scanner Engine (Optional):

    cd scanner-engine
    npm install
    npm run build
    npm start

Environment Variables

The project now uses a single root .env / .env.example as the main configuration source for Docker.

Important values:

  • WEB_PORT - Host port for the frontend container
  • API_PORT - Host port for the backend container
  • POSTGRES_PORT - Host port for PostgreSQL
  • REDIS_PORT - Host port for Redis
  • DATABASE_URL - Internal PostgreSQL connection string for containers
  • REDIS_URL - Internal Redis connection string for containers
  • JWT_SECRET - Secret for JWT tokens
  • PYTHON_API_URL - URL for the Python analysis worker

Deployment

i just realized i hardcoded it to localhost:3001/api/analysis/public. that is why when i shut down my pc it does not scan. anyways, in api.ts i have fixed it to take from render where i updated the api.

Production

  • Frontend: Deployed on Cloudflare Pages at view0x.com
  • Backend: Deployed on Railway at api.view0x.com
  • API Documentation: Available at https://api.view0x.com/api-docs (Swagger/OpenAPI)
  • Database: PostgreSQL on Railway
  • Cache: Redis on Railway

See CLOUDFLARE.md and RAILWAY.md for detailed deployment instructions.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

okay, in the end, i simply setup a wrangler for cloudflare workers to get it running well.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

okay, this is the end of it. i would use AI to write commit messages. i cant be explaining myself again. this stuff giving me brain rot, i cant even think clearly about full definition to give per fix i make.

it's 2026, and i have decided to rename, thank you!

Links

About

Analyze your Solidity smart contracts for vulnerabilities, gas optimizations, and code quality issues with our comprehensive security scanner.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors