In a large saucepan, mix everything, except for the hazelnuts, together. Melt over low heat while frequently stirring. Meanwhile, prepare a 9"x5" loaf pan with a piece of parchment paper.
Once the mixture is melted, add 3/4 cup chopped hazelnuts, if using. Pour the fudge into the prepared pan. Let sit for about 20 minutes and then sprinkle the remaining 1/4 cup chopped hazelnuts over the top of the fudge. Refrigerate for 2 hours or until set. You can cut this when cold but it's easier when at room temperature. Store at room temperature for 1 day and then refrigerate. It'd likely stay well for much longer than 1 day at room temperature but I figure I'd better stay on the safe side and say 1 day due to the hazelnut butter.
Notes
Use these chocolate chips for paleo / vegan / dairy-free.
See the post for directions on how you can make your own hazelnut butter.
To toast hazelnuts, place on a baking tray and bake at 350 °F (165 °C) for about 5-8 minutes or until they smell toasty. Shake the pan halfway through. Let cool for 5 minutes and then place the nuts in the middle of a clean tea towel and rubs off the skin. Discard the skin. You could alternatively toast them in a pan on the stove top.