Submit a message

A transaction that submits a topic message to the Hedera network. To access the messages submitted to a topic ID, subscribe to the topic via a mirror node. The mirror node will publish the ordered messages to subscribers. Once the transaction is successfully executed, the receipt of the transaction will include the topic's updated sequence number and topic running hash.

Transaction Signing Requirements

  • Anyone can submit a message to a public topic

  • The submitKey is required to sign the transaction for a private topic

Transaction Fees

  • Please see the transaction and query fees table for base transaction fee

  • Please use the Hedera fee estimator to estimate your transaction fee cost

🚨 NOTE: Max size of an HCS message: 1024 bytes (1 kb).

Methods

MethodTypeDescriptionRequirement

setTopicId(<topicId>)

TopicId

The topic ID to submit the message to

Required

setMessage(<message>)

String

The message in a String format

Optional

setMessage(<message>)

byte [ ]

The message in a byte array format

Optional

setMessage(<message>)

ByteString

The message in a ByteString format

Optional

//Create the transaction
TopicMessageSubmitTransaction transaction = new TopicMessageSubmitTransaction()
    .setTopicId(newTopicId)
    .setMessage("hello, HCS! ");

//Sign with the client operator key and submit transaction to a Hedera network, get transaction ID
TransactionResponse txResponse = transaction.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

MethodTypeDescription

getTopicId()

TopicId

The topic ID to submit the message to

getMessage()

ByteString

The message being submitted

getAllTransactionHash()

byte [ ]

The hash for each transaction

//Create the transaction
TopicMessageSubmitTransaction transaction = new TopicMessageSubmitTransaction()
    .setTopicId(newTopicId)
    .setMessage("hello, HCS! ");

//Get the transaction message
ByteString getMessage = transaction.getMessage();
//v2.0.0

Last updated