---
title: "infra"
description: "Operational tooling for Base — basectl, ingress RPC, WebSocket proxy, mempool rebroadcaster, and tests."
source: https://basehub.org/crates/infra/overview/
---
The `infra` crate group runs the operational services around the Base node. It powers the auxiliary binaries that sit beside the main client.

## Sub-crates

| Crate | Package Name | Purpose |
|-------|-------------|---------|
| [audit](/crates/infra/audit/) | `audit-archiver-lib` | Audit log archival |
| [basectl](/crates/infra/basectl/) | `basectl-cli` | Node management utility |
| [based](/crates/infra/based/) | `based` | Base daemon service |
| [ingress-rpc](/crates/infra/ingress-rpc/) | `ingress-rpc-lib` | RPC ingress proxy (Kafka-based) |
| [mempool-rebroadcaster](/crates/infra/mempool-rebroadcaster/) | `mempool-rebroadcaster` | Transaction rebroadcasting service |
| [system-tests](/crates/infra/system-tests/) | `system-tests` | End-to-end system test framework |
| [websocket-proxy](/crates/infra/websocket-proxy/) | `websocket-proxy` | WebSocket proxy for flashblock streaming |

## Role in the Architecture

The infra crates provide the operational tooling around the core node:

- **basectl** — A management utility for configuring and inspecting Base nodes. Supports mainnet, sepolia, and devnet configurations.
- **based** — The Base daemon that orchestrates node services.
- **ingress-rpc** — An RPC proxy that routes incoming JSON-RPC requests, using Kafka for message queuing.
- **websocket-proxy** — Proxies WebSocket connections for flashblock streaming with Brotli compression.
- **mempool-rebroadcaster** — Rebroadcasts transactions from the mempool to ensure propagation.
- **audit** — Archives audit logs for operational monitoring.
- **system-tests** — Integration and end-to-end tests using Docker Compose.

## Source

[`crates/infra/`](https://github.com/base/base/tree/main/crates/infra)
