Update a topic

A transaction that updates the properties of an existing topic. This includes the topic memo, admin key, submit key, auto-renew account, and auto rauto-renewenew period.

Topic Properties

Field
Description

Topic ID

Update the topic ID

Admin Key

Set a new admin key that authorizes update topic and delete topic transactions.

Submit Key

Set a new submit key for a topic that authorizes sending messages to this topic.

Topic Memo

Set a new short publicly visible memo on the new topic and is stored with the topic. (100 bytes)

Auto Renew Account

Set a new auto-renew account ID for this topic. Currently, rent is not enforced for topics so auto-renew payments will not be made.

Auto Renew Period

Set a new auto-renew period for this topic. Currently, rent is not enforced for topics so auto-renew payments will not be made. NOTE: The minimum period of time is approximately 30 days (2592000 seconds) and the maximum period of time is approximately 92 days (8000001 seconds). Any other value outside of this range will return the following error: AUTORENEW_DURATION_NOT_IN_RANGE.

Transaction Signing Requirements

  • If an admin key is updated, the transaction must be signed by the pre-update admin key and post-update admin key.

  • If the admin key was set during the creation of the topic, the admin key must sign the transaction to update any of the topic's properties

  • If no adminKey was defined during the creation of the topic, you can only extend the expirationTime.

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
Requirements

setTopicId(<topicId>)

TopicId

Required

setAdminKey(<adminKey>)

Key

Optional

setSubmitKey(<submitKey>)

Key

Optional

setExpirationTime(<expirationTime>)

Instant

Optional

setTopicMemo(<memo>)

String

Optional

setAutoRenewAccountId(<accountId>)

AccountId

Optional

setAutoRenewPeriod(<autoRenewPeriod>)

Duration

Optional

clearAdminKey()

Optional

clearSubmitKey()

Optional

clearTopicMemo()

Optional

clearAutoRenewAccountId()

Optional

 //Create a transaction to add a submit key
TopicUpdateTransaction transaction = new TopicUpdateTransaction()
    .setTopicId(topicId)
    .setSubmitKey(submitKey);

//Sign the transaction with the admin key to authorize the update
TopicUpdateTransaction signTx = transaction.freezeWith(client).sign(adminKey);

//Sign the transaction with the client operator, submit to a Hedera network, get the transaction ID
TransactionResponse txResponse = signTx.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 is " +transactionStatus);

//v2.0.0

Get transaction values

Method
Type
Requirements

getTopicId()

TopicId

Required

getAdminKey()

Key

Optional

getSubmitKey()

Key

Optional

getTopicMemo()

String

Optional

getAutoRenewAccountId()

AccountId

Required

getAutoRenewPeriod()

Duration

Required

 //Create a transaction to add a submit key
TopicUpdateTransaction transaction = new TopicUpdateTransaction()
    .setSubmitKey(submitKey);

//Get submit key
transaction.getSubmitKey()

//v2.0.0

Last updated