# MQTT Sparkplug B

Protocols · `MQTT-SparkplugB` · verification: source checked

Sparkplug is an Eclipse specification that defines how industrial devices use MQTT: a fixed topic namespace, a Google Protocol Buffers payload, and birth and death messages so subscribers always know whether data is current. Version 3.0.0 was released in 2022.

## Specification

| Property | Value |
|---|---|
| Transports | tcp |
| Architecture | publish subscribe |
| Encoding | protobuf |
| Standard body | Eclipse Foundation (Sparkplug Working Group) |
| Standard ref | Sparkplug 3.0.0 |

## Connected

- Related: [MQTT](https://machineschema.com/protocol/mqtt.md), [MQTT](https://machineschema.com/protocol/mqtt.md)

## Safety

- NCMD and DCMD messages can write to devices. Restrict which clients may publish to command topics on the broker.

## Study notes

- Topic format: namespace/group_id/message_type/edge_node_id/[device_id], where namespace is spBv1.0 for Sparkplug B.
- Message types: NBIRTH, NDEATH, DBIRTH, DDEATH, NDATA, DDATA, NCMD, DCMD and STATE.
- Birth certificates publish every metric a node or device will report. Death certificates tell subscribers the data is stale.

## Sources

1. [Sparkplug 3.0.0 Specification](https://sparkplug.eclipse.org/specification/version/3.0/documents/sparkplug-specification-3.0.0.pdf) (accessed 2026-10-25)
2. [Eclipse Sparkplug](https://sparkplug.eclipse.org/) (accessed 2026-10-25)

---

Source page: https://machineschema.com/protocol/mqtt-sparkplug-b  
JSON: https://machineschema.com/protocol/mqtt-sparkplug-b.json  
License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Cite Machine Schema and the original sources.
