UCAN Visualization Web App is a comprehensive developer tool for parsing, validating, and visualizing UCAN (User Controlled Authorization Networks) delegation chains. This application addresses the core challenge of debugging decentralized authorization by providing visual feedback and detailed error reporting for UCAN tokens.
- Node.js >= 18
- Yarn 1.22.22 (or npm/pnpm)
- Go >= 1.21 (for backend)
- Air (Go hot reload tool)
-
Clone the repository
git clone <repository-url> cd UCAN
-
Install dependencies
yarn install
-
Install Go tools (required for backend hot reload)
make install-tools
This installs Air for Go hot reloading.
Development Mode (Both apps)
yarn devRuns both frontend (port 3000) and backend in parallel.
yarn dev:reloadRuns both frontend (port 3000) and backend (using Air) in parallel, with hot reload on the backend.
Frontend Only
yarn dev-frontendStarts Next.js frontend on http://localhost:3000
Backend Only
yarn dev-backendStarts Go backend with Air hot reloading.
| Command | Description |
|---|---|
yarn dev |
Run both frontend and backend in parallel |
yarn dev-frontend |
Run only the frontend application |
yarn dev-backend |
Run only the backend with Air hot reload |
yarn dev:reload |
Run both apps with hot reload enabled |
yarn build |
Build all applications |
yarn lint |
Lint all applications |
yarn format |
Format code with Prettier |
yarn check-types |
Type-check all TypeScript files |
| Command | Description |
|---|---|
yarn dev |
Run backend server (direct Go run) |
yarn dev:reload |
Run backend with Air hot reload |
yarn build |
Build backend binary to bin/server |
yarn lint |
Run golangci-lint |
yarn test |
Run Go tests |
| Command | Description |
|---|---|
yarn dev |
Run frontend with Turbopack (fast refresh) |
yarn dev:reload |
Run frontend in standard mode |
yarn build |
Build production-ready frontend |
yarn start |
Start production server |
yarn lint |
Run ESLint |
yarn check-types |
Type-check TypeScript |
| Command | Description |
|---|---|
make install-tools |
Install Air for Go hot reloading |
UCAN/
├── apps/
│ ├── backend/ # Go backend API
│ │ ├── cmd/ # Application entry points
│ │ ├── internal/ # Internal packages
│ │ │ ├── api/ # HTTP handlers and routing
│ │ │ ├── config/ # Configuration management
│ │ │ ├── models/ # Data models
│ │ │ └── services/ # Business logic services
│ │ ├── pkg/ # Public packages
│ │ └── test/ # Tests and fixtures
│ └── frontend/ # Next.js frontend
│ └── app/ # Next.js 15 app directory
├── packages/
│ ├── eslint-config/ # Shared ESLint configurations
│ ├── typescript-config/# Shared TypeScript configurations
│ └── ui/ # Shared UI components
└── turbo.json # Turborepo configuration
Delegation Chain Visualizer
Visual tree/graph showing who delegated what to whom Interactive exploration of trust relationships Color-coded validity indicators (valid/expired/invalid) See the complete authorization path from root to end user
Invocation Inspector
Paste a UCAN invocation and see exactly what it's trying to do View the capability being invoked (resource, ability, caveats) Inspect all attached proofs in the invocation Understand invocation metadata (issuer, audience, timestamps)
Capability Breakdown
Parse and display resources, abilities, and attenuations in human-readable format See technical capability structure translated to plain English Understand what permissions are granted and what restrictions apply Identify how capabilities were narrowed through delegation (attenuation)
Proof Chain Validator
Check if a UCAN chain is valid and where it breaks if invalid Cryptographic signature verification Time-based validation (expiration, not-before) Capability escalation detection Clear root cause analysis with fix suggestions