Create an account

Create an account using the account create API

A transaction that creates a Hedera account. A Hedera account is required to interact with any of the Hedera network services as you need an account to pay for all associated transaction/query fees. You can visit the Hedera Developer Portal to create a previewnet or testnet account. You can also use third-party wallets to generate free mainnet accounts. To process an account create transaction, you will need an existing account to pay for the transaction fee. To obtain the new account ID, request the receipt of the transaction.

When creating a new account using theAccountCreateTransaction()API you will need an existing account to pay for the associated transaction fee.

Account Properties

pageAccount Properties

Transaction Fees

  • Please see the transaction and query fees table for the base transaction fee

  • Please use the Hedera fee estimator to estimate your transaction fee cost

Transaction Signing Requirements

  • The account paying for the transaction fee is required to sign the transaction

Methods

MethodTypeRequirement

setKey(<key>)

Key

Required

setAlias(<alias>)

EvmAddress

Optional

setInitialBalance(<initialBalance>)

HBar

Optional

setReceiverSignatureRequired(<booleanValue>)

boolean

Optional

setMaxAutomaticTokenAssociations(<amount>)

int

Optional

setStakedAccountId(<stakedAccountId>)

AccountId

Optional

setStakedNodeId(<stakedNodeId>)

long

Optional

setDeclineStakingReward(<declineStakingReward>)

boolean

Optional

setAccountMemo(<memo>)

String

Optional

setAutoRenewPeriod(<autoRenewPeriod>)

Duration

Disabled

//Create the transaction
AccountCreateTransaction transaction = new AccountCreateTransaction()
    .setKey(privateKey.getPublicKey())
    .setInitialBalance(new Hbar(1000));

//Submit the transaction to a Hedera network
TransactionResponse txResponse = transaction.execute(client);

//Request the receipt of the transaction
TransactionReceipt receipt = txResponse.getReceipt(client);

//Get the account ID
AccountId newAccountId = receipt.accountId;

System.out.println("The new account ID is " +newAccountId);

//Version 2.0.0

Get transaction values

MethodTypeDescription

getKey()

Key

Returns the public key on the account

getInitialBalance()

Hbar

Returns the initial balance of the account

getAutoRenewPeriod()

Duration

Returns the auto renew period on the account

getDeclineStakingReward()

boolean

Returns whether or not the account declined rewards

getStakedNodeId()

long

Returns the node ID

getStakedAccountId()

AccountId

Returns the node account ID

getReceiverSignatureRequired()

boolean

Returns whether the receiver signature is required or not

//Create an account with 1,000 hbar
AccountCreateTransaction transaction = new AccountCreateTransaction()
    // The only _required_ property here is `key`
    .setKey(newKey.getPublicKey())
    .setInitialBalance(new Hbar(1000));

//Return the key on the account
Key accountKey = transaction.getKey();

Last updated