v2
Search
K

Configuration reference

All configuration

CONFIG_FILES

Description: (Env only) List of additional configuration file paths to load in order (such as those in hyperlane-monorepo/rust/config). They will be merged first to last, so if both the first one and the last one specify a specific config path, the value set in the last file listed will be used.
These files must be accessible within the filesystem your agent has access to. If you're running in Docker, see Config files with Docker for tips on mounting your config files into your Docker container.
Optional: Yes
Agents: All
Type: string (Comma separated list of file paths)
As Arg
As Env
As Config
Not supported as an argument
export CONFIG_FILES='./config/ethereum/my-config.json,./config/ethereum/my-validator-config.json'
Not supported in configuration files

chains

Description: Configuration for each of the chains that must be used by an agent.
Optional: No
Agents: All
Type: Map<string, ChainSetup (Object)> (See chains.* for ChainSetup values)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.*
HYP_BASE_CHAINS_${CHAIN_NAME}_*
HYP_BASE_CHAINS_ETHEREUM_*
{
"chains": {
"<chain_name>": {},
"ethereum": {}
}
}

chains.<chain_name>.name

Description: Name of the domain. Allows specifying a different name for the domain than the chain's true name. This should almost always be the same as chain_name.
Requires: Alignment with domain id if it is a known domain name.
Optional: No
Agents: All
Type: string
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.name $DOMAIN_NAME
--chains.ethereum.name ethereum
HYP_BASE_CHAINS_${CHAIN_NAME}_NAME="$DOMAIN_NAME"
HYP_BASE_CHAINS_ETHEREUM_NAME="ethereum"
{
"chains": {
"<chain_name>": {
"name": "<domain_name>"
},
"ethereum": {
"name": "ethereum"
}
}
}

chains.<chain_name>.domain

Description: Hyperplane domain id to uniquely identify the domain. See also: Domain Identifiers.
Requires: Alignment with domain name if it is a known domain.
Optional: No
Agents: All
Type: Numeric (string | number)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.domain $DOMAIN_ID
--chains.ethereum.domain 1
export HYP_BASE_CHAINS_${CHAIN_NAME}_DOMAIN="$DOMAIN_NAME"
export HYP_BASE_CHAINS_ETHEREUM_DOMAIN=1
{
"chains": {
"<chain_name>": {
"domain": "<domain_id>"
},
"ethereum": {
"domain": 1
}
}
}

chains.<chain_name>.finalityBlocks

Description: Number of blocks to wait before considering the blockchain state to be final. See also latencies for help choosing an appropriate finality.
Optional: Defaults to 0
Agents: All
Type: Numeric (string | number)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.finalityBlocks $FINALITY_BLOCKS
--chains.ethereum.finalityBlcoks 20
export HYP_BASE_CHAINS_${CHAIN_NAME}_FINALITY_BLOCKS="$FINALITY_BLOCKS"
export HYP_BASE_CHAINS_ETHEREUM_FINALITY_BLOCKS=20
{
"chains": {
"<chain_name>": {
"finalityBlocks": "<finality_blocks>"
},
"ethereum": {
"finalityBlocks": 20
}
}
}

chains.<chain_name>.addresses.mailbox

Description: Address of the mailbox contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.addresses.mailbox "$MAILBOX_ADDRESS"
--chains.ethereum.addresses.mailbox "0x35231d4c2D8B8ADcB5617A638A0c4548684c7C70"
export HYP_BASE_CHAINS_${CHAIN_NAME}_ADDRESSES_MAILBOX="$MAILBOX_ADDRESS"
export HYP_BASE_CHAINS_ETHEREUM_ADDRESSES_MAILBOX="0x35231d4c2D8B8ADcB5617A638A0c4548684c7C70"
{
"chains": {
"<chain_name>": {
"addresses": {
"mailbox": "<mailbox_address>"
}
},
"ethereum": {
"addresses": {
"mailbox": "0x35231d4c2D8B8ADcB5617A638A0c4548684c7C70"
}
}
}
}

chains.<chain_name>.addresses.interchainGasPaymaster

