@morpho-dev/router
v0.18.0
Published
Router package for Morpho protocol
Readme
Router
Status: Alpha – this is under active development and interfaces/behavior are subject to change.
CLI
CLI install
pnpm add -g @morpho-dev/router- Router configuration is read from a TOML file
router startaccepts--config-file(orROUTER_CONFIG_FILE/./router.toml)- Indexer chains can be selected in TOML (
[indexer].chains) or at runtime with--chains - Seed mock offers with
--mock <n>for testing - Load offers from JSON file with
--file <path> - When
[indexer]is enabled, a monitoring server is started (default:8083) exposing/readyzand/metrics - API
/metricsis API-only (HTTP/process telemetry) - Indexer
/metricsis the source of truth for sync gauges (router_collector_block_number,router_chain_block_number,router_chain_remote_block_number) - Collector lag is derived in PromQL (
remote - collector) and is no longer emitted asrouter_collector_lag_blocks
Examples:
# Start router from a config file
router start --config-file ./router.toml
# Start router using the env fallback
ROUTER_CONFIG_FILE=./router.toml router start
# Start router indexer only on one chain (when [indexer].chains is omitted)
router start --config-file ./router.toml --chains ethereum
# Start router with mock offers for testing
router start --config-file ./router.toml --mock 100
# Start router with offers loaded from file
router start --config-file ./router.toml --file offers.jsonChain
Use router chain to manage the anvil chain for dev and E2E workflows.
# Start a chain and emit JSON status
router chain start --output json
# Check chain status
router chain status --output json
# Stop the chain and purge state
router chain stop --purgeExample router.toml:
[logging]
level = "info"
[database]
url_env = "DATABASE_URL"
[api]
port = 7891
timeout_ms = 10000
[indexer]
block_window = 8000
metrics_port = 8083
# interval = 10000
# interval_by_chain = { base = 500, ethereum = 10000 }
# chains = ["ethereum"]
# If omitted, `router start` indexes all chains defined under [chains]
[chains."ethereum"]
rpc_url_env = "ETHEREUM_RPC_URL"CLI reference
Global
Usage: router [options] [command]
Router package for Morpho protocol
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
start [options] Start Router services.
chain Manage the chain lifecycle (Prool server with
Anvil).
gatekeeper [options] Start Gatekeeper validation service.
query [options] Start query projection service.
operator [options] [command...] Interactive operator console for a remote
router instance.
help [command] display help for commandstart
Usage: router start [options]
Start Router services.
Options:
--config-file <path> Path to router TOML config file
--mock <n> Number of mock offers to seed
--chains <names> Comma-separated chain names to index (e.g.
ethereum,base)
--file <path> Seed offers from a JSON file
-h, --help display help for commandchain
Usage: router chain [options] [command]
Manage the chain lifecycle (Prool server with Anvil).
Options:
-h, --help display help for command
Commands:
start [options] Start a Prool server managing an Anvil instance.
status [options] Show chain status.
stop [options] Stop the chain process.
restart [options] Restart the chain process.
deploy [options] Deploy contracts to an already-running Anvil instance.
logs [options] Read anvil logs.
help [command] display help for commandgatekeeper
Usage: router gatekeeper [options]
Start Gatekeeper validation service.
Options:
--config-file <path> Path to router TOML config file
-h, --help display help for commandquery
Usage: router query [options]
Start query projection service.
Options:
--config-file <path> Path to router TOML config file
-h, --help display help for commandoperator
Usage: router operator [options] [command...]
Interactive operator console for a remote router instance.
Arguments:
command One-shot: execute command and exit
Options:
--url <url> Router URL to connect to. (default:
"http://router-alpha.morpho.dev")
--rpc <url> RPC URL for on-chain transactions. (default:
"https://base-rpc.publicnode.com")
--pk <key> Private key for write operations.
-h, --help display help for command