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)
--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:-Ku4QHqVeJ8PPICcWk1vSn_XcSkjOkNiTg6Fmii5j6vUQgvzMc9L1goFnLKgXqBJspJjIsB91LTOleFmyWWrFVATGngBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAMRHkWJc2VjcDI1NmsxoQKLVXFOhp2uX6jeT0DvvDpPcU8FWMjQdR4wMuORMhpX24N1ZHCCIyg", "enr:-Ku4QG-2_Md3sZIAUebGYT6g0SMskIml77l6yR-M_JXc-UdNHCmHQeOiMLbylPejyJsdAPsTHJyjJB2sYGDLe0dn8uYBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhBLY-NyJc2VjcDI1NmsxoQORcM6e19T1T9gi7jxEZjk_sjVLGFscUNqAY9obgZaxbIN1ZHCCIyg", "enr:-Ku4QPn5eVhcoF1opaFEvg1b6JNFD2rqVkHQ8HApOKK61OIcIXD127bKWgAtbwI7pnxx6cDyk_nI88TrZKQaGMZj0q0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDayLMaJc2VjcDI1NmsxoQK2sBOLGcUb4AwuYzFuAVCaNHA-dy24UuEKkeFNgCVCsIN1ZHCCIyg", "enr:-Ku4QEWzdnVtXc2Q0ZVigfCGggOVB2Vc1ZCPEc6j21NIFLODSJbvNaef1g4PxhPwl_3kax86YPheFUSLXPRs98vvYsoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDZBrP2Jc2VjcDI1NmsxoQM6jr8Rb1ktLEsVcKAPa08wCsKUmvoQ8khiOl_SLozf9IN1ZHCCIyg", "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)
--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)
--partial-data-columns Enable cell-level dissemination for PeerDAS data columns (default: false)
--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:
--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. The values are on the basis of the networks and the default value for mainnet is 5. (default: 0)
--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
--interop-eth1data-votes Enable mocking of eth1 data votes for proposers to package into blocks (default: false)
--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-registration-cache Temporary flag for disabling the validator registration cache instead of using the DB. Note: registrations do not clear on restart while using the DB. (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-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-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)
--interop-write-ssz-state-transitions Writes SSZ states to disk after attempted state transitio. (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.
--track-equivocations Records proposer equivocations observed on gossip and marks the slot in forkchoice if the equivocation arrives before the configured early deadline. (default: false)
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.1.6/1fc46453cf9dfb3aaf2a80f9f90f87f96e89cdd3. Built at: 2026-07-01 13:13:22+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 node REST API provider endpoint. (default: "http://127.0.0.1:3500")
--beacon-rpc-provider 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:
--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 for Gloas: the validator requests the block and execution payload envelope together and republishes the envelope itself. Works over both the gRPC and REST validator clients. (default: false)
--suggested-fee-recipient value Sets ALL validators' mapping to a suggested eth address to receive gas fees when proposing a block.
Note that this is only a suggestion when integrating with a Builder API, which may choose to specify
a different fee recipient as payment for the blocks it builds.For additional setting overrides use the
--proposer-settings-file or --proposer-settings-url flags. (default: "0x0000000000000000000000000000000000000000")
--suggested-gas-limit value Sets gas limit for the builder to use for constructing a payload for all the validators. (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-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 health checks to perform before exiting if not healthy. 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 (Experimental): Enables of the beacon REST API when querying a beacon node. (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)
interop OPTIONS:
--interop-num-validators value Number of validators to deterministically generate.
Example: --interop-start-index=5 --interop-num-validators=3 would generate keys from index 5 to 7. (default: 0)
--interop-start-index value Start index to deterministically generate validator keys when used in combination with --interop-num-validators.
Example: --interop-start-index=5 --interop-num-validators=3 would generate keys from index 5 to 7. (default: 0)
deprecated OPTIONS:
prysmctl flags
Refer to the Use prysmctl for prysmctl download and installation instructions.
NAME:
prysmctl-v7.1.6-linux-amd64 - A new cli application
USAGE:
prysmctl-v7.1.6-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.