The minimum amount, or smallest UTXO, you can send in one transaction is 1 ADA.
Set the amount to send in lovelaces. Remember 1 ADA = 1,000,000 lovelaces.
First, find the tip of the blockchain to set the invalid-hereafter parameter properly.
Block Producer Node
Copy currentSlot=$(cardano-cli query tip --mainnet | jq -r '.slot')
echo Current Slot: $currentSlot
Block Producer Node
Copy amountToSend=10000000
echo amountToSend: $amountToSend
Set the destination address which is where you're sending funds to.
If you want to sent some ADA to the great CoinCashew team use: addr1qxhazv2dp8yvqwyxxlt7n7ufwhw582uqtcn9llqak736ptfyf8d2zwjceymcq6l5gxht0nx9zwazvtvnn22sl84tgkyq7guw7q
Block Producer Support CoinCashew geldtigerCold
Copy destinationAddress=$(cat payment.addr)
echo destinationAddress: $destinationAddress
Copy destinationAddress=addr1qxhazv2dp8yvqwyxxlt7n7ufwhw582uqtcn9llqak736ptfyf8d2zwjceymcq6l5gxht0nx9zwazvtvnn22sl84tgkyq7guw7q
echo destinationAddress: $destinationAddress
Copy destinationAddress=$(cat geldtigerCold.addr)
echo destinationAddress: $destinationAddress
Find your balance and UTXOs .
Block Producer
Copy cardano-cli query utxo \
--address $(cat payment.addr) \
--mainnet > fullUtxo.out
tail -n +3 fullUtxo.out | sort -k3 -nr > balance.out
cat balance.out
tx_in=""
total_balance=0
while read -r utxo; do
in_addr=$(awk '{ print $1 }' <<< "${utxo}")
idx=$(awk '{ print $2 }' <<< "${utxo}")
utxo_balance=$(awk '{ print $3 }' <<< "${utxo}")
total_balance=$((${total_balance}+${utxo_balance}))
echo TxHash: ${in_addr}#${idx}
echo ADA: ${utxo_balance}
tx_in="${tx_in} --tx-in ${in_addr}#${idx}"
done < balance.out
txcnt=$(cat balance.out | wc -l)
echo Total ADA balance: ${total_balance}
echo Number of UTXOs: ${txcnt}
Run the build-raw transaction command.
block producer node
Copy cardano-cli transaction build-raw \
${tx_in} \
--tx-out $(cat payment.addr)+0 \
--tx-out ${destinationAddress}+0 \
--invalid-hereafter $(( ${currentSlot} + 10000)) \
--fee 0 \
--out-file tx.tmp
Calculate the current minimum fee:
block producer node
Copy fee=$(cardano-cli transaction calculate-min-fee \
--tx-body-file tx.tmp \
--tx-in-count ${txcnt} \
--tx-out-count 2 \
--mainnet \
--witness-count 1 \
--byron-witness-count 0 \
--protocol-params-file params.json | awk '{ print $1 }')
echo fee: $fee
Calculate your change output.
block producer node
Copy txOut=$((${total_balance}-${fee}-${amountToSend}))
echo Change Output: ${txOut}
Build your transaction.
block producer node
Copy cardano-cli transaction build-raw \
${tx_in} \
--tx-out $(cat payment.addr)+${txOut} \
--tx-out ${destinationAddress}+${amountToSend} \
--invalid-hereafter $(( ${currentSlot} + 10000)) \
--fee ${fee} \
--out-file tx.raw
Copy tx.raw to your cold environment.
For this purpose you can use scp
(secure copy)
Local HOT environment
Copy # PORT SOURCE (Block Producer) TARGET (Local Mashine)
scp -P 9999 user@12.123.123.123:/home/tx.raw /home/
Sign the transaction with the payment secret key.
air-gapped offline machine
Copy cardano-cli transaction sign \
--tx-body-file tx.raw \
--signing-key-file payment.skey \
--mainnet \
--out-file tx.sign
Copy tx.signed to your hot environment.
For this purpose you can use scp
(secure copy)
Local HOT environment
Copy # PORT SOURCE (Local Mashine) TARGET (Block Producer)
scp -P 9999 /home/tx.signed user@12.123.123.123:/home/
Send the signed transaction.
block producer node
Copy cardano-cli transaction submit \
--tx-file tx.signed \
--mainnet
Check if the funds arrived.
Please be patient. It could take up to 20min till the transactions are confirmed by the blockchain. This depents largely on the grade of congestion at the time where you have sent your transaction. You can check the block chain load at Cardano Block Cahin Insights .
block producer node
Copy cardano-cli query utxo \
--address ${destinationAddress} \
--mainnet