A block is a network visible component of the software application on an IzoT-enabled device.  A block encapsulates the datapoints and properties required for a task performed by the device application. 

For example, an LED controller device may provide functionality to independently control the color of multiple LED lamps, and also to monitor the power consumption and energy usage of the lamps. The LED controller application may expose this functionality as an independent load control block for controlling each lamp, as well as independent analog sensor blocks for monitoring instantaneous power and energy consumption for each lamp.

Each block is defined by a profile that defines the datapoint and property members that can be implemented by the block. A profile defines mandatory and optional members. A block always implements the mandatory members, and may also implement any of the optional members.