CONFIG_FILES
Description: (Env only) List of additional configuration file paths to load in order (such as those inhyperlane-monorepo/rust/main/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 the agent configuration guide for tips on mounting your config files into your Docker container.
Optional: Yes
Agents: All
Type: string
(Comma separated list of file paths)
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)
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
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)
chains.<chain_name>
.mailbox
Description: Address of the mailbox contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
chains.<chain_name>
.interchainGasPaymaster
Description: Address of the interchain gas paymaster contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
chains.<chain_name>
.validatorAnnounce
Description: Address of the validator announce contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
chains.<chain_name>
.merkleTreeHook
Description: Address of the merkle tree hook contract on the chain. See also contract addresses.
Optional: No
Agents: All
Type: Hash (string)
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)
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" | "cosmosKey" | "node")
Accepted values for the different VMs are:
- EVM:
hexKey
(ECDSA) oraws
(ECDSA) - sealevel:
hexKey
(ED25519) - cosmos:
cosmosKey
chains.<chain_name>
.signer.key
Description: A 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
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
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
chains.<chain_name>
.protocol
Description: Connection protocol to use.
Optional: Defaults to "ethereum"
Agents: All
Type: Enum ("ethereum" | "fuel")
chains.<chain_name>
.rpcConsensusType
The consensus type currently only applies to EVM chains.Connections to non-EVM chains only support a single RPC url. If more than one RPC url is specified in rpcUrls, only the first one will be used.
"single"
uses a basic http connection"fallback"
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."quorum"
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.
chains.<chain_name>.protocol = "ethereum" | undefined
Optional: Defaults to "fallback"
Agents: All
Type: Enum ("fallback", "single", "quorum")
chains.<chain_name>
.customRpcUrls
Connections to non-EVM chains only support a single RPC url. If more than one RPC url is specified, only the first one will be used.
customRpcUrls
and rpcUrls is that customRpcUrls
allows for more user friendly inputs from the CLI or environment variables (comma-separated vs array).
Type: string
(comma separated list of urls without spaces)
chains.<chain_name>
.rpcUrls
Connections to non-EVM chains only support a single RPC url. If more than one RPC url is specified, only the first one will be used.
string
chains.<chain_name>
.customGrpcUrls
Connections to Cosmos chains require both RPC and gRPC URLs. There is no
rpcConsensusType
configuration for Cosmos chains, and gRPC URLs always operate in fallback mode—if the first URL fails, the next one is used.customRpcUrls
.
Type: string
(comma-separated list of URLs without spaces)
chains.<chain_name>
.index.from
Description: Height at which to start indexing contracts.
Optional: Defaults to 0
Agents: Relayer & Scraper
Type: Numeric (string | number)
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)
defaultsigner
Because each VM supports a different signer type, the default signer can only support a single VM type. For instance, if the default signer is a ECDSA one, it will only be able to sign on EVM chains.
SignerConf (Object)
defaultsigner.type
Description: The type of signer that is defined. AHexKey
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" | "cosmosKey" | "node")
defaultsigner.key
Description: A hex key. The hex string of a private key. Requires:defaultsigner.type = "hexKey" | undefined
Optional: No (iff requirements are met)
Agents: All
Type: string
defaultsigner.id
Description: The UUID identifying the AWS KMS key Requires:defaultsigner.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
defaultsigner.region
Description: The AWS region Requires:defaultsigner.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
metricsport
Description: Port to expose prometheus metrics on Optional: Defaults to9090
Agents: All
Type: Numeric (string | number)
log.format
Description: Configuration for the log module. This controls logging. Optional: Defaults topretty
Agents: All
Type: Enum ("pretty" | "json" | "full" | "compact")
log.level
Description: Configuration for the log module. This controls logging. For full verbosity (including that of dependencies), usedependencyTrace
.
Optional: Defaults to info
Agents: All
Type: Enum ("dependencyTrace" | "trace" | "debug" | "info" | "warn" | "error" | "off")
originchainname
Description: Name of the chain a validator should validate for and name of the chain a relayer should relayer messages from. Deprecated for Relayer, use #relaychains instead. Optional: No - Validators; Yes - Relayer Agents: Validator & Relayer Type:string
validator
Description: The signer that should be used by the validator. Optional: Yes Agents: All Type:SignerConf (Object)
validator.type
Description: The type of EVM signer that is defined. Note that regardless of the VM the validator is operating on, checkpoints are always signed using the EVM ECDSA curve. AHexKey
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")
validator.key
Description: A hex key. The hex string of a private key. Requires:validator.type = "hexKey" | undefined
Optional: No (iff requirements are met)
Agents: All
Type: string
validator.id
Description: The UUID identifying the AWS KMS key Requires:validator.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
validator.region
Description: The AWS region Requires:validator.type = "aws"
Optional: No (iff requirements are met)
Agents: All
Type: string
checkpointsyncer.type
Description: Defines the method of syncing checkpoints Optional: No Agents: Validator Type:Enum ("localStorage" | "s3")
checkpointsyncer.path
Description: Path on the local disk of a local storage type checkpoint syncer configuration. Requires:checkpointsyncer.type = "localStorage"
Optional: No (iff conditions are met)
Agents: Validator
Type: string
checkpointsyncer.bucket
Description: S3 bucket name Requires:checkpointsyncer.type = "s3"
Optional: No (iff conditions are met)
Agents: Validator
Type: string
checkpointsyncer.folder
Description: Folder in the S3 bucket Requires:checkpointsyncer.type = "s3"
Optional: No (iff conditions are met)
Agents: Validator
Type: string
checkpointsyncer.region
Description: S3 bucket region Requires:checkpointsyncer.type = "s3"
Optional: No (iff conditions are met)
Agents: Validator
Type: string
interval
Description: How frequently the validator should check for new checkpoints in seconds? See also latencies. Optional: No Agents: Validator Type:Numeric (string | number)
db
Description: This is a local filesystem path to where the agents store relevant data on disk. This must be unique per agent! Multiple agents must have different paths. The path is relative to the current working directory if it does not start with a system defined root path such as/
on unix. When using docker images, ensure that this folder gets persisted across runs.
For the scraper, this is the connection string to a postgresql database.
Optional: For validators and relayer it is optional and defaults to a path in the current working directory which includes the originchainname
. For the scraper it is required.
Agents: All
Type: string
relaychains
Description: List of chains to deliver messages between. Optional: No Agents: Relayer Type:string
(comma separated list)
gaspaymentenforcement
Description: JSON stringified array of gas payment enforcement configurations sorted by highest priority first. The last policy should be a catch-all and handle any messages that did not match a previous policy. Optional: Defaults to no enforcement ([{"type": "none"}]
)
Agents: Relayer
Type: JSON (string)
whitelist
Description: A matching list to define what messages should be allowed. Any messages which do not match this list will not be relayed. If no whitelist is supplied all messages will be allowed. See also message filtering Optional: Yes Agents: Relayer Type:JSON (string)
blacklist
Description: A matching list to define what messages should be ignored. Any messages which match this list will not be relayed. If no blacklist is supplied all messages will be allowed. See also message filtering Optional: Yes Agents: Relayer Type:JSON (string)
transactiongaslimit
Description: The max allowable gas to relay a transaction. Optional: Defaults to no limit Agents: Relayer Type:Numeric (string | number)
skiptransactiongaslimitfor
Description: List of domain ids to skip applying thetransactiongaslimit
for.
Optional: Defaults to using the transactiongaslimit
for all domains
Agents: Relayer
Type: string
(comma separated list of domain ids)
allowlocalcheckpointsyncers
Description: Whether to allow localcheckpointsyncer
types, if false
it will ignore them.
Optional: Defaults to false
Agents: Relayer
Type: boolean
maxmessageretries
Description: The maximum number of retries to attempt before dropping a message from the relayer queues. This prevents messages from being retried indefinitely. Optional: Defaults to a system default value of 66 Agents: Relayer Type:Numeric (string | number)
AWS_ACCESS_KEY_ID
Description: (Env only) The access key ID of your validator’s AWS IAM user. Optional: Required if any signer configuration usesaws
Agents: Relayer & Validator
Type: string
AWS_SECRET_ACCESS_KEY
Description: (Env only) The secret access key of your validator’s AWS IAM user. Optional: Required if any signer configuration usesaws
Agents: Relayer & Validator
Type: string