Command-line options
Prysm's client software can be configured using flags and YAML files. This document provides a comprehensive list of all available flags and their descriptions. The flag descriptions that you see in this document are generated from code comments within the latest Prysm release.
Beacon node flags
NAME:
beacon-chain - this is a beacon chain implementation for Ethereum
USAGE:
beacon-chain [options] command [command options] [arguments...]
AUTHOR:
GLOBAL OPTIONS:
db Defines commands for interacting with the Ethereum Beacon Node database
generate-auth-secret creates a random, 32 byte hex string in a plaintext file to be used for authenticating JSON-RPC requests. If no --output-file flag is defined, the file will be created in the current working directory
completion Generate shell completion scripts
help, h Shows a list of commands or help for one command
cmd OPTIONS:
--accept-terms-of-use Accepts Terms and Conditions (for non-interactive environments). (default: false)
--config-file value Filepath to a yaml file with flag values.
beacon-chain OPTIONS:
--api-timeout value Specifies the timeout value for API requests in seconds. (default: 10s)
--batch-verifier-limit value Maximum number of signatures to batch verify at once for beacon attestation p2p gossip. (default: 1000)
--chain-config-file value Path to a YAML file with chain config values.
--chain-id value Sets the chain id of the beacon chain (default: 0)
--disable-debug-rpc-endpoints Disables the debug Beacon API namespace. (default: false)
--disable-graffiti-client-append Disables appending consensus and execution client version information to the block graffiti (default: false)
--e2e-config Enables the E2E testing config, only for use within end-to-end testing. (default: false)
--grpc-max-msg-size value WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Integer to define max receive message call size (in bytes).
If serving a public gRPC server, set this to a more reasonable size to avoid
resource exhaustion from large messages.
Validators with as many as 10000 keys can be run with a max message size of less than
50Mb. The default here is set to a very high value for local users. (default: 2147483647)
--http-cors-domain value, --grpc-gateway-corsdomain value Comma separated list of domains from which to accept cross origin requests. (default: "http://localhost:3000, http://0.0.0.0:3000, http://127.0.0.1:3000, http://localhost:4200, http://127.0.0.1:4200, http://0.0.0.0:4200, http://localhost:7500, http://127.0.0.1:7500, http://0.0.0.0:7500")
--http-host value, --grpc-gateway-host value Host on which the HTTP server runs on. (default: "127.0.0.1")
--http-port value, --grpc-gateway-port value Port on which the HTTP server runs on. (default: 3500)
--minimal-config Uses minimal config with parameters as defined in the spec. (default: false)
--network-id value Sets the network id of the beacon chain. (default: 0)
--postpone-shutdown-for-proposals On a graceful shutdown signal (SIGINT/SIGTERM, e.g. Ctrl-C on Linux), postpone shutdown if a connected validator client must propose a block in the next 2 epochs. Send the signal again to force the node to stop immediately. (default: false)
--rpc-host value Host on which the RPC server should listen (default: "127.0.0.1")
--rpc-max-page-size value Max number of items returned per page in RPC responses for paginated endpoints. (default: 0)
--rpc-port value RPC port exposed by a beacon node (default: 4000)
--state-diff-exponents value [ --state-diff-exponents value ] A comma-separated list of exponents (of 2) in decreasing order, defining the state diff hierarchy levels. The last exponent must be greater than or equal to 5. (default: 21, 18, 16, 13, 11, 9, 5)
--tls-cert value Certificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--tls-key value Key for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely.
p2p OPTIONS:
--blob-batch-limit value The amount of blobs the local peer is bounded to request and respond to in a batch. (default: 384)
--blob-batch-limit-burst-factor value The factor by which blob batch limit may increase on burst. (default: 3)
--block-batch-limit value The amount of blocks the local peer is bounded to request and respond to in a batch. Maximum 128 (default: 64)
--block-batch-limit-burst-factor value The factor by which block batch limit may increase on burst. (default: 2)
--bootstrap-node value [ --bootstrap-node value ] The enr/enode address of bootstrap node. Beacon node will connect for peer discovery via DHT. Multiple nodes can be passed by using the flag multiple times but not comma-separated. You can also pass YAML files containing multiple nodes. (default: "enr:-KG4QNTx85fjxABbSq_Rta9wy56nQ1fHK0PewJbGjLm1M4bMGx5-3Qq4ZX2-iFJ0pys_O90sVXNNOxp2E7afBsGsBrgDhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQEnfA2iXNlY3AyNTZrMaECGXWQ-rQ2KZKRH1aOW4IlPDBkY4XDphxg9pxKytFCkayDdGNwgiMog3VkcIIjKA", "enr:-KG4QF4B5WrlFcRhUU6dZETwY5ZzAXnA0vGC__L1Kdw602nDZwXSTs5RFXFIFUnbQJmhNGVU6OIX7KVrCSTODsz1tK4DhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQExNYEiXNlY3AyNTZrMaECQmM9vp7KhaXhI-nqL_R0ovULLCFSFTa9CPPSdb1zPX6DdGNwgiMog3VkcIIjKA", "enr:-Ku4QImhMc1z8yCiNJ1TyUxdcfNucje3BGwEHzodEZUan8PherEo4sF7pPHPSIB1NNuSg5fZy7qFsjmUKs2ea1Whi0EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQOVphkDqal4QzPMksc5wnpuC3gvSC8AfbFOnZY_On34wIN1ZHCCIyg", "enr:-Ku4QP2xDnEtUXIjzJ_DhlCRN9SN99RYQPJL92TMlSv7U5C1YnYLjwOQHgZIUXw6c-BvRg2Yc2QsZxxoS_pPRVe0yK8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMeFF5GrS7UZpAH2Ly84aLK-TyvH-dRo0JM1i8yygH50YN1ZHCCJxA", "enr:-Ku4QPp9z1W4tAO8Ber_NQierYaOStqhDqQdOPY3bB3jDgkjcbk6YrEnVYIiCBbTxuar3CzS528d2iE7TdJsrL-dEKoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMw5fqqkw2hHC4F5HZZDPsNmPdB1Gi8JPQK7pRc9XHh-oN1ZHCCKvg", "enr:-Jq4QItoFUuug_n_qbYbU0OY04-np2wT8rUCauOOXNi0H3BWbDj-zbfZb7otA7jZ6flbBpx1LNZK2TDebZ9dEKx84LYBhGV0aDKQtTA_KgEAAAD__________4JpZIJ2NIJpcISsaa0ZiXNlY3AyNTZrMaEDHAD2JKYevx89W0CcFJFiskdcEzkH_Wdv9iW42qLK79ODdWRwgiMo", "enr:-Jq4QN_YBsUOqQsty1OGvYv48PMaiEt1AzGD1NkYQHaxZoTyVGqMYXg0K9c0LPNWC9pkXmggApp8nygYLsQwScwAgfgBhGV0aDKQtTA_KgEAAAD__________4JpZIJ2NIJpcISLosQxiXNlY3AyNTZrMaEDBJj7_dLFACaxBfaI8KZTh_SSJUjhyAyfshimvSqo22WDdWRwgiMo", "enr:-KG4QIH7EyRfHFmXLZaG6j0bMvow18k63nKWPfppuKh6iBHMPGM93HX3W3hl7jZdv_Hz8yd_jXVHX2loStJKOZqNRu0BgmlkgnY0gmlwhNRj2kKDaXA2kCoAHKALAA0CAAAAAAAAAF6Jc2VjcDI1NmsxoQMngQgKvKJR49-jugrZ_05LhAHbUlSCwZ_HyqVCb3SXYoN1ZHCCTrqEdWRwNoJOug", "enr:-KG4QJIyNiCpvXrnK8dugxmFckcIduvuQraNlX0GlKwF-XyPeZ-ZG7_yHhsr08K85X1utedECuRXhXiPYJoMogs8ai4BgmlkgnY0gmlwhIHUpj2DaXA2kCYEqIAABAHQAAAAA2GdUACJc2VjcDI1NmsxoQNQbzy36fddhPGH1I6D5rQyj8zUDGWQAkkWS37qBLB_yIN1ZHCCIyiEdWRwNoIjKA", "enr:-KG4QDU7s2q7Cl_qGr2BucsrhN1bKywwstBqMLUtR6f_pOejVAjXLAQsFBOCSgALH_Oy7eshQ2ic7CbFwRZIxZGIMMsBgmlkgnY0gmlwhJB-_BiDaXA2kCQAYYABAADQAAAAAYEgYAGJc2VjcDI1NmsxoQLACT5Njs8OjnCiL4_11wgqunT0BPxQ5PndoKoF6ICNWYN1ZHCCIyiEdWRwNoIjKA", "enr:-KG4QD_qJswcSJKmI_kjUZ-QbUuLUzniIakQbJKgh4YFzluGEKikFzaVoIbS7jpbw2K9hjmWTn7Ha3zyNIm0Ysu-dSgBgmlkgnY0gmlwhLKc14yDaXA2kCoBBP8A9DxKAAAAAAAAAAGJc2VjcDI1NmsxoQOVp1YSg2ZkGenRZi4iGebFira2xZrER7F_WW55-Rd3boN1ZHCCIyiEdWRwNoIjKA", "enr:-KG4QIFbm7kLOmOeiDwjSxLXEN0Ms4advV742CYLpGUCndm2XvAnM9uKVdWpydb8Gpstk44eFDlZlPDyV2gX7uH7KHgBgmlkgnY0gmlwhAXfXlGDaXA2kCoBBP8C8BytAAAAAAAAAAGJc2VjcDI1NmsxoQIAizAK-MKs-s08GzGzoPVIaBmfdKqosqxSkwxUuV2UnIN1ZHCCIyiEdWRwNoIjKA", "enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM", "enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM")
--data-column-batch-limit value The amount of data columns the local peer is bounded to request and respond to in a batch. (default: 4096)
--data-column-batch-limit-burst-factor value The factor by which data column batch limit may increase on burst. (default: 4)
--disable-partial-data-columns Disables cell-level dissemination for PeerDAS data columns, falling back to full column gossip. (default: false)
--enable-upnp Enable the service (Beacon chain or Validator) to use UPnP when possible. (default: false)
--max-concurrent-dials value Sets the maximum number of peers that a node will attempt to dial with from discovery. By default we will dials as many peers as possible. (default: 0)
--min-sync-peers value The required number of valid peers to connect with before syncing. (default: 3)
--minimum-peers-per-subnet value Sets the minimum number of peers that a node will attempt to peer with that are subscribed to a subnet. (default: 6)
--no-discovery Enable only local network p2p and do not connect to cloud bootstrap nodes (default: false)
--p2p-allowlist value The CIDR subnet for allowing only certain peer connections. Using "public" would allow only public subnets. Example: 192.168.0.0/16 would permit connections to peers on your local network only. The default is to accept all connections.
--p2p-colocation-whitelist value [ --p2p-colocation-whitelist value ] CIDR addresses to exempt from gossip sub IP colocation restrictions. Can be specified multiple times. Example: 192.168.1.1/32 would exempt that specific IP from colocation restrictions.
--p2p-denylist value [ --p2p-denylist value ] The CIDR subnets for denying certainty peer connections. Using "private" would deny all private subnets. Example: 192.168.0.0/16 would deny connections from peers on your local network only. The default is to accept all connections.
--p2p-host-dns value The DNS address advertised by libp2p. This may be used to advertise an external DNS.
--p2p-host-ip value The IP address advertised by libp2p. This may be used to advertise an external IP.
--p2p-local-ip value The local ip address to listen for incoming data.
--p2p-max-peers value The max number of p2p peers to maintain. (default: 70)
--p2p-priv-key value The file containing the private key to use in communications with other peers.
--p2p-quic-port value The QUIC port used by libp2p. (default: 13000)
--p2p-static-id Enables the peer id of the node to be fixed by saving the generated network key to the default key path. (default: false)
--p2p-tcp-port value The TCP port used by libp2p. (default: 13000)
--p2p-udp-port value The UDP port used by the discovery service discv5. (default: 12000)
--peer value [ --peer value ] Connect with this peer, this flag may be used multiple times. This peer is recognized as a trusted peer.Accepts enode, multiaddr, and enr formats.
--pubsub-queue-size value The size of the pubsub validation and outbound queue for the node. (default: 1000)
--relay-node value The address of relay node. The beacon node will connect to the relay node and advertise their address via the relay node to other peers
--semi-supernode Custodies just enough data to serve the blobs and blob sidecars beacon API. Cannot be used with --supernode. (default: false)
--subscribe-all-subnets Subscribe to all possible attestation and sync subnets. (default: false)
--supernode, --subscribe-all-data-subnets Custodies all data. Cannot be used with --semi-supernode. (default: false)
db OPTIONS:
--backfill-batch-size value Number of blocks per backfill batch. A larger number will request more blocks at once from peers, but also consume more system memory to hold batches in memory during processing. This has a multiplicative effect with backfill-worker-count. (default: 32)
--backfill-oldest-slot value Specifies the oldest slot that backfill should download. If this value is greater than current_slot - MIN_EPOCHS_FOR_BLOCK_REQUESTS, it will be ignored with a warning log. (default: 0)
--backfill-worker-count value Number of concurrent backfill batch requests. A larger number will better utilize network resources, up to a system-dependent limit, but will also consume more system memory to hold batches in memory during processing. Multiply by backfill-batch-size and average block size (~2MB before deneb) to find the right number for your system. This has a multiplicative effect with backfill-batch-size. (default: 2)
--beacon-db-pruning Enables pruning of beacon db beyond MIN_EPOCHS_FOR_BLOCK_REQUESTS duration. This is an opt-in feature, and should only be enabled if operators doesn't require historical data. (default: false)
--blob-path value Location for blob storage. Default location will be a 'blobs' directory next to the beacon db.
--blob-retention-epochs value, --extend-blob-retention-epoch value Override the default blob retention period (measured in epochs). The node will exit with an error at startup if the value is less than the default of 4096 epochs. (default: 4096)
--blob-storage-layout value Dictates how to organize the blob directory structure on disk, available options are: flat, by-epoch. (default: "by-epoch", unless a different existing layout is detected)
--clear-db Prompt for clearing any previously stored data at the data directory. (default: false)
--data-column-path value Location for data column storage. Default location will be a 'data-columns' directory next to the beacon db.
--datadir value Data directory for the databases. (default: "/root/.eth2")
--enable-backfill, --enable-experimental-backfill Backfill will only be enabled when this flag is specified on a node using checkpoint sync. (default: false)
--force-clear-db Clears any previously stored data at the data directory. (default: false)
--pruner-retention-epochs value Specifies the retention period for the pruner service in terms of epochs. If this value is less than MIN_EPOCHS_FOR_BLOCK_REQUESTS, it will be ignored. (default: 0)
--restore-source-file value Filepath to the backed-up database file which will be used to restore the database
--restore-target-dir value Target directory of the restored database (default: "/root/.eth2")
--slots-per-archive-point value The slot durations of when an archived state gets saved in the beaconDB. (default: 2048)
builder OPTIONS:
--builder-bid-timeout value Timeout to use when fetching execution payload bids from the builder API, as a duration (e.g. 600ms, 1s). Must be greater than 0. Only effective from the Gloas fork onward. (default: 600ms)
--builder-header-timeout value Timeout to use when fetching a block header from the builder API, as a duration (e.g. 1s, 2s, 2500ms). Must be greater than 0. Only effective up to the Fulu fork. (default: 1s)
--disable-builder-ssz Disables SSZ encoding for Builder API requests and responses, using JSON instead. (default: false)
--http-mev-relay value A MEV builder relay string http endpoint, this will be used to interact MEV builder network using API defined in: https://ethereum.github.io/builder-specs/#/Builder
--local-block-value-boost value A percentage boost for local block construction as a Uint64. This is used to prioritize local block construction over relay/builder block constructionBoost is an additional percentage to multiple local block value. Use builder block if: builder_bid_value * 100 > local_block_value * (local-block-value-boost + 100) (default: 10)
--max-builder-consecutive-missed-slots value Number of consecutive skip slot to fallback from using relay/builder to local execution engine for block construction (default: 3)
--max-builder-epoch-missed-slots value Number of total skip slot to fallback from using relay/builder to local execution engine for block construction in last epoch rolling window (default: 5)
--min-builder-bid value An absolute value in Gwei that the builder bid has to have in order for this beacon node to use the builder's block. Anything less than this value and the beacon will revert to local building. (default: 0)
--min-builder-to-local-difference value An absolute value in Gwei that the builder bid has to have in order for this beacon node to use the builder's block. Anything less than this value and the beacon will revert to local building. (default: 0)
--suggested-fee-recipient value Post bellatrix, this address will receive the transaction fees produced by any blocks from this node. Default to junk whilst bellatrix is in development state. Validator client can override this value through the preparebeaconproposer api. (default: "0x0000000000000000000000000000000000000000")
sync OPTIONS:
--checkpoint-block value Rather than syncing from genesis, you can start processing from a ssz-serialized BeaconState+Block. This flag allows you to specify a local file containing the checkpoint Block to load.
--checkpoint-state value Rather than syncing from genesis, you can start processing from a ssz-serialized BeaconState+Block. This flag allows you to specify a local file containing the checkpoint BeaconState to load.
--checkpoint-sync-url value URL of a synced beacon node to trust in obtaining checkpoint sync data. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag
--genesis-beacon-api-url value URL of a synced beacon node to trust for obtaining genesis state. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag
--genesis-state value Load a genesis state from ssz file. Testnet genesis files can be found in the eth2-clients/eth2-testnets repository on github.
--weak-subjectivity-checkpoint block_root:epoch_number Input in block_root:epoch_number format. This guarantees that syncing leads to the given Weak Subjectivity Checkpoint along the canonical chain. If such a sync is not possible, the node will treat it as a critical and irrecoverable failure
execution layer OPTIONS:
--contract-deployment-block value The eth1 block in which the deposit contract was deployed. (default: 11184524)
--deposit-contract value Deposit contract address. Beacon chain node will listen logs coming from the deposit contract to determine when validator is eligible to participate. (default: "0x00000000219ab540356cBB839Cbe05303d7705Fa")
--engine-endpoint-timeout-seconds value Sets the execution engine timeout (seconds) for execution payload semantics (forkchoiceUpdated, newPayload) (default: 0)
--eth1-header-req-limit value Sets the maximum number of headers that a deposit log query can fetch. (default: 1000)
--execution-endpoint value An execution client http endpoint. Can contain auth header as well in the format (default: "http://localhost:8551")
--execution-headers value A comma separated list of key value pairs to pass as HTTP headers for all execution client calls. Example: --execution-headers=key1=value1,key2=value2
--jwt-id value JWT claims id. Could be used to identify the client
--jwt-secret value REQUIRED if connecting to an execution node via HTTP. Provides a path to a file containing a hex-encoded string representing a 32 byte secret used for authentication with an execution node via HTTP. If this is not set, all requests to execution nodes via HTTP for consensus-related calls will fail, which will prevent your validators from performing their duties. This is not required if using an IPC connection.
monitoring OPTIONS:
--disable-monitoring Disables monitoring service. (default: false)
--enable-tracing Enables OpenTelemetry tracing. (default: false)
--monitor-indices value [ --monitor-indices value ] List of validator indices to track performance
--monitoring-host value Host used for listening and responding metrics for prometheus. (default: "127.0.0.1")
--monitoring-port value Port used to listening and respond metrics for Prometheus. (default: 8080)
--trace-sample-fraction value Head-sampling ratio applied to every trace started by the process. 1.0 keeps all traces. (default: 0.2)
--tracing-endpoint value OTLP/HTTP endpoint that traces are exported to (e.g. an OpenTelemetry Collector or a Tempo receiver). (default: "http://127.0.0.1:14268/api/traces")
--tracing-process-name process_name Name to apply to tracing tag process_name.
slasher OPTIONS:
--historical-slasher-node Enables required flags for serving historical data to a slasher client. Results in additional storage usage (default: false)
--slasher Enables a slasher in the beacon node for detecting slashable offenses. (default: false)
--slasher-datadir value Directory for the slasher database (default: "/root/.eth2")
log OPTIONS:
--disable-ephemeral-log-file Disables the creation of a debug log file that keeps 24 hours of logs. (default: false)
--disable-log-colors Disable color formatting for terminal logs. (default: false)
--log-file value Specifies log file name, relative or absolute.
--log-format value Specifies log formatting. Supports: text, json, fluentd, journald. (default: "text")
--log.vmodule value [ --log.vmodule value ] Per-package log verbosity. packagePath=level entries separated by commas.
--verbosity value Logging verbosity. (trace, debug, info, warn, error, fatal, panic) (default: "info")
features OPTIONS:
--blacklist-roots value [ --blacklist-roots value ] A comma-separatted list of 0x-prefixed hexstrings. Declares blocks with the given blockroots to be invalid. It downscores peers that send these blocks.
--blob-save-fsync Forces new blob files to be fysnc'd before continuing, ensuring durable blob writes. (default: false)
--dev Enables experimental features still in development. These features may not be stable. (default: false)
--disable-broadcast-slashings Disables broadcasting slashings submitted to the beacon node. (default: false)
--disable-grpc-connection-logging WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Disables displaying logs for newly connected grpc clients. (default: false)
--disable-last-epoch-targets Deprecated: disables processing of last epoch targets. (default: false)
--disable-peer-scorer (Danger): Disables P2P peer scorer. Do NOT use this in production! (default: false)
--disable-quic Disables connecting using the QUIC protocol with peers. (default: false)
--disable-resource-manager Disables running the libp2p resource manager. (default: false)
--disable-staking-contract-check Disables checking of staking contract deposits when proposing blocks, useful for devnets. (default: false)
--disable-track-equivocations Disables recording proposer equivocations observed on gossip into forkchoice. (default: false)
--disable-verbose-sig-verification Disables identifying invalid signatures if batch verification fails when processing block. (default: false)
--enable-discovery-reboot Experimental: Enables the discovery listener to rebooted in the event of connectivity issues. (default: false)
--enable-experimental-attestation-pool Enables an experimental attestation pool design. (default: false)
--enable-fast-confirmation Enables the fast confirmation rule (FCR) for rapid block confirmation under synchrony assumptions. (default: false)
--enable-full-ssz-data-logging Enables displaying logs for full ssz data on rejected gossip messages. (default: false)
--enable-hashtree (Experimental): Enables the hashtree hashing library. (default: false)
--enable-historical-state-representation Enables the beacon chain to save historical states in a space efficient manner. (Warning): Once enabled, this feature migrates your database in to a new schema and there is no going back. At worst, your entire database might get corrupted. (default: false)
--enable-light-client Enables the light client support in the beacon node (default: false)
--enable-proposer-preprocessing Enables proposer pre-processing of blocks before proposing. (default: false)
--enable-state-diff Enables the experimental state diff feature. (default: false)
--holesky Runs Prysm configured for the Holesky test network. (default: false)
--hoodi Runs Prysm configured for the Hoodi test network. (default: false)
--ignore-unviable-attestations Ignores attestations whose target state is not viable with respect to the current head (avoid expensive state replay from lagging attesters). (default: false)
--mainnet Runs on Ethereum main network. This is the default and can be omitted. (default: true)
--prepare-all-payloads Informs the engine to prepare all local payloads. Useful for relayers and builders. (default: false)
--save-full-execution-payloads Saves beacon blocks with full execution payloads instead of execution payload headers in the database. (default: false)
--save-invalid-blob-temp Writes invalid blobs to temp directory. (default: false)
--save-invalid-block-temp Writes invalid blocks to temp directory. (default: false)
--sepolia Runs Prysm configured for the Sepolia test network. (default: false)
--sync-from value Forces the head of the beacon chain to a specific block root. Values can be 'head' or a block root. The block root has to be known to the beacon node and correspond to a block newer than the current finalized checkpoint.
merge OPTIONS:
--terminal-block-hash-epoch-override value Sets the block hash epoch to manual overrides the default TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal block hash activation epoch. Incorrect usage will result in your node experience consensus failure. (default: 0)
--terminal-block-hash-override value Sets the block hash to manual overrides the default TERMINAL_BLOCK_HASH value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal block hash. Incorrect usage will result in your node experience consensus failure.
--terminal-total-difficulty-override value Sets the total difficulty to manual overrides the default TERMINAL_TOTAL_DIFFICULTY value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal difficulty. Incorrect usage will result in your node experience consensus failure.
deprecated OPTIONS:
debug OPTIONS:
--blockprofilerate value Turns on block profiling with the given rate. (default: 0)
--gc-percent value The percentage of freshly allocated data to live data on which the gc will be run again. (default: 100)
--healthz-max-goroutines value, --max-goroutines value The /healthz endpoint reports the node as unhealthy if the average goroutine count during a 10 slots window exceeds this threshold. (default: 5000)
--memprofilerate value Turns on memory profiling with the given rate. (default: 524288)
--mutexprofilefraction value Turns on mutex profiling with the given rate. (default: 0)
--pprof Enables the pprof HTTP server. (default: false)
--pprofaddr value pprof HTTP server listening interface. (default: "127.0.0.1")
--pprofport value pprof HTTP server listening port. (default: 6060)
Validator flags
You can use the --graffiti validator flag to add a string to your proposed blocks, which will be seen on the block explorer (i.e., <startup command> --graffiti "Prysm is awesome!")
NAME:
validator - Launches an Ethereum validator client that interacts with a beacon chain, starts proposer and attester services, p2p connections, and more.
USAGE:
validator [options] command [command options] [arguments...]
VERSION:
Prysm/v7.2.1/fea24b41265542905352ab45fe2291d8eea010cc. Built at: 2026-10-05 17:34:35+00:00
global OPTIONS:
wallet Defines commands for interacting with Ethereum validator wallets.
accounts Defines commands for interacting with Ethereum validator accounts.
slashing-protection-history Defines commands for interacting your validator's slashing protection history.
db Defines commands for interacting with the Prysm validator database.
web Defines commands for interacting with the Prysm web interface.
completion Generate shell completion scripts
help, h Shows a list of commands or help for one command
cmd OPTIONS:
--accept-terms-of-use Accepts Terms and Conditions (for non-interactive environments). (default: false)
--api-timeout value Specifies the timeout value for API requests in seconds. (default: 10s)
--chain-config-file value Path to a YAML file with chain config values.
--clear-db Prompt for clearing any previously stored data at the data directory. (default: false)
--config-file value Filepath to a yaml file with flag values.
--datadir value Data directory for the databases. (default: "/root/.eth2")
--disable-ephemeral-log-file Disables the creation of a debug log file that keeps 24 hours of logs. (default: false)
--disable-log-colors Disable color formatting for terminal logs. (default: false)
--disable-monitoring Disables monitoring service. (default: false)
--e2e-config Enables the E2E testing config, only for use within end-to-end testing. (default: false)
--enable-tracing Enables OpenTelemetry tracing. (default: false)
--force-clear-db Clears any previously stored data at the data directory. (default: false)
--grpc-max-msg-size value WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Integer to define max receive message call size (in bytes).
If serving a public gRPC server, set this to a more reasonable size to avoid
resource exhaustion from large messages.
Validators with as many as 10000 keys can be run with a max message size of less than
50Mb. The default here is set to a very high value for local users. (default: 2147483647)
--log-file value Specifies log file name, relative or absolute.
--log-format value Specifies log formatting. Supports: text, json, fluentd, journald. (default: "text")
--log.vmodule value [ --log.vmodule value ] Per-package log verbosity. packagePath=level entries separated by commas.
--minimal-config Uses minimal config with parameters as defined in the spec. (default: false)
--monitoring-host value Host used for listening and responding metrics for prometheus. (default: "127.0.0.1")
--monitoring-port value Port used to listening and respond metrics for Prometheus. (default: 8081)
--trace-sample-fraction value Head-sampling ratio applied to every trace started by the process. 1.0 keeps all traces. (default: 0.2)
--tracing-endpoint value OTLP/HTTP endpoint that traces are exported to (e.g. an OpenTelemetry Collector or a Tempo receiver). (default: "http://127.0.0.1:14268/api/traces")
--tracing-process-name process_name Name to apply to tracing tag process_name.
--verbosity value Logging verbosity. (trace, debug, info, warn, error, fatal, panic) (default: "info")
--wallet-dir value Path to a wallet directory on-disk for Prysm validator accounts. (default: "/root/.eth2validators/prysm-wallet-v2")
--wallet-password-file value Path to a plain-text, .txt file containing your wallet password.
debug OPTIONS:
--blockprofilerate value Turns on block profiling with the given rate. (default: 0)
--memprofilerate value Turns on memory profiling with the given rate. (default: 524288)
--mutexprofilefraction value Turns on mutex profiling with the given rate. (default: 0)
--pprof Enables the pprof HTTP server. (default: false)
--pprofaddr value pprof HTTP server listening interface. (default: "127.0.0.1")
--pprofport value pprof HTTP server listening port. (default: 6060)
rpc OPTIONS:
--beacon-rest-api-headers value Comma-separated list of key value pairs to pass as headers for all HTTP calls to the beacon node.
To provide multiple values for the same key, specify the same key for each value.
Example: --grpc-headers=key1=value1,key1=value2,key2=value3
--beacon-rest-api-provider value, --beacon-rest value Beacon node REST API provider endpoint. Setting this implicitly enables the beacon REST API (no need for --enable-beacon-rest-api). Use a comma-separated list to connect to several beacon nodes: the validator client listens to the event stream of every node and queries all of them, keeping the best suited response. (default: "http://127.0.0.1:3500")
--beacon-rpc-provider value, --beacon-grpc value WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Beacon node RPC provider endpoint. (default: "127.0.0.1:4000")
--grpc-headers value WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Comma separated list of key value pairs to pass as gRPC headers for all gRPC calls.
Example: --grpc-headers=key=value
--grpc-retries value WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Number of attempts to retry gRPC requests. (default: 5)
--grpc-retry-delay value WARNING: The gRPC API will remain the default and fully supported through v8 (expected in 2026) but will be eventually removed in favor of REST API..
Amount of time between gRPC retry requests. (default: 1s)
--http-cors-domain value, --grpc-gateway-corsdomain value Comma separated list of domains from which to accept cross origin requests (browser enforced). (default: "http://localhost:7500,http://127.0.0.1:7500,http://0.0.0.0:7500,http://localhost:4242,http://127.0.0.1:4242,http://localhost:4200,http://0.0.0.0:4242,http://127.0.0.1:4200,http://0.0.0.0:4200,http://localhost:3000,http://0.0.0.0:3000,http://127.0.0.1:3000")
--http-host value, --grpc-gateway-host value Host on which the HTTP server runs on. (default: "127.0.0.1")
--http-port value, --grpc-gateway-port value Port on which the HTTP server runs on. (default: 7500)
--rpc Enables the RPC server for the validator client (without Web UI). (default: false)
--rpc-host value Host on which the RPC server should listen. (default: "127.0.0.1")
--rpc-port value RPC port exposed by a validator client. (default: 7000)
--tls-cert value Certificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
proposer OPTIONS:
--builder-boost-factor value Percentage applied to Gloas builder bid values when comparing them with a locally built payload, for
all validators. 100 is neutral, below 100 favors the local payload, 0 always uses it. Only used from Gloas onward.
Per-key settings from a proposer settings file, URL, or the keymanager API take precedence. (default: 100)
--builder-max-execution-payment value Maximum execution layer payment in Gwei counted toward a Gloas builder bid, for all validators. 0 counts
only the collateral-backed bid value; payments above that rest on the builder's promise to pay. Only used from Gloas onward.
Per-key settings from a proposer settings file, URL, or the keymanager API take precedence. (default: 0)
--builder-min-bid value Minimum total payment in Gwei a Gloas builder bid must offer to be considered, for all validators:
the bid value plus its execution payment up to --builder-max-execution-payment. Only used from Gloas onward.
Per-key settings from a proposer settings file, URL, or the keymanager API take precedence. (default: 0)
--builder-urls value [ --builder-urls value ] Comma-separated URLs of Gloas builders to request execution payload bids from, for all validators.
Auth data agreed with a builder may be appended as a hex fragment (https://builder.example#0x0123); otherwise
the URL's UTF-8 bytes are used. Before Gloas a non-empty list also enables builder validator registration,
like --enable-builder; set the gas limit with --suggested-gas-limit. Per-key settings from a proposer settings file, URL, or the keymanager API take precedence.
--enable-builder, --enable-validator-registration Enables builder validator registration APIs for the validator client to update settings
such as fee recipient and gas limit. This flag is not required if using proposer
settings config file. (default: false)
--graffiti value String to include in proposed blocks.
--graffiti-file value Path to a YAML file with graffiti values.
--proposer-settings-file value Sets path to a YAML or JSON file containing validator settings used when proposing blocks such as
fee recipient and gas limit. File format found in docs.
--proposer-settings-url value Sets URL to a REST endpoint containing validator settings used when proposing blocks such as
fee recipient and gas limit. File format found in docs
--stateless Enables stateless block production from Gloas onward: the validator requests the block and execution payload envelope together and republishes the envelope itself. Works over both the gRPC and REST validator clients. Forced on when several beacon nodes are configured, since only the node that built a block can reveal its payload. (default: false)
--suggested-fee-recipient value Sets the default address that receives the fees of blocks proposed by all validators. A builder
integrated through the Builder API may pay a different address as payment for the blocks it builds.
Per-key settings from a proposer settings file, URL, or the keymanager API take precedence. (default: "0x0000000000000000000000000000000000000000")
--suggested-gas-limit value Sets the default gas limit for all validators: registered with builders before Gloas and signed into
proposer preferences from Gloas onward, where it overrides the network gas limit schedule. Remove it to follow
the schedule. Per-key settings from a proposer settings file, URL, or the keymanager API take precedence. (default: "60000000")
--validators-registration-batch-size value Sets the maximum size for one batch of validator registrations. Use a non-positive value to disable batching. (default: 200)
remote signer OPTIONS:
--validators-external-signer-key-file value, --remote-signer-keys-file value A file path used to load remote public validator keys and persist them through restarts.
--validators-external-signer-poll-interval value, --remote-signer-poll-interval value Interval to poll the external signer public-keys URL for added or removed validators (e.g. 30s, 5m).
Zero or negative disables polling. A failed or empty response keeps the current keys,
so removing every key from the URL will not stop validating. (default: 0s)
--validators-external-signer-public-keys value, --remote-signer-keys value [ --validators-external-signer-public-keys value, --remote-signer-keys value ] Comma separated list of public keys OR an external url endpoint for the validator to retrieve public keys from for usage with web3signer.
--validators-external-signer-url value, --remote-signer-url value URL for consensys' web3signer software to use with the Prysm validator client.
misc OPTIONS:
--disable-account-metrics Disables prometheus metrics for validator accounts. Operators with high volumes
of validating keys may wish to disable granular prometheus metrics as it increases
the data cardinality. (default: false)
--disable-duties-polling Disables polling of duties on dependent root changes. (default: false)
--disable-rewards-penalties-logging Disables reward/penalty logging during cluster deployment. (default: false)
--distributed To enable the use of prysm validator client in Distributed Validator Cluster (default: false)
--keymanager-token-file value, --validator-api-bearer-file value Path to auth token file used for validator apis. (default: "/root/.eth2validators/prysm-wallet-v2/auth-token")
--max-health-checks value Maximum number of consecutive failed health checks before exiting. A health check fails when no connected beacon node is ready. Set to 0 or a negative number for indefinite checks. (default: 0)
features OPTIONS:
--disable-attest-timely Disable validator attesting timely after current block processes. See #8185 for more details. (default: false)
--disable-duties-v2 Forces use of get duties endpoint instead of v2. (default: false)
--dynamic-key-reload-debounce-interval value (Advanced): Specifies the time duration the validator waits to reload new keys if they have changed on disk.
Can be any type of duration such as 1.5s, 1000ms, 1m. (default: 1s)
--enable-beacon-rest-api, --enable-rest (Experimental): Enables the beacon REST API when querying a beacon node. Optional: also enabled implicitly when --beacon-rest-api-provider is set. (default: false)
--enable-doppelganger Enables the validator to perform a doppelganger check.
This is not a foolproof method to find duplicate instances in the network.
Your validator will still be vulnerable if it is being run in unsafe configurations. (default: false)
--enable-minimal-slashing-protection (Experimental): Enables the minimal slashing protection. See EIP-3076 for more details. (default: false)
--enable-slashing-protection-history-pruning Enables the pruning of the validator client's slashing protection database. (default: false)
--holesky Runs Prysm configured for the Holesky test network. (default: false)
--hoodi Runs Prysm configured for the Hoodi test network. (default: false)
--mainnet Runs on Ethereum main network. This is the default and can be omitted. (default: true)
--sepolia Runs Prysm configured for the Sepolia test network. (default: false)
--web (Work in progress): Enables the web portal for the validator client. (default: false)
--write-wallet-password-on-web-onboarding (Danger): Writes the wallet password to the wallet directory on completing Prysm web onboarding.
We recommend against this flag unless you are an advanced user. (default: false)
deprecated OPTIONS:
prysmctl flags
Refer to the Use prysmctl for prysmctl download and installation instructions.
NAME:
prysmctl-v7.2.1-linux-amd64 - A new cli application
USAGE:
prysmctl-v7.2.1-linux-amd64 [global options] command [command options]
COMMANDS:
checkpoint-sync, cpt-sync commands for managing checkpoint sync
db commands to work with the prysm beacon db
p2p commands for interacting with beacon nodes via p2p
testnet commands for dealing with Ethereum beacon chain testnets
weak-subjectivity, ws commands dealing with weak subjectivity
validator, v, sign commands that affect the state of validators such as exiting or withdrawing
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
Client stats flags
Prysm's client stats service is an optional utility that reports process metrics to third-parties such as block explorers. Refer to our client stats documentation for more information.
NAME:
client-stats - daemon to scrape client-stats from prometheus and ship to a remote endpoint
USAGE:
client-stats [options] command [command options] [arguments...]
AUTHOR:
GLOBAL OPTIONS:
help, h Shows a list of commands or help for one command
cmd OPTIONS:
--config-file value Filepath to a yaml file with flag values.
--log-file value Specifies log file name, relative or absolute.
--log-format value Specifies log formatting. Supports: text, json, fluentd, journald. (default: "text")
--verbosity value Logging verbosity. (trace, debug, info, warn, error, fatal, panic) (default: "info")
client-stats OPTIONS:
--beacon-node-metrics-url value Full URL to the beacon-node /metrics prometheus endpoint to scrape. eg http://localhost:8080/metrics
--clientstats-api-url value Full URL to the client stats endpoint where collected metrics should be sent.
--scrape-interval value Frequency of scraping expressed as a duration, eg 2m or 1m5s. (default: 2m0s)
--validator-metrics-url value Full URL to the validator /metrics prometheus endpoint to scrape. eg http://localhost:8081/metrics
Loading parameters from a YAML file
You can optionally configure Prysm to load flag values from a .yaml file. Consider this option if you're looking for a streamlined terminal experience or unique, portable configuration profiles.
The below steps show how place a common Prysm flag into a YAML file, and how to specify the YAML file when Prysm starts up.
GNU\Linux, Mac, ARM64
-
In your Prysm working directory, create a
.yamlfile and open it in a text editor. -
Add the following lines to the file before closing and saving:
datadir: '/data'
- Start the Prysm beacon chain as normal, while specifying the location of the
.yamllike so:
./prysm.sh beacon-chain --config-file=/path/to/file.yaml
or for a validator like so:
./prysm.sh validator --config-file=/path/to/file.yaml
Windows
-
In your Prysm working directory, create a
.yamlfile and open it in a text editor. -
Add the following lines to the file before closing and saving:
datadir: 'c:\prysm'
- Start the Prysm beacon chain as normal, while specifying the location of the
.yamllike so:
.\prysm.bat beacon-chain --config-file=c:\path\to\file.yaml
or for a validator like so:
.\prysm.bat validator --config-file=c:\path\to\file.yaml
It is possible to provide additional flags alongside the .yaml file, though if conflicting flags are provided, the flag defined in the.yaml file will take priority. For example, if the flag --datadir=/data2 is specified and datadir: "/data1" is in the .yaml file, Prysm would prioritize writing to /data1.