Skip to content

Blockchain Manifest File Documentation

The manifest is a JSON file that defines all the essential configuration and metadata required to integrate a new blockchain network into the system.

Core Purpose

The manifest file serves as a centralized "blueprint" for a specific blockchain. Its primary purpose is to provide the createManager factory with all the necessary parameters to instantiate the correct BlockchainManager. This declarative approach makes the system highly modular and simplifies the process of adding, updating, or maintaining support for various networks.


File Structure and Fields

Each manifest file is a JSON object. The fields can be grouped into several logical categories: core identification, network endpoints, token configuration, and explorer details.

Core Identification

These fields are essential for identifying the network and selecting the correct manager.

FieldTypeRequiredDescription
namestring✅ YesThe human-readable name of the blockchain (e.g., "Ethereum", "BNB Chain").
chainstring✅ YesA unique, machine-readable identifier for the chain (e.g., "eth_mainnet", "solana_mainnet").
typestring✅ YesThe type of manager to instantiate. This is the most critical field for the factory. Valid values include evm, bitcoin, solana, tron, ton, xrpl, venom.
versionnumber✅ YesThe version of the manifest schema. Currently should be 1.

Network Endpoints

These fields define the API and RPC endpoints for interacting with the blockchain.

FieldTypeRequiredDescription
rpcUrlstring✅ YesThe primary JSON-RPC endpoint for sending transactions and reading chain data. (Used by EVM, Solana, Tron, XRPL, Venom).
apiBaseUrlstring✅ YesThe base URL for a RESTful API service that provides blockchain data. (Used by Bitcoin, TON).
scannerApiUrlstringConditionalThe API endpoint for a block explorer's backend service, used for fetching transaction history. (e.g., Etherscan API for EVM chains).
scannerApiHoststringConditionalThe host for the block explorer API. (Used by Tron).
multicallAddressstringConditionalThe contract address for a Multicall contract, used for batching read calls on EVM-compatible chains.
chainIdnumberConditionalThe unique chain ID for an EVM-compatible network (e.g., 1 for Ethereum).
networkstringConditionalThe network identifier for Bitcoin (e.g., bitcoin).

Native Token and Price Provider

This section defines the native currency of the blockchain and how to fetch its price.

FieldTypeRequiredDescription
nativeTokenobject✅ YesAn object containing details about the native coin (e.g., ETH, BTC). See structure below.
priceProviderobject✅ YesAn object defining the service used to get token prices. See structure below.

nativeToken Object Structure

json
{
  "name": "Ethereum",
  "symbol": "ETH",
  "decimals": 18
}