Ingredients:

  • 1/2 cup (1 stick / 113 g) Unsalted Butter, Cubed
  • 1/2 cup (50 g) Unsweetened Cocoa Powder, Sifted
  • 3 cups (600 g) Granulated Sugar
  • 1 cup (240 ml) Whole Milk or Heavy Cream
  • 1/4 teaspoon Salt
  • 1 teaspoon Pure Vanilla Extract
  • 1–2 teaspoons Hot Water (Optional, for adjusting consistency)

Instructions:

  1. Prep Ingredients: Sift the cocoa powder to remove lumps. Measure all remaining ingredients accurately.
  2. Combine Base: In a heavy-bottomed saucepan, combine the granulated sugar, whole milk, cubed butter, sifted cocoa powder, and salt.
  3. Melt and Dissolve: Place the saucepan over medium heat. Stir constantly until the butter is completely melted and the sugar is mostly dissolved (about 3–5 minutes). Do not let it boil yet.
  4. Bring to a Boil: Increase the heat slightly and bring the mixture to a full, rolling boil, stirring just enough to prevent sticking.
  5. Cook to Temperature: Stop stirring once the mixture is boiling vigorously. Allow it to boil, undisturbed, until the temperature reaches 235°F (113°C) on a candy thermometer (the soft-ball stage).
  6. Remove from Heat and Cool: Immediately remove the saucepan from the stove. Add the vanilla extract, but DO NOT stir the mixture yet. Pour the hot syrup directly into a large mixing bowl or stand mixer bowl.
  7. Critical Cooling Step: Allow the syrup to cool completely, undisturbed, until it reaches lukewarm (about 110°F or 43°C). This takes approximately 20–30 minutes.
  8. Beat the Icing: Once cooled, begin beating the mixture vigorously using a hand mixer, stand mixer (with the paddle attachment), or strong whisk for 5–10 minutes.
  9. Watch for Transformation: Continue beating until the mixture loses its shiny appearance, becomes opaque, and rapidly thickens into a creamy, glossy icing.
  10. Adjust Consistency: If the icing sets too stiffly, beat in 1–2 teaspoons of hot water or hot milk until the desired silky, spreadable consistency is reached.
  11. Apply Immediately: Use the icing immediately, as it will continue to set as it cools.