<shardNum>.<realmNum>.<alias>. This is an alternative account identifier compared to the standard account number format <shardId>.<realmId>.<accountNum>.
The account alias can be either one of the supported types:
Public Key
Public Key
02d588ec1000770949ab77516c77ee729774de1c8fe058cab6d64f1b12ffc8ff07DER Encoded ECDSA secp256k1 Public Key Alias:
302d300706052b8104000a03220002d588ec1000770949ab77516c77ee729774de1c8fe058cab6d64f1b12ffc8ff07ECDSA secp256k1 Public Key Alias Account ID:
0.0.302d300706052b8104000a03220002d588ec1000770949ab77516c77ee729774de1c8fe058cab6d64f1b12ffc8ff07EDDSA ED25519 Public Key:
1a5a62bb9f35990d3fea1a5bb7ef6f1df0a297697adef1e04510c9d4ecc5db3fDER Encoded EDDSA ED25519 Public Key Alias:
302a300506032b65700321001a5a62bb9f35990d3fea1a5bb7ef6f1df0a297697adef1e04510c9d4ecc5db3fEDDSA ED25519 Public Key Alias Account ID:
0.0.302a300506032b65700321001a5a62bb9f35990d3fea1a5bb7ef6f1df0a297697adef1e04510c9d4ecc5db3fEVM Address
EVM Address
Keccak-256 hash of an ECDSA secp256k1 public key. This calculation is in the manner described by the Ethereum Yellow Paper. The EVM address is not equivalent to the ECDSA public key.The acceptable format for Hedera transactions is the EVM Address Alias Account ID. The acceptable format for Ethereum public addresses to denote an account address is the hex encoded public address.ExampleEVM Address: b794f5ea0ba39494ce839613fffba74279579268HEX Encoded EVM Address: 0xb794f5ea0ba39494ce839613fffba74279579268EVM Address Alias Account ID: 0.0.b794f5ea0ba39494ce839613fffba74279579268<shardNum>.<realmNum>.<alias> format is only acceptable when specified in the TransferTransaction, AccountInfoQuery, and AccountBalanceQuery transaction types. If this format is used to specify an account in any other transaction type, the transaction will not succeed.
Reference Hedera Improvement Proposal: HIP-583
Auto Account Creation Flow
1. Create an account alias
Create an account alias and convert it to the alias account ID format. The alias account ID format requires appending the shard number and realm numbers to the account alias. This form of account is purely a local account, i.e., not registered with the Hedera network.2. Deposit tokens to the account alias account ID
Once the alias Account ID exists, create a TransferTransaction that sends HBAR or HTS tokens to that alias. Sending tokens triggers auto account creation on the network, and the first token transferred is automatically associated with the new account. When the transfer executes, the network:- Creates a child account-creation transaction just before the transfer
- Assigns a new account number and stores the alias on the account
- Sets the memo to indicate an auto-created account
- Sets the account key if the alias is a public key, or leaves the account hollow if the alias is an EVM address
Note
The account-creation child transaction is timestamped just before the transfer (a minimal offset).Parent and child share the same Transaction ID; the child uses the same ID with a nonce increment.
Fees for both the account creation and the transfer are charged in tinybars to the payer of the parent transfer.
To retrieve the new Account ID, either request the parent record with child records included or query the child record directly by incrementing the nonce.
3. Get the new account number
You can obtain the new account number in any of the following ways:- Request the parent transaction record or receipt and set the child transaction record boolean flag equal to true.
- Request the transaction receipt or record of the account create transaction by using the transaction ID of the parent transfer transaction and incrementing the nonce value from 0 to 1.
- Specify the account alias account ID in an
AccountInfoQuerytransaction request. The response will return the account’s account number account ID. - Inspect the parent transfer transaction record transfer list for the account with a transfer equal to the token transfer value.
Auto Account Creation with an EVM Address
When the alias is an EVM address, the network creates a hollow account. A hollow account has an account number and alias but no key. It can receive tokens, but it cannot send tokens or modify account properties until it is a complete account.Hollow Account Creation Flow
Hollow vs Complete Account Capabilities
| Operation | Hollow Account | Complete Account |
|---|---|---|
| Receive HBAR | ✅ Yes | ✅ Yes |
| Receive HTS tokens | ✅ Yes | ✅ Yes |
| Send HBAR | ❌ No | ✅ Yes |
| Send HTS tokens | ❌ No | ✅ Yes |
| Initiate transfers | ❌ No | ✅ Yes |
| Update account properties | ❌ No | ✅ Yes |
| Create smart contracts | ❌ No | ✅ Yes |
| Sign transactions | ❌ No | ✅ Yes |
| Act as transaction fee payer | ❌ No (except completion) | ✅ Yes |
| Has account key set | ❌ No | ✅ Yes |
| Query account info | ✅ Yes | ✅ Yes |
| Query account balance | ✅ Yes | ✅ Yes |
Complete a Hollow Account
- The hollow account must be the transaction fee payer
- The transaction must be signed with the ECDSA private key that corresponds to the EVM address
Step-by-step: Complete using HAPI SDKs
Obtain the hollow account ID
- Query the parent transaction record with child records
- Use
AccountInfoQuerywith the alias account ID - Check the transfer list in the transaction record
Create a transaction with the hollow account as payer
Sign with the ECDSA private key
Execute the transaction
Step-by-step: Complete using EVM wallets
Import the account into an EVM wallet
Configure the wallet for Hedera
- Network Name: Hedera Mainnet (or Testnet)
- RPC URL:
https://mainnet.hashio.io/api(or testnet equivalent) - Chain ID: 295 (mainnet) or 296 (testnet)
- Currency Symbol: HBAR
Send any transaction from the wallet
- Sets the hollow account as the transaction fee payer
- Signs the transaction with the ECDSA private key
- Submits the transaction via JSON-RPC relay
Common pitfalls and errors
Error: INVALID_SIGNATURE - Transaction not signed with correct key
Error: INVALID_SIGNATURE - Transaction not signed with correct key
Error: INVALID_ACCOUNT_ID - Account does not exist
Error: INVALID_ACCOUNT_ID - Account does not exist
AccountInfoQuery with the alias to get the account number.Error: INSUFFICIENT_PAYER_BALANCE - Not enough HBAR for fees
Error: INSUFFICIENT_PAYER_BALANCE - Not enough HBAR for fees
Error: INVALID_TRANSACTION_ID - Transaction ID payer mismatch
Error: INVALID_TRANSACTION_ID - Transaction ID payer mismatch
Account still hollow after transaction
Account still hollow after transaction
- Transaction ID must be generated with the hollow account
- Transaction must be signed with the matching ECDSA private key
Using wrong key type (ED25519 instead of ECDSA)
Using wrong key type (ED25519 instead of ECDSA)
Frequently asked questions
When does an account become hollow vs complete?
When does an account become hollow vs complete?
- It’s created via auto account creation using an EVM address alias
- Tokens are transferred to the EVM address alias for the first time
- The network creates the account without setting an account key
- It’s created via auto account creation using a public key alias (ED25519 or ECDSA)
- A hollow account is completed by acting as fee payer and signing with the matching ECDSA key
- It’s created using the traditional
AccountCreateTransaction
Can I complete a hollow account multiple times?
Can I complete a hollow account multiple times?
What happens if I lose the private key for a hollow account?
What happens if I lose the private key for a hollow account?
- The account has no key set (it’s hollow)
- Only the matching ECDSA private key can complete the account
- Without completion, the account cannot initiate any transactions
Can I use a hollow account with smart contracts?
Can I use a hollow account with smart contracts?
Do I need to complete a hollow account to receive tokens?
Do I need to complete a hollow account to receive tokens?
- Send or transfer tokens out of the account
- Modify account properties
- Initiate any transaction where the account is the fee payer
Can I complete a hollow account using an ED25519 key?
Can I complete a hollow account using an ED25519 key?
How much HBAR do I need to complete a hollow account?
How much HBAR do I need to complete a hollow account?
Can I query a hollow account's balance and info?
Can I query a hollow account's balance and info?
AccountBalanceQuery and AccountInfoQuery work with hollow accounts. You can:- Check the account balance
- View the account’s EVM address alias
- See the account number
- Confirm the account has no key set (indicating it’s hollow)
What's the difference between account alias and account number?
What's the difference between account alias and account number?
- Account Number: The permanent numeric identifier assigned by the network (e.g.,
0.0.12345) - Account Alias: An alternative identifier that can be a public key or EVM address (e.g.,
0.0.b794f5ea0ba39494ce839613fffba74279579268)
TransferTransaction, AccountInfoQuery, AccountBalanceQuery).Can I create multiple hollow accounts with the same EVM address?
Can I create multiple hollow accounts with the same EVM address?
Automatic Token Associations for Completed Accounts
Once a hollow account has been converted into a complete account by acting as the payer for a transaction and signing with its ECDSA private key, it inherits the default automatic association settings. Specifically, the account’smaxAutoAssociations property defaults to –1, enabling unlimited automatic token associations. This means that any subsequent HTS tokens transferred to the completed account will be automatically associated, and the recipient does not need to manually associate with each token. This behavior is part of frictionless airdrops (HIP‑904) and differs from earlier network versions where auto‑association for new tokens was not available.
Examples
Auto-create an account using a public key alias
Auto-create an account using a public key alias
Auto-create an account using an EVM address (public address) alias
Auto-create an account using an EVM address (public address) alias