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.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | The human-readable name of the blockchain (e.g., "Ethereum", "BNB Chain"). |
chain | string | ✅ Yes | A unique, machine-readable identifier for the chain (e.g., "eth_mainnet", "solana_mainnet"). |
type | string | ✅ Yes | The type of manager to instantiate. This is the most critical field for the factory. Valid values include evm, bitcoin, solana, tron, ton, xrpl, venom. |
version | number | ✅ Yes | The version of the manifest schema. Currently should be 1. |
Network Endpoints
These fields define the API and RPC endpoints for interacting with the blockchain.
| Field | Type | Required | Description |
|---|---|---|---|
rpcUrl | string | ✅ Yes | The primary JSON-RPC endpoint for sending transactions and reading chain data. (Used by EVM, Solana, Tron, XRPL, Venom). |
apiBaseUrl | string | ✅ Yes | The base URL for a RESTful API service that provides blockchain data. (Used by Bitcoin, TON). |
scannerApiUrl | string | Conditional | The API endpoint for a block explorer's backend service, used for fetching transaction history. (e.g., Etherscan API for EVM chains). |
scannerApiHost | string | Conditional | The host for the block explorer API. (Used by Tron). |
multicallAddress | string | Conditional | The contract address for a Multicall contract, used for batching read calls on EVM-compatible chains. |
chainId | number | Conditional | The unique chain ID for an EVM-compatible network (e.g., 1 for Ethereum). |
network | string | Conditional | The 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.
| Field | Type | Required | Description |
|---|---|---|---|
nativeToken | object | ✅ Yes | An object containing details about the native coin (e.g., ETH, BTC). See structure below. |
priceProvider | object | ✅ Yes | An object defining the service used to get token prices. See structure below. |
nativeToken Object Structure
{
"name": "Ethereum",
"symbol": "ETH",
"decimals": 18
}