Description: Address of the interchain gas paymaster contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.addresses.interchainGasPaymaster "$IGP_ADDRESS"
--chains.ethereum.addresses.interchainGasPaymaster "0x6cA0B6D22da47f091B7613223cD4BB03a2d77918"
export HYP_BASE_CHAINS_${CHAIN_NAME}_ADDRESSES_INTERCHAIN_GAS_PAYMASTER="$IGP_ADDRESS"
export HYP_BASE_CHAINS_ETHEREUM_ADDRESSES_INTERCHAIN_GAS_PAYMASTER="0x6cA0B6D22da47f091B7613223cD4BB03a2d77918"
{
"chains": {
"<chain_name>": {
"addresses": {
"interchainGasPaymaster": "<igp_address>"
}
},
"ethereum": {
"addresses": {
"interchainGasPaymaster": "0x6cA0B6D22da47f091B7613223cD4BB03a2d77918"
}
}
}
}

chains.<chain_name>.addresses.validatorAnnounce

Description: Address of the validator announce contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.addresses.validatorAnnounce "$VALIDATOR_ANNOUNCE_ADDRESS"
--chains.ethereum.addresses.validatorAnnounce "0x9bBdef63594D5FFc2f370Fe52115DdFFe97Bc524"
export HYP_BASE_CHAINS_${CHAIN_NAME}_ADDRESSES_VALIDATOR_ANNOUNCE="$VALIDATOR_ANNOUNCE_ADDRESS"
export HYP_BASE_CHAINS_ETHEREUM_ADDRESSES_VALIDATOR_ANNOUNCE="0x9bBdef63594D5FFc2f370Fe52115DdFFe97Bc524"
{
"chains": {
"<chain_name>": {
"addresses": {
"validatorAnnounce": "<validator_announce_address>"
}
},
"ethereum": {
"addresses": {
"validatorAnnounce": "0x9bBdef63594D5FFc2f370Fe52115DdFFe97Bc524"
}
}
}
}

chains.<chain_name>.signer

Description: The signer that should be used this chain
Optional: Yes (Will use defaultsigner if not specified)
Agents: All
Type: SignerConf (Object)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.signer.*
HYP_BASE_CHAINS_${CHAIN_NAME}_SIGNER_*
{
"chains": {
"<chain_name>": {
"signer": {}
},
"ethereum": {
"signer": {}
}
}
}

chains.<chain_name>.signer.type

Description: The type of signer that is defined. A HexKey signer uses a private key, an Aws signer uses an AWS based KMS, and Node assumes the local node will sign RPC calls.
Optional: Yes; Defaults to node unless a key is specified in which case it defaults to hexKey
Agents: All
Type: Enum ("hexKey" | "aws" | "node")
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.signer.type hexKey
--chains.ethereum.signer.type node
export HYP_BASE_CHAINS_${CHAIN_NAME}_SIGNER_TYPE="hexKey"
{
"chains": {
"<chain_name>": {
"signer": {
"type": "hexKey"
}
},
"ethereum": {
"signer": {
"type": "node"
}
}
}
}

chains.<chain_name>.signer.key

Description: A local hex key. The hex string of a private key.
Requires: chains.<chain_name>.signer.type = "hexKey" | undefined
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.signer.key "8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"
export HYP_BASE_CHAINS_${CHAIN_NAME}_SIGNER_KEY="8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"
{
"chains": {
"<chain_name>": {
"signer": {
"key": "<key_in_hex>"
}
},
"ethereum": {
"signer": {
"key": "8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"
}
}
}
}

chains.<chain_name>.signer.id

Description: The UUID identifying the AWS KMS key
Requires: chains.<chain_name>.signer.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--chains.ethereum.signer.type "alias/validator-signer-ethereum"
export HYP_BASE_CHAINS_${CHAIN_NAME}_SIGNER_ID="alias/validator-signer-ethereum"
{
"chains": {
"ethereum": {
"signer": {
"type": "aws",
"id": "alias/validator-signer-ethereum"
}
}
}
}

chains.<chain_name>.signer.region

Description: The AWS region
Requires: chains.<chain_name>.signer.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.signer.region us-east-1
export HYP_BASE_CHAINS_${CHAIN_NAME}_SIGNER_REGION="us-east-1"
{
"chains": {
"<chain_name>": {
"signer": {
"type": "aws",
"region": "us-east-1"
}
}
}
}

chains.<chain_name>.protocol

