Transfer HBAR
In this section, you will learn how to transfer HBAR from your account to another on the Hedera test network.
Prerequisites
Completed the Introduction step.
Completed the Environment Setup step.
Completed the Created an Account step.
Step 1 : Imports
The script imports necessary modules from the Hedera JavaScript SDK:
Client
,AccountBalanceQuery
,TransferTransaction
,Hbar
, andPrivateKey
.It also imports the
dotenv
module to load environment variables from a.env
file located in theAccount
directory.
const {
Client,
AccountBalanceQuery,
TransferTransaction,
Hbar,
PrivateKey
} = require("@hashgraph/sdk");
require('dotenv').config({ path: 'Account/.env' });
Step 2 : Environment Variables Retrieval
These lines retrieve environment variables such as MY_ACCOUNT_ID
, MY_PRIVATE_KEY
, and OTHER_ACCOUNT_ID
from the .env
file using process.env
.
const myAccountId = process.env.MY_ACCOUNT_ID;
const myPrivateKey = PrivateKey.fromString(process.env.MY_PRIVATE_KEY);
const otherAccountId = process.env.OTHER_ACCOUNT_ID;
Step 3 : Main Function
It creates a client instance for the Hedera testnet and sets the operator account using the user's account ID and private key.
It creates a
TransferTransaction
object to transfer HBars between accounts.The transaction subtracts 10 HBars from the operator account (
myAccountId
) and adds 10 HBars to the other account (otherAccountId
).The transaction is executed, and the resulting transaction ID (
txId
) is obtained.The receipt of the transaction is retrieved, and the transaction consensus status is obtained from the receipt.
Queries are created to retrieve the account balances of both the operator account and the other account.
The queries are executed, and the account balances are logged to the console.
async function main() {
const client = Client.forTestnet(); // Create a client for the Hedera testnet
client.setOperator(myAccountId, myPrivateKey); // Set the operator account for the client
const transaction = new TransferTransaction() // Create a transfer transaction
.addHbarTransfer(myAccountId, new Hbar(-10)) // Subtract 10 HBars from the operator account
.addHbarTransfer(otherAccountId, new Hbar(10)); // Add 10 HBars to the other account
console.log(`Doing transfer from ${myAccountId} to ${otherAccountId}`);
const txId = await transaction.execute(client); // Execute the transfer transaction
const receipt = await txId.getReceipt(client); // Get the receipt of the transaction
const transactionStatus = receipt.status; // Get the transaction consensus status
console.log("The transaction consensus status is " + transactionStatus);
const queryMine = new AccountBalanceQuery().setAccountId(myAccountId); // Create a query for operator account balance
const queryOther = new AccountBalanceQuery().setAccountId(otherAccountId); // Create a query for other account balance
const accountBalanceMine = await queryMine.execute(client); // Execute the query for operator account balance
const accountBalanceOther = await queryOther.execute(client); // Execute the query for other account balance
console.log(`My account balance ${accountBalanceMine.hbars} HBar, other account balance ${accountBalanceOther.hbars}`);
}
Step 4: Execution
This line calls the main()
function to start the execution of the script.
main();
Last updated
Was this helpful?