2. Wallets and Funds

2.1. Some Helper Scripts

I have a repo that contains a few helper scripts that I use. It’s rough and ready, but saves a little time for some common tasks.

cd /data
git clone https://github.com/chris-moreton/plutus-scripts

2.1.1. Generate test addresses

Run the generate wallets script to generate a few addresses.

cd /data/plutus-scripts
./generateAddresses.sh

This script wraps the following command.

# example only, don't run this
$CARDANO_CLI address key-gen --verification-key-file main.vkey --signing-key-file main.skey

This will create some .addr, .skey and .vkey files in the wallets directory.

2.1.2. Use the Faucet

If you have access to the testnet faucet, transfer some test Ada to the main wallet.

./faucet.sh SECRET_KEY

Then, check that it has arrived. It should arrive within a minute or so.

cd /data/plutus-scripts
./balance.sh main

TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
40f0fa60a71e247e3eca46147fc159080aa7667763ae8c3be00b2e48400bbccd     0        1000000000000 lovelace + TxOutDatumHashNone

The balance.sh script wraps the following command.

# example only, don't run this
$CARDANO_CLI query utxo --address $(cat ./wallets/$1.addr) --testnet-magic $TESTNET_MAGIC_NUM

2.1.3. Transfer some funds

We will transfer some funds to wallet1. This uses another helper script, which takes the sending wallet as an argument and then asks for the UTxO, amount and receiving wallet name.

./sendFromWallet.sh main

TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
40f0fa60a71e247e3eca46147fc159080aa7667763ae8c3be00b2e48400bbccd     0        1000000000000 lovelace + TxOutDatumHashNone

TX row number: 1
Lovelace to send: 100000000000
Receiving wallet name: wallet1

Transaction successfully submitted.

The sendFromWallet.sh script wraps the following commands.

# example only, don't run these

$CARDANO_CLI transaction build \
    --tx-in ${FROM_UTXO} \
    --tx-out ${TO_WALLET_ADDRESS}+${LOVELACE_TO_SEND} \
    --change-address=${FROM_WALLET_ADDRESS} \
    --testnet-magic ${TESTNET_MAGIC_NUM} \
    --out-file tx.build \
    --alonzo-era

$CARDANO_CLI transaction sign \
    --tx-body-file tx.build \
    --signing-key-file ./wallets/${FROM_WALLET_NAME}.skey \
    --out-file tx.signed

$CARDANO_CLI transaction submit --tx-file tx.signed --testnet-magic $TESTNET_MAGIC_NUM

Check that it has arrived.

./balance.sh wallet1

TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
bd7422ef2cd55d1c5a33601a3b75b080bc3742856e5ddb8dfdfae07f583c7af1     0        1000000000 lovelace + TxOutDatumHashNone