2_gateway_config
shannon_config:
full_node_config:
rpc_url: https://shannon-grove-rpc.mainnet.poktroll.com
grpc_config:
host_port: shannon-grove-grpc.mainnet.poktroll.com:443
lazy_mode: false
gateway_config:
gateway_mode: "centralized"
gateway_address: pokt1up7zlytnmvlsuxzpzvlrta95347w322adsxslw
gateway_private_key_hex: 40af4e7e1b311c76a573610fe115cd2adf1eeade709cd77ca31ad4472509d388
owned_apps_private_keys_hex:
- 40af4e7e1b311c76a573610fe115cd2adf1eeade709cd77ca31ad4472509d388
service_fallback:
- service_id: eth
send_all_traffic: false
fallback_urls:
- "https://eth.rpc.grove.city/v1/1a2b3c4d"
- "https://eth.rpc.grove.city/v1/5e6f7a8b"
# (Optional) Logger Configuration
logger_config:
level: "info" # Valid values: debug, info, warn, errorConfig File Location (Local Development)
In local development mode, the config file must be located at:
./local/path/.config.yamlConfig File Validation
Protocol Configuration
The config file MUST contain EXACTLY one top-level shannon_config section.
shannon_config (required)
shannon_config (required)Configuration for the Shannon protocol gateway.
shannon_config:
full_node_config:
lazy_mode: false
rpc_url: "https://shannon-grove-rpc.mainnet.poktroll.com"
grpc_config: # Required
host_port: "shannon-grove-grpc.mainnet.poktroll.com:443" # Required: gRPC host and port
# Optional backoff and keepalive configs...
insecure: false # Optional: whether to use insecure connection
backoff_base_delay: "1s" # Optional: initial backoff delay duration
backoff_max_delay: "120s" # Optional: maximum backoff delay duration
min_connect_timeout: "20s" # Optional: minimum timeout for connection attempts
keep_alive_time: "20s" # Optional: frequency of keepalive pings
keep_alive_timeout: "20s" # Optional: timeout for keepalive pings
gateway_config: # Required
gateway_mode: "centralized" # Required: centralized, delegated, or permissionless
gateway_address: "pokt1up7zlytnmvlsuxzpzvlrta95347w322adsxslw" # Required: Bech32 address
gateway_private_key_hex: "<64-char-hex>" # Required: Gateway private key
owned_apps_private_keys_hex: # Required for centralized mode only
- "<64-char-hex>" # Application private key
- "<64-char-hex>" # Additional application private keys...
service_fallback: # Optional: Fallback endpoints
- service_id: eth
send_all_traffic: false
fallback_urls:
- "https://eth.rpc.grove.city/v1/1a2b3c4d"
- "https://eth.rpc.grove.city/v1/5e6f7a8b"
- service_id: polygon
send_all_traffic: false
fallback_urls:
- "https://polygon.rpc.grove.city/v1/9x8y7z6w"full_node_config
full_node_configrpc_url
string
Yes
-
URL of the Shannon RPC endpoint
grpc_config
object
Yes
-
gRPC connection configuration
lazy_mode
boolean
No
false
If true, disables caching of onchain data (e.g. apps, sessions)
full_node_config.grpc_config
full_node_config.grpc_confighost_port
string
Yes
-
Host and port for gRPC connections
insecure
boolean
No
false
Whether to use insecure connection
backoff_base_delay
string
No
"1s"
Initial backoff delay duration
backoff_max_delay
string
No
"120s"
Maximum backoff delay duration
min_connect_timeout
string
No
"20s"
Minimum timeout for connection attempts
keep_alive_time
string
No
"20s"
Frequency of keepalive pings
keep_alive_timeout
string
No
"20s"
Timeout for keepalive pings
gateway_config
gateway_configgateway_mode
string
Yes
-
Mode of operation: centralized, delegated, or permissionless
gateway_address
string
Yes
-
Bech32-formatted gateway address (starts with pokt1)
gateway_private_key_hex
string
Yes
-
64-character hex-encoded secp256k1 gateway private key
owned_apps_private_keys_hex
string[]
Only in centralized mode
-
List of 64-character hex-encoded secp256k1 application private keys
service_fallback
array
No
-
Array of service fallback configurations (see below for details)
service_fallback (optional)
service_fallback (optional)Configures fallback endpoints that the gateway will use when all protocol endpoints for a service become unavailable (e.g., sanctioned or offline). This provides resilience by allowing the gateway to continue serving requests even when protocol endpoints are temporarily unavailable.
service_fallback:
- service_id: eth
send_all_traffic: false
fallback_urls:
- "https://eth.rpc.grove.city/v1/1a2b3c4d"
- "https://eth.rpc.grove.city/v1/5e6f7a8b"
- service_id: poly
send_all_traffic: false
fallback_urls:
- "https://poly.rpc.grove.city/v1/9x8y7z6w"service_id
string
Yes
-
The service ID for this fallback configuration. Must be a valid onchain Shannon service ID. Each service_id must be unique within the service_fallback array.
fallback_urls
string[]
Yes
-
Array of fallback endpoint URLs for the specified service ID. Each URL must be a valid HTTP/HTTPS endpoint.
send_all_traffic
boolean
No
false
Whether to send all traffic to fallback endpoints for this service, regardless of protocol endpoint health. When true, bypasses protocol endpoints entirely for this service.
Key Features:
Automatic failover: Gateway automatically switches to fallback endpoints when protocol endpoints are unavailable
Send All
Protocol bypass: Fallback endpoints bypass protocol-level validation and are sent directly to the configured URLs
Service-specific: Each service ID can have its own set of fallback endpoints
hydrator_config (optional)
hydrator_config (optional)Configures the QoS hydrator. By default, all services configured in the shannon_config sections will have QoS checks run against them.
run_interval_ms
string
No
"10000ms"
Interval at which the hydrator will run QoS checks
max_endpoint_check_workers
integer
No
100
Maximum number of workers to run concurrent QoS checks against a service's endpoints
qos_disabled_service_ids
array[string]
No
-
List of service IDs to exclude from QoS checks. Will throw an error on startup if a service ID is provided that the PATH instance doesn't configure.
Manually Disable QoS Checks for a Service
To manually disable QoS checks for a specific service, the qos_disabled_service_ids field may be specified in the .config.yaml file.
Example:
hydrator_config:
qos_disabled_service_ids:
- "eth"router_config (optional)
router_config (optional)Enables configuring how incoming requests are handled. In particular, allows specifying server parameters for how the gateway handles incoming requests.
port
integer
No
3069
Port number on which the gateway server listens
max_request_header_bytes
integer
No
1MB
Maximum request header size in bytes
read_timeout
string
No
"5000ms" (5s)
Time limit for reading request data
write_timeout
string
No
"10000ms" (10s)
Time limit for writing response data
idle_timeout
string
No
"120000ms" (120s)
Time limit for closing idle connections
logger_config (optional)
logger_config (optional)Controls the logging behavior of the PATH gateway.
logger_config:
level: "warn"level
string
No
"info"
Minimum log level. Valid values are: "debug", "info", "warn", "error"
data_reporter_config (optional)
data_reporter_config (optional)Configures HTTP-based data reporting to external services like BigQuery via data pipelines (e.g., Fluentd with HTTP input and BigQuery output plugins).
data_reporter_config:
target_url: "https://fluentd-service.example.com/http-input"
post_timeout_ms: 5000target_url
string
Yes
-
HTTP endpoint URL where data will be reported (must start with http:// or https://)
post_timeout_ms
integer
No
10000
Timeout in milliseconds for HTTP POST operations. If zero or negative, default of 10000ms is used
Was this helpful?
