Configuration

Learn how to configure starknode-kit for your Ethereum and Starknet nodes.

Configuration File

starknode-kit stores its configuration in a YAML file located at:

~/.starknode-kit/starknode.yml

Creating a Configuration

Generate a new configuration file with default settings:

starknode-kit config new

Viewing Configuration

View your entire configuration:

starknode-kit config show --all

View specific sections:

# View execution client config starknode-kit config show --el # View consensus client config starknode-kit config show --cl # View Juno (Starknet) config starknode-kit config show --juno

Configuration Structure

The configuration file has the following structure:

network: mainnet execution_client: name: geth ports: - 8545 # HTTP RPC - 8546 # WebSocket RPC - 30303 # P2P consensus_client: name: lighthouse ports: - 5052 # HTTP API - 9000 # P2P consensus_checkpoint: "" juno_client: port: 6060 eth_node: "http://localhost:8545" environment: [] is_validator_node: false wallet: name: "" reward_address: "" commision: "" validator_config: provider_config: juno_rpc_http: "http://localhost:6060" juno_rpc_ws: "ws://localhost:6060" signer: operational_address: "" privateKey: ""

Modifying Configuration

Change Network

Switch between mainnet, sepolia, or custom networks:

# Switch to sepolia testnet starknode-kit config set network sepolia # Switch to mainnet starknode-kit config set network mainnet

Configure Execution Client

Set execution client and ports:

# Set client type starknode-kit config set el client=reth # Set ports starknode-kit config set el port=9000,9001 # Set both starknode-kit config set el client=geth port=8545,8546,30303

Configure Consensus Client

Set consensus client and checkpoint:

# Set client type starknode-kit config set cl client=prysm # Set checkpoint URL starknode-kit config set cl checkpoint=https://checkpoint.example.com

Configure Juno (Starknet)

Configure your Juno Starknet client:

# Set Juno port starknode-kit config set juno port=6060 # Set Ethereum node connection starknode-kit config set juno eth_node=http://localhost:8545

Network Settings

starknode-kit supports multiple networks:

  • mainnet - Ethereum and Starknet mainnet
  • sepolia - Ethereum Sepolia and Starknet Sepolia testnet

⚠️ Important

Changing the network will affect all clients. Make sure to stop your nodes before changing networks.

Port Configuration

Default Ports

Default ports for each client:

ClientPortsPurpose
Geth8545, 8546, 30303HTTP RPC, WS RPC, P2P
Reth8545, 8546, 30303HTTP RPC, WS RPC, P2P
Lighthouse5052, 9000HTTP API, P2P
Prysm4000, 13000HTTP API, P2P
Juno6060RPC

Validator Configuration

For validator nodes, additional configuration is required. See the Validator Setup page for details.

Environment Variables

Some sensitive data can be stored as environment variables:

  • STARKNET_WALLET - Wallet address
  • STARKNET_PRIVATE_KEY - Private key
  • STARKNET_PUBLIC_KEY - Public key
  • STARKNET_CLASS_HASH - Class hash
  • STARKNET_SALT - Salt value

Configuration Best Practices

  1. Backup your config - Keep a backup of your configuration file
  2. Use environment variables - Store sensitive data in environment variables
  3. Document changes - Keep notes of any custom configurations
  4. Test on testnet - Always test configuration changes on a testnet first

Troubleshooting

Configuration not loading

If your configuration isn't loading, check:

  • File exists at ~/.starknode-kit/starknode.yml
  • File has correct YAML syntax
  • File has correct permissions (readable by your user)

Port conflicts

If you get port conflicts:

  • Check if ports are already in use: lsof -i :[port]
  • Configure different ports in your config
  • Stop conflicting services

📖 Next Steps

Ready to dive deeper? Check out our comprehensive guides: