Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 cup raw hazelnuts, toasted, skinned, and coarsely chopped
- 1 1/2 cups whole milk
- 1 1/2 cups heavy cream
- 2/3 cup granulated sugar, divided
- 5 large egg yolks
- 1/4 teaspoon fine sea salt
- 1 vanilla bean, split and scraped, or 2 teaspoons pure vanilla extract
- 1/2 teaspoon hazelnut extract
- 3/4 cup chocolate-hazelnut spread
- 1 tablespoon hazelnut oil or neutral vegetable oil
- 1/8 teaspoon fine sea salt, for the swirl
- 2 tablespoons toasted chopped hazelnuts, optional for serving
Do This
- 1. If using a freezer-bowl ice cream maker, freeze the bowl for at least 24 hours before churning.
- 2. Toast hazelnuts at 350°F for 10 minutes, rub off loose skins, and coarsely chop.
- 3. Heat milk, cream, hazelnuts, half the sugar, salt, and vanilla bean to 170°F; cover and steep 45 minutes, then strain.
- 4. Whisk egg yolks with remaining sugar, temper with warm dairy, then cook the custard to 172°F.
- 5. Strain, stir in vanilla extract if using and hazelnut extract, cool in an ice bath for 20 minutes, then chill for 4 hours.
- 6. Churn for 20 minutes, until the texture looks like soft serve.
- 7. Warm chocolate-hazelnut spread with oil and salt for 30 seconds, layer it through the churned ice cream, and freeze for 3 hours.
Why You’ll Love This Recipe
- Deep hazelnut flavor: Toasted hazelnuts are steeped directly into the dairy for a naturally nutty, aromatic base.
- Generous chocolate ribbons: The chocolate-hazelnut spread is layered, not fully mixed in, so every scoop has thick swirls.
- Ultra-creamy texture: Egg yolks, heavy cream, and proper chilling make the ice cream smooth and scoopable.
- Special but doable: The method feels bakery-level, but each step is approachable for a home kitchen.
Grocery List
- Produce: None required
- Dairy: Whole milk, heavy cream, large eggs
- Pantry: Raw hazelnuts, granulated sugar, fine sea salt, vanilla bean or pure vanilla extract, hazelnut extract, chocolate-hazelnut spread, hazelnut oil or neutral vegetable oil
Full Ingredients
For the Vanilla-Hazelnut Ice Cream Base
- 1 cup raw hazelnuts, about 135 g
- 1 1/2 cups whole milk, 360 ml
- 1 1/2 cups heavy cream, 360 ml
- 2/3 cup granulated sugar, 135 g, divided
- 5 large egg yolks
- 1/4 teaspoon fine sea salt
- 1 vanilla bean, split lengthwise and seeds scraped, or 2 teaspoons pure vanilla extract
- 1/2 teaspoon hazelnut extract
For the Chocolate-Hazelnut Swirl
- 3/4 cup chocolate-hazelnut spread, 225 g
- 1 tablespoon hazelnut oil or neutral vegetable oil
- 1/8 teaspoon fine sea salt
Optional Finishing
- 2 tablespoons toasted chopped hazelnuts, for sprinkling over scoops

