Skip to main content
A transaction that creates a new topic recognized by the Hedera network. The newly generated topic can be referenced by its topicId. The topicId is used to identify a unique topic to submit messages to. You can obtain the new topic ID by requesting the receipt of the transaction. All messages within a topic are sequenced with respect to one another and are provided a unique sequence number.
NoteWith the Consensus Node Release v0.60, you can set an auto renew account ID without the requirement of setting an admin key on the topic.

Private topic

You can also create a private topic where only authorized parties can submit messages to that topic. To create a private topic you would need to set the submitKey property of the transaction. The submitKey value is then shared with the authorized parties and is required to successfully submit messages to the private topic.

Topic Properties

Transaction Signing Requirements:
  • If an Admin Key is specified, the Admin Key must sign the transaction.
  • If no Admin Key is specified, the topic is immutable.
  • If an Auto Renew Account is specified, that account must also sign this transaction.
  • If a Fee Schedule Key is specified, the Fee Schedule Key must sign the transaction.
  • If a Fee Exempt Key List is specified, it contains a list of public keys that are exempt from paying fees when submitting messages to the topic. These keys do not need to sign the transaction.
Transaction Fees
  • Each transaction incurs a standard Hedera network fee based on network resource usage.
  • If a custom fee is set for a topic, users submitting messages must pay this fee in HBAR or HTS tokens.
  • The Fee Schedule Key allows authorized users to update fee structures. If set, it must sign transactions modifying fees.
  • Fee exemptions can be granted using the Fee Exempt Key List.
  • Use the Hedera Fee Estimator to estimate standard network fees.

Methods

Get transaction values

This transaction supports high-volume entity creation (HIP-1313). Setting setHighVolume(true) routes the transaction through dedicated high-volume throttle capacity with variable-rate pricing. Always pair this with setMaxTransactionFee() to cap your costs.