Wir laden uns die Cardano-Wallet herunter und legen diese an einen sinnvollen Ort ab, zum Beispiel:
$HOME/cardano-my-wallet
Nun fügen wir die Toolchain zum PATH hinzu, damit wir dies nicht immer aufs Neue erledigen müssen:
export PATH="$(pwd):$PATH"
Wir erzeugen uns eine MNEMONIC:
cardano-address recovery-phrase generate --size 15 > phrase.prv
phrase.prv könnte nun folgendes enthalten:
$MNEMONIC="squirrel material silly blurb direct slush pistol rasen become junk test flee squirrel squirrel twice mater material silly twice direct slush pistol razor become"
Jetzt erzeugen wir aus der MNEMONIC einen Private Key:
cardano-address key from-recovery-phrase Shelley < phrase.prv > root.xsk
Wir leiten einen extended payment signing key ab:
cat root.xsk | cardano-address key child 1852H/1815H/0H/0/0 > addr.xsk
Wir haben nun für den derivation path 1852H/1815H/0H/0/0 einen child key erzeugt. Dieser kann noch keine Transaktionen aus diesen derivation path signieren. Würden wir diesen Key verwenden, so würde es einen Fehler von der cli geben.
Das erzeugen eines child keys ist nicht notwendig, auch der root key könnte zum signieren von transaktionen verwendet werden. Trotzdem ist es best practise einen child key zu erzeugen.
Jetzt erzeugen wir einen payment signing Key, der auch mit der CLI verwendet werden kann:
cardano-cli key convert-cardano-address-key --shelley-payment-key --signing-key-file addr.xsk --out-file addr.skey
Nun gibt es diverse Möglichkeiten, wie wir die Adresse zu diesem key bekommen.
Die 1. Variante führt über einen payment verification key:
cardano-cli key verification-key --signing-key-file addr.skey --verification-key-file addr.vkey cardano-cli address build --mainnet --payment-verification-key-file addr.vkey --out-file payment.addr
Die 2. Variante würde über das Kommando cardano-address führen
cat addr.xsk | cardano-address key public --with-chain-code | cardano-address address payment --network-tag mainnet > payment.addr
Exkurs – Der derivation path:
Wer im Daedalus eine adresse anklickt sieht etwas wie dies hier:
m/1852/1815/0/0/3
Das ist der derivation path. Im Einzelnen bedeutet es folgendes:
m / purpose / coin_type / account_index / role / address_index
1852 ist der hardgecodete Shelly-era address type, 1815 ist der hardgecodete ADA index (coin_type – ADA). Der address_index, ganz am Ende wird mit jeder neu erzeugten Adresse um 1 erhöht.