Grants KYC to the Hedera account for the given Hedera token. This transaction must be signed by the token's KYC Key.
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 the provided token is not found, the transaction will resolve to INVALID_TOKEN_ID.
If the provided token has been deleted, the transaction will resolve to TOKEN_WAS_DELETED.
If an Association between the provided token and account is not found, the transaction will resolve to
TOKEN_NOT_ASSOCIATED_TO_ACCOUNT.
If no KYC Key is defined, the transaction will resolve to TOKEN_HAS_NO_KYC_KEY.
Once executed the Account is marked as KYC Granted.
Constructor | Description |
| Initializes the TokenGrantKycTransaction object |
new TokenGrantKycTransaction()
​
Method | Type | Description | Required |
| TokenId | The token for this account to have passed KYC | Required |
| AccountId | The account for this token to have passed KYC | Required |
Java//Enable KYC flag on accountTokenGrantKycTransaction transaction = new TokenGrantKycTransaction().setAccountId(accountId).setTokenId(tokenId);​//Freeze the unsigned transaction, sign with the kyc private key of the token, submit the transaction to a Hedera networkTransactionResponse txResponse = transaction.freezeWith(client).sign(kycKey).execute(client);//Request the receipt of the transactionTransactionReceipt receipt = txResponse.getReceipt(client);//Obtain the transaction consensus statusStatus transactionStatus = receipt.status;​System.out.println("The transaction consensus status is " +transactionStatus);​//v2.0.1
JavaScript//Enable KYC flag on account and freeze the transaction for manual signingconst transaction = await new TokenGrantKycTransaction().setAccountId(accountId).setTokenId(tokenId).freezeWith(client);​//Sign with the kyc private key of the tokenconst signTx = await transaction.sign(kycKey);​//Submit the transaction to a Hedera networkconst txResponse = await signTx.execute(client);​//Request the receipt of the transactionconst receipt = await txResponse.getReceipt(client);//Get the transaction consensus statusconst transactionStatus = receipt.status;​console.log("The transaction consensus status " +transactionStatus.toString());​//v2.0.5
Go//Enable KYC flag on account and freeze the transaction for manual signingtransaction, err = hedera.NewTokenGrantKycTransaction().SetAccountID(accountId).SetTokenID(tokenId).FreezeWith(client)​if err != nil {panic(err)}​//Sign with the kyc private key of the token, submit the transaction to a Hedera networktxResponse, err := transaction.Sign(kycKey).Execute(client)if err != nil {panic(err)}​//Get the receipt of the transactionreceipt, err = txResponse.GetReceipt(client)​if err != nil {panic(err)}//Get the transaction consensus statusstatus := receipt.Status​fmt.Printf("The transaction consensus status is %v\n", status)​//v2.1.0
Method | Type | Description | Requirement |
| TokenId | The token for this account to have passed KYC | Required |
| AccountId | The account for this token to have passed KYC | Required |
Java//Enable KYC flag on accountTokenGrantKycTransaction transaction = new TokenGrantKycTransaction().setTokenId(newTokenId).setAccountId(newAccountId);​//Build the unsigned transaction, sign with the kyc private key of the token, submit the transaction to a Hedera networkTransactionId transactionId = transaction.build(client).sign(kycKey).execute(client);//Request the receipt of the transactionTransactionReceipt getReceipt = transactionId.getReceipt(client);//Obtain the transaction consensus statusStatus transactionStatus = getReceipt.status;​System.out.println("The transaction consensus status is " +transactionStatus);//Version: 1.2.2
JavaScript//Enable KYC flag on accountconst transaction = new TokenGrantKycTransaction().setTokenId(newTokenId).setAccountId(newAccountId);​//Build the unsigned transaction, sign with the kyc private key of the token, submit the transaction to a Hedera networkconst transactionId = await transaction.build(client).sign(kycKey).execute(client);//Request the receipt of the transactionconst getReceipt = await transactionId.getReceipt(client);//Obtain the transaction consensus statusconst transactionStatus = getReceipt.status;​console.log("The transaction consensus status is " +transactionStatus);//Version 1.4.2
​