Skip to main content

Security model

The central security rule of this site: interfaces have different exposure classes, and mixing them up is the most common operational mistake.

Exposure classes

ClassExamplesRule
Public-safe (with controls)Execution JSON-RPC read methods, Solana JSON-RPC readsExpose only behind a gateway with auth + rate limiting
Internal-onlyEthereum Beacon API, Aptos admin endpointsKeep on internal networks; never expose raw to the public internet
Admin / authenticatedEthereum Engine API, validator/admin RPCJWT/auth required; never publicly reachable
StreaminggRPC subscriptions, WebSocket PubSubTreat like public RPC + add connection-scaling controls

Baseline requirements

  1. No raw node ports on the public internet. Front everything with a gateway/proxy.
  2. Separate public, internal, and admin endpoints (see Public vs Private Endpoint).
  3. Rate limit and authenticate any externally reachable interface (see Rate Limiting, Auth / API Key).
  4. Engine API and validator/admin interfaces are never public.
  5. Beacon API is not public-by-default — the upstream spec explicitly warns against exposing it unprotected.

Per-chain specifics live in each chain's Developer Interfaces / Authentication / Exposure Policy section and in Operations → RPC Exposure Policy.