I have been researching on how to start a Hydra node in devnet using Docker and I found this link with these two simple commands:

docker pull ghcr.io/input-output-hk/hydra-node:latest
docker run --rm ghcr.io/input-output-hk/hydra-node --help

The problem is that, when I execute this, I get:

hydra-node - A prototype of Hydra Head protocol

Usage: hydra-node [-q|--quiet] [-n|--node-id INTEGER] [-h|--host IP] 
                  [-p|--port PORT] [-P|--peer ARG] [--api-host IP] 
                  [--api-port PORT] [--monitoring-port PORT] 
                  [--hydra-signing-key FILE] [--hydra-verification-key FILE] 
                  [--network-id INTEGER] [--node-socket FILE] 
                  [--cardano-signing-key FILE] [--cardano-verification-key FILE]
                  [--start-chain-from SLOT.HEADER_HASH] [--ledger-genesis FILE] 
                  [--ledger-protocol-parameters FILE] [--version] 

  Starts a Hydra Node

Available options:
  -q,--quiet               Turns off any logging
  -n,--node-id INTEGER     Sets this node's id
  -h,--host IP             The address this node listens on for Hydra network
                           peers connection (default:
  -p,--port PORT           The port this node listens on for Hydra network peers
                           connection (default: 5001)
  -P,--peer ARG            A peer address in the form <host>:<port>, where
                           <host> can be an IP address, or a host name
  --api-host IP            The address this node listens on for client API
                           connections (default:
  --api-port PORT          The port this node listens on for client API
                           connections (default: 4001)
  --monitoring-port PORT   The port this node listens on for monitoring and
                           metrics. If left empty, monitoring server is not
  --hydra-signing-key FILE Our Hydra multisig signing key.
  --hydra-verification-key FILE
                           Other party multisig verification key.
  --network-id INTEGER     A test network with the given network magic.
  --node-socket FILE       Local (Unix) socket path to connect to cardano node.
  --cardano-signing-key FILE
                           Signing key for the internal wallet use for Chain
  --cardano-verification-key FILE
                           Cardano verification key of other Hydra participant's
  --start-chain-from SLOT.HEADER_HASH
                           The point at which to start on-chain component.
                           Defaults to chain tip at startup time.
  --ledger-genesis FILE    Path to a Shelley-compatible genesis JSON file.
  --ledger-protocol-parameters FILE
                           Path to a JSON file describing protocol parameters
                           (same format as returned from 'cardano-cli query
  -h,--help                Show this help text
  --version                Show version
  --script-info            Dump script info as JSON

This doesn't seem to start anything.

What is the correct way to start hydra-node?

3 Answers 3


Here you can find the official documentation on Hydra.

There is also a demo section where it is explained how to use it


You are running with the --help option: 'docker run --rm ghcr.io/input-output-hk/hydra-node --help'

This will only ever show you the help information.


This is how you run hydra-node in Devnet. You need to have Docker installed.

Keep in mind that, at the moment, this is just a POC:

  1. git clone https://github.com/input-output-hk/hydra-poc
  2. cd hydra-poc/demo/
  3. ./prepare-devnet.sh
  4. ./run-docker.sh

This will start 1 instance of cardano-node and 3 instances of hydra-node.

If you open a new terminal, you can check they are working correctly with this command (you need to be in the hydra-poc/demo directory):

docker-compose ps

Once this is done, you can check the initial state of the network using this command:

docker-compose exec cardano-node cardano-cli query utxo --testnet-magic 42 --whole-utxo

You can also send some ada to Alice, Bob and Carol addresses using:


Now, if you check the status of the network again, you'll see something like this:

                           TxHash                                 TxIx        Amount
0ad134cc87cdf66a6863464b4393501eda7632f7c268b068c48b2aaf84f20e51     1        250000000 lovelace + TxOutDatumNone
2e80d483600acf194661e89bb08aee0cbb2844cf237e43d5e949d11038db9a96     1        100000000 lovelace + TxOutDatumHash ScriptDataInAlonzoEra "a654fb60d21c1fed48db2c320aa6df9737ec0204c0ba53b9b94a09fb40e757f3"
3eeea5c2376b033d5bdeab6fe551950883b04c08a37848c6d648ea03476dce83     1        1000000000 lovelace + TxOutDatumNone
648d71c1cbd835f6e1966c06ba0ad4347c3b399ef00576e59aee18b9e1ec9489     0        897949001186 lovelace + TxOutDatumNone
648d71c1cbd835f6e1966c06ba0ad4347c3b399ef00576e59aee18b9e1ec9489     1        100000000 lovelace + TxOutDatumHash ScriptDataInAlonzoEra "a654fb60d21c1fed48db2c320aa6df9737ec0204c0ba53b9b94a09fb40e757f3"
6db235b8759454654d19baf3ef601a2cb0e4ea3ebdc5e9db466dd07bccf53c7d     1        500000000 lovelace + TxOutDatumNone
94f16fc2a16b7ffa96c7929cbfc1e2f05424b6508612d4513fa23eaf458dc14b     1        100000000 lovelace + TxOutDatumHash ScriptDataInAlonzoEra "a654fb60d21c1fed48db2c320aa6df9737ec0204c0ba53b9b94a09fb40e757f3"

If at any point you'll like to restart the docker containers, I suggest you run the following:

docker-compose stop
docker-compose rm -f

Then you'll be able to do ./run-docker.sh again.

There's also a client which you can use to play a little with the Hydra heads:

docker-compose --profile tui run hydra-tui-1

You can change between hydra-tui-1, hydra-tui-2 and hydra-tui-3, depending on which hydra-node you want to connect with. Only when you close a head you'll see the changes committed to the main chain (cardano-node).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.