Description: Connection protocol to use.
Optional: Defaults to "ethereum"
Agents: All
Type: Enum ("ethereum" | "fuel")
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.protocol ethereum
--chains.ethereum.protocol ethereum
export HYP_BASE_CHAINS_${CHAIN_NAME}_PROTOCOL="ethereum"
export HYP_BASE_CHAINS_ARBITRUM_PROTOCOL="ethereum"
{
"chains": {
"<chain_name>": {
"protocol": "<protocol>"
},
"arbitrum": {
"protocol": "ethereum"
}
}
}

chains.<chain_name>.connection.type

Description: How to communicate with the provider
  • "http" uses a basic http connection
  • "ws" uses a basic websocket connection
  • "httpFallback" will try the first URL and then automatically "fall back" on a connection or other provider failure to the next provider; this should only retry calls which fail due to the provider and not the call itself such; an insufficient gas error for instance would not fall back.
  • "httpQuorum" requires a majority of the URLs to agree with the exception of submitting transactions; it will automatically coordinate the "latest" block if not specified to reduce sync errors.
Requires: chains.<chain_name>.protocol = "ethereum" | undefined
Optional: Defaults to "http"
Agents: All
Type: Enum ("http", "ws", "httpFallback", "httpQuorum")
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.connection.type http
export HYP_BASE_CHAINS_${CHAIN_NAME}_CONNECTION_TYPE="url"
export HYP_BASE_CHAINS_ETHEREUM_CONNECTION_TYPE="httpFallback"
{
"chains": {
"<chain_name>": {
"connection": {
"type": "http"
}
},
"ethereum": {
"connection": {
"type": "httpFallback"
}
}
}
}

chains.<chain_name>.connection.url

Description: Url to connect to
Requires:
((chains.<chain_name>.protocol = "ethereum" | undefined)
AND (chains.<chain_name>.connection.type = "http" | "ws" | undefined)
) OR chains.<chain_name>.protocol = "fuel"
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.connection.url "$CONNECTION_URL"
--chains.ethereum.connection.url "http://127.0.0.1:8545"
export HYP_BASE_CHAINS_${CHAIN_NAME}_CONNECTION_URL="$CONNECTION_URL"
export HYP_BASE_CHAINS_ETHEREUM_CONNECTION_URL="http://127.0.0.1:8545"
{
"chains": {
"<chain_name>": {
"connection": {
"url": "<connection_url>"
}
},
"ethereum": {
"connection": {
"url": "http://127.0.0.1:8545"
}
}
}
}

chains.<chain_name>.connection.urls

Description:
Requires:
(chains.<chain_name>.protocol = "ethereum" | undefined)
AND (chains.<chain_name>.connection.type = "httpFallback" | "httpQuorum")
Optional: No (iff requirements are met)
Agents:
Type: string (comma separated list of urls without spaces)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.connection.urls "$CONNECTION_URLS"
--chains.ethereum.connection.urls "http://127.0.0.1:8545,http://127.0.0.1:8546,http://127.0.0.1:8547"
export HYP_BASE_CHAINS_${CHAIN_NAME}_CONNECTION_URLS="$CONNECTION_URLS"
export HYP_BASE_CHAINS_ETHEREUM_CONNECTION_URLS="http://127.0.0.1:8545,http://127.0.0.1:8546,http://127.0.0.1:8547"
{
"chains": {
"<chain_name>": {
"connection": {
"urls": "<connection_urls>"
}
},
"ethereum": {
"connection": {
"urls": "http://127.0.0.1:8545,http://127.0.0.1:8546,http://127.0.0.1:8547"
}
}
}
}

chains.<chain_name>.index.from

Description: Height at which to start indexing contracts.
Optional: Defaults to 0
Agents: Relayer & Scraper
Type: Numeric (string | number)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.index.from 0
--chains.ethereum.index.from 16271503
export HYP_BASE_CHAINS_${CHAIN_NAME}_INDEX_FROM=0
export HYP_BASE_CHAINS_ETHEREUM_INDEX_FROM=16271503
{
"chains": {
"<chain_name>": {
"index": {
"from": 0
}
},
"ethereum": {
"index": {
"from": 16271503
}
}
}
}

chains.<chain_name>.index.chunk

