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.
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.
Description: Number of blocks to wait before considering the blockchain state to be final. See also latencies for help choosing an appropriate finality.
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
"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.
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.
Description: The default signer that should be used for all chains which did not specify their own.
Optional: Yes
Agents: All
Type:SignerConf (Object)
--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")
--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.
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 relaychainsinstead.
Optional: No - Validators; Yes - Relayers
Agents: Validator & Relayer
Type:string
--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)
--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 hexKey
Agents: All
Type:Enum ("hexKey" | "aws" | "node")
--validator.type hexKey
export HYP_BASE_VALIDATOR_TYPE="hexKey"
{
"validator": {
"type": "hexKey"
}
}
validator.key
Description: A local hex key. The hex string of a private key.
Description: How frequently to check for new checkpoints in seconds. See also latencies.
Optional: No
Agents: Validator
Type:Numeric (string | number)
--interval 30
export HYP_BASE_INTERVAL=30
{
"interval": 30
}
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 relayers it is optional and defaults to a path in the current working directory which includes the originchainname. For the scraper it is required.
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)
type gaspaymentenforcement = Array<GasPaymentEnforcementPolicy>;
type GasPaymentEnforcementPolicy =
( // fields specific to each type...
// No requirements - all messages are processed regardless of gas payment
{ type: "none" }
// Messages that have paid a minimum amount will be processed
& { type: "minimum", payment: U256 }
// Required amount of gas on the foreign chain has been paid according
// to on-chain fee quoting. `gasfraction` defaults to "1 / 2".
& { type: "onChainFeeQuoting", gasfraction?: GasFraction }
) | { // all types have the following fields...
// If a message matches, this policy will be used.
// If no matching list is specified, all messages will match.
matchingList?: MatchingList
};
// A list of matching rules. A message matches if any of the list
// elements matches the message.
type MatchingList = Array<MatchingListElement>;
// Matches a message if any of the provided values matches.
interface MatchingListElement {
originDomain?: NumericFilter
senderAddress?: HashFilter
destinationDomain?: NumericFilter
recipientAddress?: HashFilter
}
type NumericFilter = Wildcard | U32 | Array<U32>;
type HashFilter = Wildcard | H256 | Array<H256>;
// 32-bit unsigned integer
type U32 = number | string;
// 256-bit unsigned integer; Note: `number` type has limited precision.
type U256 = string | number;
// 256-bit hash (can also be less) encoded as hex
type H256 = string;
// Matches anything
type Wildcard = "*";
// A numeric string in the form `{numerator} / {denominator}`, e.g. "1 / 2"
type GasFraction = string;
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.
type whitelist = MatchingList | undefined;
// A list of matching rules. A message matches if any of the list
// elements matches the message.
type MatchingList = Array<MatchingListElement>;
// Matches a message if any of the provided values matches.
interface MatchingListElement {
originDomain?: NumericFilter
senderAddress?: HashFilter
destinationDomain?: NumericFilter
recipientAddress?: HashFilter
}
type NumericFilter = Wildcard | U32 | Array<U32>;
type HashFilter = Wildcard | H256 | Array<H256>;
// 32-bit unsigned integer
type U32 = number | string;
// 256-bit hash (can also be less) encoded as hex
type H256 = string;
// Matches anything
type Wildcard = "*";
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.
type blacklist = MatchingList | undefined;
// A list of matching rules. A message matches if any of the list
// elements matches the message.
type MatchingList = Array<MatchingListElement>;
// Matches a message if any of the provided values matches.
interface MatchingListElement {
originDomain?: NumericFilter
senderAddress?: HashFilter
destinationDomain?: NumericFilter
recipientAddress?: HashFilter
}
type NumericFilter = Wildcard | U32 | Array<U32>;
type HashFilter = Wildcard | H256 | Array<H256>;
// 32-bit unsigned integer
type U32 = number | string;
// 256-bit hash (can also be less) encoded as hex
type H256 = string;
// Matches anything
type Wildcard = "*";