Preheat oven to 350 degrees. Place nuts in a single layer on a shallow baking pan. Toast until the skins are almost black and the meat is dark brown, about 15 minutes. Stir the nuts halfway through baking so ensure an even color.
Since the skin is bitter, you’ll want to discard them. Wrap the cooled hazelnuts in a clean kitchen towel or paper towel, and rub until most of the skins have come off. Don’t fret if you can’t get off all the skins.
Process nuts in a food processor, scraping down the sides of the bowl occasionally, until they have liquefied, about 5 minutes. At first, you will get coarsely chopped nuts, and then it will turn into a fine meal. After a little while, the nuts will form a ball around the blade, and it will seem like you only have a solid mass. Keep processing. The heat and friction will extract the natural oils, and you will get hazelnut butter!
When the nuts are liquidized, add in the sugar, cocoa and vanilla. Slowly drizzle in enough oil to make a spreadable consistency. Since the mixture is warm, it will be more liquidy now than at room temperature.