Step-by-Step Instructions
Step 1: Toast the hazelnuts
Preheat the oven to 350°F. Spread 1 cup raw hazelnuts on a rimmed baking sheet in a single layer and bake for 10 minutes, until fragrant and lightly golden. Transfer the hot hazelnuts to a clean kitchen towel, fold the towel over them, and rub firmly to remove as much of the papery skins as possible. It is fine if a few skins remain. Let the nuts cool for 5 minutes, then coarsely chop them.
If your ice cream maker uses a removable freezer bowl, make sure the bowl has been frozen solid for at least 24 hours before you plan to churn.
Step 2: Infuse the dairy with hazelnut and vanilla
In a medium saucepan, combine the toasted chopped hazelnuts, 1 1/2 cups whole milk, 1 1/2 cups heavy cream, 1/3 cup of the granulated sugar, 1/4 teaspoon fine sea salt, and the scraped vanilla bean seeds and pod if using a vanilla bean. Warm over medium heat, stirring occasionally, until the mixture reaches 170°F, about 7 minutes. It should be steaming but not boiling.
Remove the saucepan from the heat, cover, and let the hazelnuts steep in the warm dairy for 45 minutes. This step gives the vanilla base a rich, rounded hazelnut flavor without making the finished ice cream gritty.
Step 3: Strain and rewarm the infused dairy
Set a fine-mesh strainer over a clean bowl or large measuring cup. Pour the steeped dairy through the strainer, pressing gently on the hazelnuts with a spatula to extract as much flavored liquid as possible. Discard the spent hazelnuts and vanilla bean pod. Return the strained dairy mixture to the saucepan and warm it over medium-low heat until it reaches 160°F, about 4 minutes.
If you are using vanilla extract instead of a vanilla bean, do not add it yet. Vanilla extract tastes best when stirred in after the custard has cooked.
Step 4: Temper the egg yolks
In a medium heatproof bowl, whisk 5 large egg yolks with the remaining 1/3 cup granulated sugar for 1 minute, until the mixture looks slightly lighter and smoother. While whisking constantly, slowly drizzle about 1 cup of the warm hazelnut dairy into the yolks. This gradual warming is called tempering, and it helps prevent scrambled eggs in your custard.
Pour the tempered yolk mixture back into the saucepan with the remaining warm dairy, whisking as you pour.
Step 5: Cook the custard
Cook the custard over medium-low heat, stirring constantly with a heatproof spatula and scraping the bottom and corners of the pan. Cook until the custard reaches 172°F, about 8 minutes. The mixture should lightly coat the back of a spoon, and a line drawn through it with your finger should hold its shape.
Do not let the custard boil. If you see bubbling around the edges or the temperature climbs too quickly, lower the heat immediately and keep stirring.
Step 6: Strain, flavor, and chill the base
Pour the cooked custard through a clean fine-mesh strainer into a bowl. Stir in 1/2 teaspoon hazelnut extract. If using vanilla extract instead of a vanilla bean, stir in 2 teaspoons pure vanilla extract now.
Place the bowl of custard inside a larger bowl filled with ice water. Stir occasionally for 20 minutes, until the custard is cool to the touch. Cover the surface directly with parchment paper or plastic wrap, then refrigerate for at least 4 hours, or until the base is thoroughly chilled to 40°F or colder. For the best texture and flavor, chilling overnight is excellent.
Step 7: Churn the ice cream
Pour the chilled custard into your ice cream maker and churn according to the manufacturer’s instructions. In most home machines, this takes about 20 minutes. The ice cream is ready for layering when it looks thick, creamy, and similar to soft serve.
While the ice cream churns, place a 9-by-5-inch loaf pan or another 1 1/2-quart freezer-safe container in the freezer so it is cold when you layer the ice cream.
Step 8: Layer in the chocolate-hazelnut swirl and freeze
Place 3/4 cup chocolate-hazelnut spread in a microwave-safe bowl. Stir in 1 tablespoon hazelnut oil or neutral vegetable oil and 1/8 teaspoon fine sea salt. Microwave for 20 seconds, stir well, then microwave for 10 seconds more. The spread should be glossy, loose, and pourable, about 90°F, but not hot.
Spoon about one-third of the churned ice cream into the chilled loaf pan. Drizzle one-third of the chocolate-hazelnut spread over the top in thick ribbons. Repeat with two more layers of ice cream and chocolate-hazelnut spread. For defined ribbons, do not overmix. If you want a gentle marbled look, drag a butter knife through the layers in 2 or 3 wide figure-eight motions.
Press parchment paper directly onto the surface of the ice cream, cover tightly, and freeze at 0°F for at least 3 hours, until firm enough to scoop. Let the ice cream sit at room temperature for 5 minutes before serving. Sprinkle with 2 tablespoons toasted chopped hazelnuts if desired.
Pro Tips
- Chill thoroughly before churning: A very cold custard base churns faster and forms smaller ice crystals, which means creamier ice cream.
- Keep the swirl warm but not hot: Chocolate-hazelnut spread that is too hot can melt the churned ice cream. Aim for glossy and pourable, not steaming.
- Layer instead of stirring: Folding the spread into the churned ice cream can muddy the base. Layering creates dramatic ribbons in every scoop.
- Use a thermometer: Cooking the custard to 172°F gives you a silky texture without curdling the eggs.
- Use good chocolate-hazelnut spread: Because the swirl is a major flavor, choose one you enjoy eating by the spoonful.
Variations
- Mocha hazelnut swirl: Add 1 tablespoon instant espresso powder to the warm dairy after straining, then proceed with the custard.
- Dark chocolate crunch: Layer 1/3 cup finely chopped dark chocolate or chocolate-covered hazelnuts between the ice cream and swirl.
- Salted hazelnut praline: Sprinkle 1/4 cup crushed hazelnut brittle into the layers and finish each serving with a tiny pinch of flaky sea salt.
Storage & Make-Ahead
Store the ice cream in an airtight freezer-safe container at 0°F for up to 2 weeks for the best texture and flavor. Press parchment paper directly onto the surface before sealing to help prevent ice crystals. The custard base can be made up to 2 days ahead and kept refrigerated at 40°F or colder before churning. The chocolate-hazelnut swirl mixture can be stirred together up to 1 week ahead; refrigerate it in a covered container and warm it gently until pourable before layering. If the ice cream becomes very firm after several days, let it soften at room temperature for 5 to 8 minutes before scooping.
Nutrition (per serving)
Calories: 470 kcal | Carbs: 38g | Protein: 7g | Fat: 33g | Saturated Fat: 16g | Fiber: 2g | Sugar: 36g | Sodium: 55mg | Cholesterol: 180mg
