@fuel-infrastructure/fuel-hyperlane-registry
Version:
A collection of configs, artifacts, and schemas for Hyperlane
322 lines • 11 kB
JSON
{
"$ref": "#/definitions/hyperlaneChainMetadata",
"definitions": {
"hyperlaneChainMetadata": {
"type": "object",
"properties": {
"bech32Prefix": {
"type": "string",
"description": "The human readable address prefix for the chains using bech32."
},
"blockExplorers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A human readable name for the explorer."
},
"url": {
"type": "string",
"format": "uri",
"description": "The base URL for the explorer."
},
"apiUrl": {
"type": "string",
"format": "uri",
"description": "The base URL for requests to the explorer API."
},
"apiKey": {
"type": "string",
"description": "An API key for the explorer (recommended for better reliability)."
},
"family": {
"type": "string",
"enum": [
"etherscan",
"blockscout",
"routescan",
"other"
],
"description": "The type of the block explorer. See ExplorerFamily for valid values."
}
},
"required": [
"name",
"url",
"apiUrl"
],
"additionalProperties": false
},
"description": "A list of block explorers with data for this chain"
},
"blocks": {
"type": "object",
"properties": {
"confirmations": {
"type": "integer",
"minimum": 0,
"description": "Number of blocks to wait before considering a transaction confirmed."
},
"reorgPeriod": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "string"
}
],
"description": "Number of blocks before a transaction has a near-zero chance of reverting or block tag."
},
"estimateBlockTime": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Rough estimate of time per block in seconds."
}
},
"required": [
"confirmations"
],
"additionalProperties": false,
"description": "Block settings for the chain/deployment."
},
"chainId": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0
},
{
"type": "string"
}
],
"description": "The chainId of the chain. Uses EIP-155 for EVM chains"
},
"customGrpcUrls": {
"type": "string",
"description": "Specify a comma separated list of custom GRPC URLs to use for this chain. If not specified, the default GRPC urls will be used."
},
"deployer": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the deployer."
},
"email": {
"type": "string",
"format": "email",
"description": "The email address of the deployer."
},
"url": {
"type": "string",
"format": "uri",
"description": "The URL of the deployer."
}
},
"required": [
"name"
],
"additionalProperties": false,
"description": "Identity information of the deployer of a Hyperlane instance to this chain"
},
"displayName": {
"type": "string",
"description": "Human-readable name of the chain."
},
"displayNameShort": {
"type": "string",
"description": "A shorter human-readable name of the chain for use in user interfaces."
},
"domainId": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "The domainId of the chain, should generally default to `chainId`. Consumer of `ChainMetadata` should use this value or `name` as a unique identifier."
},
"gasCurrencyCoinGeckoId": {
"type": "string",
"description": "The ID on CoinGecko of the token used for gas payments."
},
"gnosisSafeTransactionServiceUrl": {
"type": "string",
"description": "The URL of the gnosis safe transaction service."
},
"grpcUrls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"http": {
"type": "string",
"format": "uri",
"description": "The HTTP URL of the RPC endpoint (preferably HTTPS)."
},
"concurrency": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Maximum number of concurrent RPC requests."
},
"webSocket": {
"type": "string",
"description": "The WSS URL if the endpoint also supports websockets."
},
"pagination": {
"type": "object",
"properties": {
"maxBlockRange": {
"$ref": "#/definitions/hyperlaneChainMetadata/properties/chainId/anyOf/0",
"description": "The maximum range between block numbers for which the RPC can query data"
},
"minBlockNumber": {
"$ref": "#/definitions/hyperlaneChainMetadata/properties/blocks/properties/reorgPeriod/anyOf/0",
"description": "The absolute minimum block number that this RPC supports."
},
"maxBlockAge": {
"$ref": "#/definitions/hyperlaneChainMetadata/properties/chainId/anyOf/0",
"description": "The relative different from latest block that this RPC supports."
}
},
"additionalProperties": false,
"description": "Limitations on the block range/age that can be queried."
},
"retry": {
"type": "object",
"properties": {
"maxRequests": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "The maximum number of requests to attempt before failing."
},
"baseRetryMs": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "The base retry delay in milliseconds."
}
},
"required": [
"maxRequests",
"baseRetryMs"
],
"additionalProperties": false,
"description": "Default retry settings to be used by a provider such as MultiProvider."
}
},
"required": [
"http"
],
"additionalProperties": false
},
"description": "For cosmos chains only, a list of gRPC API URLs"
},
"index": {
"type": "object",
"properties": {
"from": {
"type": "number",
"description": "The block to start any indexing from."
}
},
"additionalProperties": false,
"description": "Indexing settings for the chain."
},
"isTestnet": {
"type": "boolean",
"description": "Whether the chain is considered a testnet or a mainnet."
},
"logoURI": {
"type": "string",
"description": "A URI to a logo image for this chain for use in user interfaces."
},
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9]*$",
"description": "The unique string identifier of the chain, used as the key in ChainMap dictionaries."
},
"nativeToken": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"decimals": {
"type": "integer",
"minimum": 0,
"exclusiveMaximum": 256
},
"denom": {
"type": "string"
}
},
"required": [
"name",
"symbol",
"decimals"
],
"additionalProperties": false,
"description": "The metadata of the native token of the chain (e.g. ETH for Ethereum)."
},
"protocol": {
"type": "string",
"enum": [
"ethereum",
"sealevel",
"cosmos",
"fuel"
],
"description": "The type of protocol used by this chain. See ProtocolType for valid values."
},
"restUrls": {
"type": "array",
"items": {
"$ref": "#/definitions/hyperlaneChainMetadata/properties/grpcUrls/items"
},
"description": "For cosmos chains only, a list of Rest API URLs"
},
"rpcUrls": {
"type": "array",
"items": {
"$ref": "#/definitions/hyperlaneChainMetadata/properties/grpcUrls/items"
},
"minItems": 1,
"description": "The list of RPC endpoints for interacting with the chain."
},
"slip44": {
"type": "number",
"description": "The SLIP-0044 coin type."
},
"technicalStack": {
"type": "string",
"enum": [
"arbitrumnitro",
"opstack",
"polygoncdk",
"polkadotsubstrate",
"zksync",
"other"
],
"description": "The technical stack of the chain. See ChainTechnicalStack for valid values."
},
"transactionOverrides": {
"type": "object",
"additionalProperties": {},
"description": "Properties to include when forming transaction requests."
}
},
"required": [
"chainId",
"domainId",
"name",
"protocol",
"rpcUrls"
],
"additionalProperties": false
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}