Prepare your pan by lining an 8×8 inch baking dish with parchment paper, leaving overhang on at least two sides to create handles for easy fudge removal later. Lightly grease the parchment with butter or cooking spray.
Toast the nuts in a dry skillet over medium heat for 5-7 minutes, stirring frequently until fragrant and slightly darkened. This enhances their flavor significantly – don’t skip this step! Allow them to cool completely before chopping.
Create a double boiler by placing a heatproof bowl over a pot with about an inch of simmering water (the bowl shouldn’t touch the water). Add chocolate chips, sweetened condensed milk, and butter to the bowl.
Melt the chocolate mixture gently, stirring occasionally with a wooden spoon or silicone spatula until completely smooth and glossy. This should take about 5 minutes – be patient and don’t rush with high heat.
Remove from heat and stir in the vanilla extract and salt until fully incorporated. Allow the mixture to cool slightly for about 5 minutes – this prevents the marshmallows from melting when added.
Fold in the mix-ins by gently incorporating the marshmallows and toasted nuts (plus any optional ingredients) with a rubber spatula. Work quickly but gently to maintain the distinct textures.
Transfer the mixture to your prepared pan, spreading it evenly into the corners. Tap the pan gently on the counter a few times to release any air bubbles.
Chill the fudge uncovered in the refrigerator for at least 4 hours or ideally overnight until completely set and firm to the touch.
Cut into squares after lifting the fudge out of the pan using the parchment paper handles. Use a large sharp knife, wiping the blade clean between cuts for neat edges.
Store properly in an airtight container with parchment paper between layers. The fudge will keep at room temperature for 1 week, in the refrigerator for 2-3 weeks, or in the freezer for up to 3 months.