Associate tokens to an account

Associates the provided Hedera account with the provided Hedera token(s). Hedera accounts must be associated with a fungible or non-fungible token first before you can transfer tokens to that account. When you transfer a custom fungible or non-fungible token to the alias account ID, the token association step is skipped and the account will automatically be associated with the token upon creation. In the case of NON_FUNGIBLE Type, once an account is associated, it can hold any number of NFTs (serial numbers) of that token type. The Hedera account that is associated with a token is required to sign the transaction.

  • If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID.

  • If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED.

  • If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF.

  • If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED.

  • If an association between the provided account and any of the tokens already exists, the transaction will resolve to TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT.

  • If the provided account's associations count exceeds the constraint of maximum token associations per account, the transaction will resolve to TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED.

  • On success, associations between the provided account and tokens are made and the account is ready to interact with the tokens.

Transaction Signing Requirements

  • The key of the account the token is being associated to

  • Transaction fee payer account key

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

Methods

Method
Type
Description
Requirement

setAccountId(<accountId>)

AccountId

The account to be associated with the provided tokens

Required

setTokenIds(<tokens>)

List <TokenId>

The tokens to be associated with the provided account

Required

//Associate a token to an account
TokenAssociateTransaction transaction = new TokenAssociateTransaction()
        .setAccountId(accountId)
        .setTokenIds(Collections.singletonList(tokenId));

//Freeze the unsigned transaction, sign with the private key of the account that is being associated to a token, submit the transaction to a Hedera network
TransactionResponse txResponse = transaction.freezeWith(client).sign(accountKey).execute(client);

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

//Get the transaction consensus status
Status transactionStatus = receipt.status;

System.out.println("The transaction consensus status " +transactionStatus);
//v2.0.4

Last updated

Was this helpful?