> For the complete documentation index, see [llms.txt](https://gotts.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gotts.gitbook.io/docs/prd-shared/port-allocation.md).

# Port Allocation

> **Last Updated**: 2026-02-21 | **Referenced by**: devenv/01-overview\.md, vault/05-local-dev.md
>
> Canonical port assignments for all local development services. When adding a new service, allocate a port here first to avoid conflicts.

***

## Port Map (Normative)

| Port | Service                      | Package              | Notes                                               |
| ---- | ---------------------------- | -------------------- | --------------------------------------------------- |
| 3000 | Vault debug UI               | `packages/vault/ui`  | Vite dev server                                     |
| 3001 | Devenv debug UI              | `packages/devenv/ui` | React + Vite                                        |
| 3002 | Portal local server          | `packages/portal`    | `npx @gotts.ai portal` — agent management dashboard |
| 3003 | Devenv deployer HTTP         | `packages/devenv`    | Script endpoint for contract deployment             |
| 5100 | Otterscan block explorer     | Docker (external)    | Zero-config, no database                            |
| 8080 | Vault MCP server (HTTP+SSE)  | `packages/vault`     | Standalone HTTP transport                           |
| 8081 | Vault MCP server (WebSocket) | `packages/vault`     | WebSocket transport                                 |
| 8545 | Anvil RPC                    | `packages/devenv`    | Default EVM JSON-RPC endpoint                       |

## Conflict Resolution

* `apps/web` (Next.js) defaults to port 3000 in production. During local development with `pnpm testnet`, the vault debug UI occupies 3000. If both need to run simultaneously, start `apps/web` with `PORT=3003 pnpm dev`.
* Anvil always binds to 8545. If another Anvil or Hardhat instance is running, kill it first or use `--port` to override.

## Reserved Range

Ports 8082-8099 are reserved for future MCP server instances (e.g., per-agent servers during swarm simulation).
