Toast the hazelnuts. Preheat your oven to 350°F (175°C). Spread the hazelnuts on a baking sheet in a single layer and roast for 10–12 minutes, shaking the pan once. They should smell nutty and look slightly darkened.
Remove the skins. Transfer the hot nuts to a clean kitchen towel.
Rub vigorously to remove as much of the papery skins as possible. A few bits left on are fine, but removing most reduces bitterness and improves texture.
Blend into nut butter. Add the warm, peeled hazelnuts to a food processor or high-powered blender. Process until they break down into a smooth, glossy hazelnut butter, scraping the sides as needed.
This can take 3–6 minutes depending on your machine—be patient.
Add cocoa, sugar, salt, and vanilla. Sprinkle in the cocoa powder, powdered sugar, salt, and vanilla. Pulse a few times to combine before running the processor. The mixture will thicken at first.
Stream in oil. With the machine running, drizzle in 2 tablespoons of oil.
Blend until the mixture loosens into a spreadable consistency. Add a little more oil if you prefer it silkier.
Optional chocolate boost. If using melted dark chocolate, pour it in while blending. This adds shine and a more confectionary taste.
Taste and adjust. Check sweetness, chocolate intensity, and salt.
Add more powdered sugar for sweeter, a pinch of salt to brighten, or a teaspoon more cocoa for bolder chocolate.
Cool and thicken. Transfer to a clean jar. It will thicken slightly as it cools. If it seems too loose, chill for 30–60 minutes.
Serve. Spread on toast, drizzle over pancakes, sandwich between cookies, or spoon into warm milk for instant hot cocoa vibes.