Docs
External Chain Nodes

Hyperliquid

πŸ’‘

Amplifier chain

This chain is verified by Amplifier verifiers. Before setting up this node, set up your ampd verifier.

πŸ’‘

Check the official documentation

The node setup steps below follow Hyperliquid's own documentation at the time of writing and may be out of date. Check the official documentation before you start. The Axelar-specific steps (connecting the node to vald or ampd) are maintained here.

Set up your Hyperliquid Mainnet or Testnet node

Prerequisites

Clone the Repository and Import key

cd $HOME
git clone https://github.com/hyperliquid-dex/node
cd node
gpg --import pub_key.asc

Configuring the node

echo '{"chain": "Mainnet"}' > visor.json
echo '{"chain": "Testnet"}' > visor.json

Download the Visor binary

The visor binary spawns and manages the child node process.

curl https://binaries.hyperliquid.xyz/Mainnet/hl-visor > hl-visor && chmod a+x hl-visor
curl https://binaries.hyperliquid-testnet.xyz/Testnet/hl-visor > hl-visor && chmod a+x hl-visor

Configure the node

echo '{ "root_node_ips": [{"Ip": "1.2.3.4"}], "try_new_peers": true, "chain": "Mainnet" }' > override_gossip_config.json
echo '{ "root_node_ips": [{"Ip": "1.2.3.4"}], "try_new_peers": true, "chain": "Testnet" }' > override_gossip_config.json

For faster bootstrapping, use a known reliable peer. Can be found here.

Note: If you don't find peers for testnet, you can still start the node, but it may take some time to bootstrap.

Start the node

sudo tee <<EOF >/dev/null /etc/systemd/system/hyperliquid.service
[Unit]
Description=Hyperliquid Node
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$HOME/hl-visor run-non-validator --serve-eth-rpc
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

To enable and start the service:

sudo systemctl daemon-reload
sudo systemctl start hyperliquid
sudo systemctl enable hyperliquid

To check the status of the running service or to follow the logs, you can use:

sudo systemctl status hyperliquid
sudo journalctl -u hyperliquid -f

After a few minutes, you should see lines that look like this. This means your node has started syncing with the network and is receiving blocks.

2025-05-26T06:59:33.774Z WARN >>> hl-node @@ applied block 607619100
2025-05-26T06:59:35.240Z WARN >>> hl-node @@ applied block 607619200
2025-05-26T06:59:36.233Z WARN >>> hl-node @@ applied block 607619300
2025-05-26T06:59:38.395Z WARN >>> hl-node @@ applied block 607619400
2025-05-26T06:59:39.407Z WARN >>> hl-node @@ applied block 607619500
2025-05-26T06:59:40.688Z WARN >>> hl-node @@ applied block 607619600

Note: The network can generate up to 100 GB of data per day, so it is strongly recommended to archive or delete old files regularly.
For more details, refer to the official documentation.

To manage storage more efficiently, you can use the following flag:

$HOME/hl-visor run-non-validator --serve-eth-rpc --replica-cmds-style recent-actions

This will automatically retain only the latest two height files, deleting older ones as new data is added. It’s a simple and effective way to reduce disk usage without manual intervention.

Check latest block height

To retrieve the latest block height:

curl -X POST --header 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}' \
  http://localhost:3001/evm

Note: Port 3001 may take few moments to become available after the service has started.

Configure ampd

This assumes you have set up ampd as per Become an Amplifier verifier.

Add the chain to your ampd config (~/.ampd/config.toml):

[[grpc.blockchain_service.chains]]
chain_name="hyperliquid"
voting_verifier="axelar1n64vk7l3zagh2eadkuhl7602lxluu86dn9smfxyp7c2e4v8pqj5sv4ypjr"
multisig_prover="axelar1fxd8rq5j6wluyc07vl9vqr4xmdxxm25l2gd6m2an20mn5fdnzy6qll2nxx"
multisig="axelar14a4ar5jh7ue4wg28jwsspf23r8k68j7g5d6d3fsttrhp42ajn4xq6zayy5"
[[grpc.blockchain_service.chains]]
chain_name="hyperliquid"
voting_verifier="axelar1n64vk7l3zagh2eadkuhl7602lxluu86dn9smfxyp7c2e4v8pqj5sv4ypjr"
multisig_prover="axelar1fxd8rq5j6wluyc07vl9vqr4xmdxxm25l2gd6m2an20mn5fdnzy6qll2nxx"
multisig="axelar14a4ar5jh7ue4wg28jwsspf23r8k68j7g5d6d3fsttrhp42ajn4xq6zayy5"

Create a config directory for the evm-handler, pointing it at your node:

~/.ampd/hyperliquid/config.toml
ampd_url = "http://127.0.0.1:9090"
chain_name = "hyperliquid"
~/.ampd/hyperliquid/evm-handler-config.toml
rpc_url = "<your node's RPC URL>"
finalization = "RPCFinalizedBlock"

Start the handler:

evm-handler --config-dir ~/.ampd/hyperliquid/

See Set up handlers for running handlers with Docker or as services.

Register chain support

Once the handler is running, register your verifier's support for the chain:

ampd register-chain-support amplifier hyperliquid

On this page