Trust your data. Do it at scale.

Hedera is the only layer 1 public network to offer developers a tool to create decentralized logs of immutable and timestamped events for mission-critical web2 and permissionless web3 applications — track products in a supply chain, log sensitive user access information, build DAO tooling, create an asset bridge, and more.

Enabled by low, fixed fees, scalable transactions, and native consensus timestamps, the Hedera Consensus Service (HCS) acts as a ‘decentralized Kafka’, delivering multi-party trust for streaming data at web scale.

Scalable, Fixed Fees, & Real-Time

Verifiable data with consensus timestamps are streamed to Hedera at 10,000 TPS with immediate settlement, for a mere $0.0001 USD per transaction.

Optionally Encrypted Data

Optionally encrypt the contents of sensitive messages for additional privacy, while still being able to publicly verify a message’s authenticity using cryptographic proofs and consensus timestamps.

Multi-Party Publish & Subscribe

Data is logged on Hedera using a data model consisting of topics with messages published to them. Anyone can subscribe to a topic and, using configurable permissions, publish to a topic, creating multi-party trust and participation.
Hedera Use Case Pages De Fi Desktop Stats Banner Hedera Use Case Pages De Fi Mobile Stats Banner

40M+

EVENTS LOGGED
in the last 24 hours

$0.0001

USD FIXED FEE
per every message sent

3-7s

CONSENSUS FINALITY
for every transaction

Facilitate on-chain governance utilizing the Hedera public network. The open source DAO voting application built by Calaxy uses Hedera Consensus Service to better encourage and facilitate governance. Get to know the design and use cases supported, like key management & token weighted voting.

The Hedera Consensus Service

Consensus Info Graphic 1

CREATE TOPIC

A topic is created to manage the stream of messages for one application, such as a market where people bid on products.
Consensus Info Graphic 2

SEND

When an event happens - like a bid - it can be sent as an encrypted message to the topic.
Consensus Info Graphic 3

PROCESS

All of the messages are put into consensus order by the Hedera main net. A mirror net can then send the messages for a particular topic to the application for processing.
Consensus Info Graphic 4

AUDIT

When an audit needs to be conducted, previous messages can be checked, along with a state proof that ensures they have not been falsified.

TOPIC MANAGEMENT

Topics make it simple to organize transactions, so each application only receives the messages it needs.

CONSENSUS ORDER

Messages are put into consensus order and given a timestamp by the Hedera network, with cryptographic proofs, so they are as trustworthy as the full Hedera network.

AUDIT LOG

Messages are cryptographically tied together with a running hash to provide an auditable, tamper-proof log of history.

SCALABLE TRANSACTIONS

Message processing and storage are kept outside the Hedera network. This allows higher speed and scalability.

LOW FEES

The high speed and good scaling ensure low, micropayment fees on par with Hedera Cryptocurrency.

HISTORICAL DATA

The Hedera Consensus Service ensures speed and security are kept on the ledger while storage is kept off-ledger. Choose to keep everything, nothing, or anything in between.

Create a topic, send a message

Use the Hedera Consensus Service API to start building applications which take advantage of the high-throughput, fair ordering, and fast finality of Hedera

  • CREATE TOPIC
  • SUBMIT MESSAGE
  • SUBSCRIBE TO TOPIC
const { TopicCreateTransaction } = require("@hashgraph/sdk");

// Create a new public topic
let txResponse = await new TopicCreateTransaction().execute(client);

// Grab the topic ID
let receipt = await txResponse.getReceipt(client);
let topicId = receipt.topicId;

console.log(`Your topic ID is: ${topicId}`);
// Console: Your topic ID is: 0.0.114920
const { TopicMessageSubmitTransaction } = require("@hashgraph/sdk");

// Submit a message
let sendResponse = await new TopicMessageSubmitTransaction({
   topicId: topicId,
   message: "Hello, HCS!"
}).execute(client);
const { TopicMessageQuery } = require("@hashgraph/sdk");

// Subscribe to the topic
new TopicMessageQuery()
   .setTopicId(topicId)
   .subscribe(client, (message) => {
     let messageAsString = Buffer.from(message.contents, "utf8").toString();
     console.log(
       `Sequence number: ${message.sequenceNumber} - ${messageAsString}`
     )
   })