Loading...
Loading...
Hydra Head guidance: setup, keys, peers, lifecycle. Best practices from hydra.family. Use operator skill for execution.
npx skill4agent add flux-point-studios/cardano-agent-skills hydra-headThis is a guidance skill. Provides best practices and templates. For execution, use.hydra-head-operator
.skhydra-nodechmod +x {baseDir}/scripts/hydra-node.sh
{baseDir}/scripts/hydra-node.sh --help
{baseDir}/scripts/hydra-node.sh gen-hydra-key --output-file hydraInit → Commit → Open → [L2 transactions] → Close → Contest → Fanout# Cardano payment keys
cardano-cli conway address key-gen \
--verification-key-file cardano.vk \
--signing-key-file cardano.sk
# Hydra keys
hydra-node gen-hydra-key --output-file hydra
# Creates hydra.sk and hydra.vk
chmod 600 *.skcardano.skhydra.skcardano.vkhydra.vk# From hydra-node release notes for your network
# Preview: <scripts-tx-id-preview>
# Preprod: <scripts-tx-id-preprod>
# Mainnet: <scripts-tx-id-mainnet>hydra-node run \
--node-id "alice" \
--persistence-dir ./hydra-data \
\
# Cardano connection (choose one):
--node-socket /path/to/node.socket \
--testnet-magic 1 \
# OR:
--blockfrost blockfrost.txt \
\
# Identity:
--cardano-signing-key cardano.sk \
--hydra-signing-key hydra.sk \
\
# Peers (repeat for each):
--cardano-verification-key bob-cardano.vk \
--hydra-verification-key bob-hydra.vk \
--peer "bob.example.com:5001" \
\
# Protocol:
--hydra-scripts-tx-id <scripts-tx-id> \
--contestation-period 120s \
\
# API:
--api-host 0.0.0.0 \
--api-port 4001 \
--host 0.0.0.0 \
--port 5001# Via hydra-tui
hydra-tui --connect localhost:4001
# Via API
curl -X POST localhost:4001/init
# Then each party commits
curl -X POST localhost:4001/commit \
-H "Content-Type: application/json" \
-d '{"utxo": {...}}'# Submit transaction
curl -X POST localhost:4001/submit \
-H "Content-Type: application/json" \
-d '{"transaction": "..."}'curl -X POST localhost:4001/close
# Wait for contestation period
curl -X POST localhost:4001/fanout# === Party 1 (Alice) ===
# 1. Create directory
mkdir -p ~/hydra/alice && cd ~/hydra/alice
# 2. Generate keys
cardano-cli conway address key-gen \
--verification-key-file cardano.vk \
--signing-key-file cardano.sk
hydra-node gen-hydra-key --output-file hydra
chmod 600 *.sk
# 3. Get preprod scripts tx id from release notes
SCRIPTS_TX_ID="..."
# 4. Exchange keys with Bob (get bob-cardano.vk, bob-hydra.vk)
# 5. Run node
hydra-node run \
--node-id "alice" \
--persistence-dir ./data \
--node-socket $CARDANO_NODE_SOCKET_PATH \
--testnet-magic 1 \
--cardano-signing-key cardano.sk \
--hydra-signing-key hydra.sk \
--cardano-verification-key bob-cardano.vk \
--hydra-verification-key bob-hydra.vk \
--peer "bob-host:5001" \
--hydra-scripts-tx-id $SCRIPTS_TX_ID \
--contestation-period 120s \
--api-port 4001 \
--port 5001
# === After both nodes running ===
# 6. Init head (either party)
curl -X POST localhost:4001/init
# 7. Commit funds
hydra-tui --connect localhost:4001
# Select UTxO to commit
# 8. Head opens when all commithydra-head-troubleshooter.skshared/PRINCIPLES.mdhydra-head-operatorhydra-head-troubleshooterreference/sources.md