Description: Number of blocks to query at once when indexing contracts. Note that the configured providers must support whatever value is set. The default should work with nearly all providers.
Optional: Defaults to 1999
Agents: Relayer & Scraper
Type: Numeric (string | number)
As Arg
As Env
As Config
--chains.${CHAIN_NAME}.index.chunk 1999
--chains.ethereum.index.chunk 1999
export HYP_BASE_CHAINS_${CHAIN_NAME}_INDEX_CHUNK=1999
export HYP_BASE_CHAINS_ETHEREUM_INDEX_CHUNK=1999
{
"chains": {
"<chain_name>": {
"index": {
"chunk": 1999
}
},
"ethereum": {
"index": {
"chunk": 1999
}
}
}
}

defaultsigner

Description: The default signer that should be used for all chains which did not specify their own.
Optional: Yes
Agents: All
Type: SignerConf (Object)
As Arg
As Env
As Config
--defaultSigner.*
HYP_BASE_DEFAULTSIGNER_*
{
"defaultsigner": {}
}

defaultsigner.type

Description: The type of signer that is defined. A HexKey signer uses a private key, an Aws signer uses an AWS based KMS, and Node assumes the local node will sign RPC calls.
Optional: Yes; Defaults to node unless a key is specified in which case it defaults to hexKey
Agents: All
Type: Enum ("hexKey" | "aws" | "node")
As Arg
As Env
As Config
--defaultSigner.type hexKey
export HYP_BASE_DEFAULTSIGNER_TYPE="hexKey"
{
"defaultsigner": {
"type": "hexKey"
}
}

defaultsigner.key

Description: A local hex key. The hex string of a private key.
Requires: defaultsigner.type = "hexKey" | undefined
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--defaultSigner.key "8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"
export HYP_BASE_DEFAULTSIGNER_KEY="8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"
{
"defaultsigner": {
"type": "hexKey",
"key": "8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61"
}
}

defaultsigner.id

Description: The UUID identifying the AWS KMS key
Requires: defaultsigner.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--defaultSigner.id "alias/validator-signer-ethereum"
export HYP_BASE_DEFAULTSIGNER_ID="alias/validator-signer-ethereum"
{
"defaultsigner": {
"type": "aws",
"id": "alias/validator-signer-ethereum"
}
}

defaultsigner.region

Description: The AWS region
Requires: defaultsigner.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
As Arg
As Env
As Config
--defaultSigner.region us-east-1
export HYP_BASE_DEFAULTSIGNER_REGION="us-east-1"
{
"defaultsigner": {
"type": "aws",
"region": "us-east-1"
}
}

metrics

Description: Port to expose prometheus metrics on
Optional: Defaults to 9090
Agents: All
Type: Numeric (string | number)
As Arg
As Env
As Config
--metrics 9090
export HYP_BASE_METRICS=9090
{
"metrics": 9090
}

tracing.fmt

Description: Configuration for the tracing module. This controls logging.
Optional: Defaults to pretty
Agents: All
Type: Enum ("pretty" | "json" | "full" | "compact")
As Arg
As Env
As Config
--tracing.fmt pretty
export HYP_BASE_TRACING_FMT="pretty"
{
"tracing": {
"fmt": "pretty"
}
}

tracing.level

Description: Configuration for the tracing module. This controls logging.
Optional: Defaults to info
Agents: All
Type: Enum ("trace" | "debug" | "info" | "warn" | "error" | "off")
As Arg
As Env
As Config
--tracing.level info
HYP_BASE_TRACING_LEVEL="info"
{
"tracing": {
"level": "info"
}
}

originchainname

Description: Name of the chain a validator should validate for and name of the chain a relayer should relayer messages from. Deprecated for Relayers, use relaychains instead.
Optional: No - Validators; Yes - Relayers
Agents: Validator & Relayer
Type: string
As Arg
As Env
As Config
--originChainName ethereum
export HYP_BASE_ORIGINCHAINNAME="ethereum"
{
"originchainname": "ethereum"
}

validator

Description: The signer that should be used by the validator.
Optional: Yes
Agents: All
Type: SignerConf (Object)
As Arg
As Env
As Config
--validator.*
HYP_BASE_VALIDATOR_*
{
"validator": {}
}

validator.type

Description: The type of signer that is defined. A HexKey signer uses a private key, an Aws signer uses an AWS based KMS, and Node assumes the local node will sign RPC calls.
Optional: Yes; Defaults to node unless a key is specified in which case it defaults to