> For the complete documentation index, see [llms.txt](https://docs.venn.build/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.venn.build/venn-network/getting-started/node-operators/configuration.md).

# Configuration

## Overview

You can configure various aspects of how your node operates, focusing on these topics:

* **Node Management**\
  Configure what address, port, and route the node uses for the Node Management API.\
  Alternatively, you can use opt to disable this API altogether.

* **Security Inspection Signature**\
  Configure what address, port, route, and private key the node uses when inspecting and signing transactions.

* **Threat Modeling Detectors**\
  Venn's threat modeling works by leveraging Detectors.\
  Use this configuration section to what detectors your node uses when inspecting incoming transactions.

* **Blockchain Nodes**\
  Your node can interact and protect transactions for any EVM-like blockchain.\
  Use this configuration section to setup the Web3 providers and chains your node interacts with.

* **Protocol Registration**\
  This configuration section tells the node what protocols are whitelisted for Venn's protection through your node. Only whitelisted protocols can use your node for transaction inspection.

* **Network & Peer Management**\
  Use this section to configure your operator's display name on the network, as well as what hostname, port, and route it exposes for peer-to-peer communication on the Network.\
  This is also where you configure what peers your node is connected to.

{% hint style="warning" %}
**During Venn Testnet phases, protocol registration and peer discovery is handled manually, in a permissioned model**.

\
Once Venn goes live no mainnet, both protocol registration and peer discovery will be done on-chain through dedicated registration contracts.
{% endhint %}

## Node Management

```yaml
# Node Management - The configuration for the Operator's Management API
# Mandatory: no
management:
  
  # disabled - Whether the Operator Management API is disabled
  # Default: false
  # Mandatory: no
  disabled: false
  
  # host - The host of the Operator Management API
  # Default: 0.0.0.0 - listen on all interfaces
  # Mandatory: no
  host: 0.0.0.0
  
  # port - The port of the Operator Management API
  # Default: 30000
  # Mandatory: no
  port: 30000
  
  # path - The path of the Operator Management API
  # Default: none
  # Mandatory: no
  path:
  
```

## **Security Inspection Signature**

```yaml
# Security Inspection Signature - The configuration for the Operator Signer
# Mandatory: yes
signer:

  # host - The host of the Operator Signer API
  # Default: 0.0.0.0 - listen on all interfaces
  # Mandatory: no
  host: 0.0.0.0
  
  # port - The port of the Operator Signer API
  # Default: 10000
  # Mandatory: no
  port: 10000
  
  # path - The path of the Operator Signer API
  # Default: /signer
  # Mandatory: no
  path: /signer
  
  # signerPrivateKey - The private key of the external signer
  # Default: none
  # Mandatory: yes
  signerPrivateKey: "PRIVATE_KEY"

```

## **Threat Modeling Detectors**

<pre class="language-yaml"><code class="lang-yaml"><strong># Threat Modeling Detectors - The configuration for the Operator external Detectors configuration
</strong># Default: none
# Mandatory: yes
detectors:

  # detectionThreshold - minimum threshold for detection
  # Default: 0
  # Mandatory: yes
  detectionThreshold: 0.5

  # detectors - The detectors to use for the signer
  # Mandatory: yes
  detectors:
  
      # name - The name of the detector
      # Default: none
      # Mandatory: yes
    - name: processor
    
      # endpoint - The endpoint of the detector
      # Default: none
      # Mandatory: yes
      endpoint: http://detectors.testnet.venn.build:40000/api/external-detector
    
      # weight - The weight of the detector when calculating the detection score must be greater than 0
      # Default: none
      # Mandatory: yes
      weight: 0.9

      # timeoutSeconds - The timeout in seconds for the detector
      # Default: 30 seconds
      # Mandatory: no
      timeoutSeconds: 30

</code></pre>

## **Blockchain Nodes**

```yaml
# Blockchain Nodes - The nodes to connect to for the signer retrieval of transaction simulation
# Default: none
# Mandatory: yes
nodes:
  
  # chainId - The chainId of the network
  # Default: none
  # Mandatory: yes
  - chainId: 1
    
    # nodes - A List of nodes to connect to for the particular chainId. at least one node is required for each chainId
    # Default: none
    # Mandatory: yes
    nodes:
        
        # wsUrl - The websocket url of the node
        # Default: none
        # Mandatory: yes
      - wsUrl: "WSS_URL"
        
        # jsonUrl - The json rpc url of the node
        # Default: none
        # Mandatory: yes
        jsonUrl: "JSON_URL"
        
        # type: The type of the node
        # Default: ethereum
        # Mandatory: no
        type: ethereum

```

## **Network & Peer Management**

```yaml
# Network & Peer Management - The configuration for the Venn Operator and its peers
# Default: none
# Mandatory: yes
venn:
  
  # name - The name of the Operator - can be any string
  # Default: hostname
  # Mandatory: no
  name: operator-1
    
  # operatorId - The id of the Operator (the name that broadcast to other peers) - can be any string
  # Default: hostname
  # Mandatory: no
  operatorId: "operator-1"
  
  # host - The host of the Operator Blockbeat listening on
  # Default: 0.0.0.0 - listen on all interfaces
  # Mandatory: no
  host: 0.0.0.0
  
  # port - The port of the Operator Blockbeat listening on
  # Default: 20000
  # Mandatory: no
  port: 20000
  
  # peers - The peers of the Operator
  # Default: none
  # Mandatory: no
  peers:
      # name - The name of the peer
      # Default: none
      # Mandatory: yes
    - name: eu-testnet-venn-build
  
      # endpoint - The endpoint of the peer
      # Default: none
      # Mandatory: yes
      endpoint: http://europe.testnet.venn.build:20000
  
      # timeoutSeconds - The timeout in seconds for the peer to respond
      # Default: 60 seconds
      # Mandatory: no
      timeoutSeconds: 60

      # checkIntervalSeconds - The interval in seconds to check the peer health
      # Default: 60 seconds
      # Mandatory: no
      checkIntervalSeconds: 60

```

## **Protocol Registration**

```yaml
# Protocol Registration - The protocols the Operator is protecting
# Default: none
# Mandatory: yes
protocols:
  # chainId - The chainId of the network that the protocol is on
  # Default: none
  # Mandatory: yes
  - chainId: 1
    
    # protocols - A List of protocols to protect on the particular chainId. at least one protocol is required for each chainId
    protocols:
      
      # name - The name of the protocol
      # Default: none
      # Mandatory: yes
      - name: Protocol1
        
        # addresses - A list of addresses related to the protocol
        # Default: none
        # Mandatory: yes
        addresses:
          - "0x<some_address_1>"
          - "0x<some_address_2>"

```
