op-challenger. The challenger is a critical fault proofs component that monitors dispute games and challenges invalid claims to protect your OP Stack chain.
See the OP-Challenger Explainer for a general overview of this fault proofs feature.
The challenger is responsible for:
- Monitoring dispute games created by the fault proof system
- Challenging invalid claims in dispute games
- Defending valid state transitions
- Resolving games when possible
Prerequisites
Essential requirements
Before configuring your challenger, complete the following steps:Deploy OP Stack chain with fault proofs enabled
- L1 contracts deployed with dispute game factory
- Fault proof system active on your chain
- Access to your chain’s contract addresses
- Generate an absolute prestate for your network version - This is critical as the challenger will refuse to interact with games if it doesn’t have the matching prestate
Set up required infrastructure access
- L1 RPC endpoint (Ethereum, Sepolia, etc.)
- L1 Beacon node endpoint (for blob access)
- L2 archive node with debug API enabled
- Rollup node (op-node) with historical data
Software requirements
- Git (for cloning repositories)
- Go 1.21+ (if building from source)
- Docker and Docker Compose (optional but recommended)
- Access to a funded Ethereum account for challenger operations
Finding the current stable releases
To ensure you’re using the latest compatible versions of OP Stack components, always check the official releases page: OP Stack releases page This guide is verified against the following versions:- op-challenger —
op-challenger/v1.9.3(look for the latestop-challenger/v*). - op-reth —
v2.2.5(look for the latest op-reth release). op-reth is both the sequencer’s execution client and the archive node the challenger reads withdrawal proofs from. - kona-client — the absolute prestate is built from a tagged
kona-client/v*release (e.g.kona-client/v1.6.0-rc.1). Use the tag matching the prestate registered on your chain; for governance-approved upgrades the version is named in the upgrade notice. See the kona-client prestate tutorial.
Software installation
For challenger deployment, you can either build from source (recommended for better control and debugging) or use Docker for a containerized setup.- Build from source
- Use docker
Build and configure
Building from source gives you full control over the binaries and is the preferred approach for production deployments.Clone and build op-challengerVerify installation
Check that you have properly installed the challenger component:Configuration setup
Set up environment variables
You’ll need to gather several pieces of information before creating your configuration. Here’s where to get each value:L1 network access:Important: Replace ALL placeholder values (
- L1 RPC URL: Your L1 node endpoint (Infura, Alchemy, or self-hosted)
- L1 Beacon URL: Beacon chain API endpoint for blob access
- L2 RPC URL: Your op-reth archive node endpoint
- Rollup RPC URL: Your op-node endpoint with historical data
- Private key for challenger operations (must be funded)
- Game factory address from your contract deployment
- Network identifier (e.g., op-sepolia, op-mainnet, or custom)
YOUR_ACTUAL_*) with your real configuration values.Create challenger startup script
Createscripts/start-challenger.sh:Initializing and starting the challenger
Start the challenger
Verify challenger is running
Monitor challenger logs to ensure it’s operating correctly:- Successful connection to L1 and L2 nodes
- Loading of prestates and configuration
- Monitoring of dispute games
Monitoring with op-dispute-mon
Consider runningop-dispute-mon for enhanced security monitoring:
- Provides visibility into all game statuses for the last 28 days
- Essential for production challenger deployments
Next steps
- Read the OP-Challenger Explainer for additional context and FAQ
- Review the detailed challenger specifications for implementation details
- If you experience any problems, reach out to developer support