Chocolate-hazelnut gelato hits that sweet spot between rich and restrained: deep cocoa, roasted hazelnut, and a texture that stays dense instead of turning airy and fluffy. The first spoonful should taste like a scoop from a good gelateria — smooth, cold, and just soft enough to melt across your tongue without feeling heavy.
The trick here is building a true custard base, then keeping the heat gentle once the yolks go in. Hazelnut paste gives the cleanest, most pronounced nut flavor, but Nutella works well if that’s what you have on hand; the sugar and cocoa are balanced to keep it from tasting cloying. A little cornstarch helps the base thicken and freeze with that tight, silky gelato body instead of an icy one.
Below, I’ve included the small details that matter: when to stop cooking the custard, why the hazelnuts go in at the end, and how to handle substitutions without losing that gianduia-style richness.
The custard thickened up exactly when you said it would, and the gelato froze dense and scoopable instead of icy. The toasted hazelnuts at the end gave it the best crunch against all that dark chocolate.
Love the dense gianduia-style texture? Save this Chocolate-Hazelnut Gelato for the next time you want a silky scoop with real roasted hazelnut flavor.
The Custard Has to Cook Just Long Enough to Coat the Spoon
The biggest mistake with gelato is pulling the base too early. If the custard stays thin, it won’t freeze with that dense, scoopable body that makes gelato different from ice cream. Cook it until it lightly coats the back of a spoon and leaves a clean trail when you drag a finger through it, but don’t let it boil hard or the yolks can scramble.
The cornstarch gives you a little protection here. It helps the custard thicken without relying entirely on egg yolks, which keeps the texture smooth and cuts down on the risk of a grainy base. Stir constantly along the bottom and corners of the pan, because that’s where the mixture will catch first.
What the Hazelnut Paste Is Doing That Cocoa Alone Can’t

Hazelnut paste or Nutella — This is the flavor anchor. Hazelnut paste gives you the cleanest, most direct nut taste, while Nutella adds sugar and a softer, sweeter chocolate note. If you use Nutella, keep the cocoa in the recipe as written; it stops the gelato from tasting one-dimensional and helps it read as gianduia, not just chocolate spread in frozen form.
Dutch process cocoa powder — Use Dutch process here if you can. It has a deeper, smoother chocolate flavor and blends more easily into the milk. Natural cocoa works in a pinch, but the finished gelato will taste a little sharper and less rounded.
Egg yolks — These bring body and a custardy richness that plain milk can’t replicate. Whisk them with the sugar until pale before adding the hot liquid so they temper evenly and don’t cook into streaks.
Toasted hazelnuts — Fold them in after churning, not before. If they go into the base too early, they soften and lose the toasted edge that makes each bite more interesting.
Building the Base Without Scrambling the Yolks
Warming the Chocolate Milk
Start by heating the milk, cream, and cocoa until the mixture is steaming and the cocoa has dissolved fully. Whisk in the hazelnut paste while the liquid is hot so it melts in smoothly instead of leaving oily specks behind. If you see little fat droplets on top, the base needs more whisking before you move on.
Tempering the Custard
Whisk the yolks, sugar, and cornstarch until the mixture looks lighter in color and a little thickened. Then add the hot chocolate milk in a slow stream while whisking constantly. If you dump it in too fast, the eggs can curdle at the edges before they have a chance to warm gradually.
Thickening to Gelato Consistency
Return everything to the saucepan and cook over medium heat, stirring without stopping, until the custard thickens enough to coat a spoon. This usually takes about five minutes, but the visual cue matters more than the clock. Pull it off the heat as soon as it thickens; a few extra seconds can take it from silky to overcooked.
Cooling, Churning, and Folding in the Crunch
Stir in the vanilla and salt, then cool the base completely over an ice bath before chilling it in the refrigerator. A cold base churns faster and makes smaller ice crystals, which is what gives gelato that tight, dense finish. Churn on the lowest speed your machine allows, then fold in the hazelnuts at the end so they stay crisp and scattered through the finished gelato.
How to Adapt This Chocolate-Hazelnut Gelato Without Losing the Good Part
Nutella Version
Use Nutella instead of hazelnut paste if that’s what you have. It makes the gelato sweeter and a little softer in flavor, so the Dutch process cocoa matters even more here. The result is closer to a classic gianduia-style scoop with a familiar chocolate spread note.
Dairy-Free Direction
Swap in full-fat oat milk and coconut cream, then expect a slightly softer freeze and a faint coconut note. The texture won’t be as classic or as dense as the original, but the custard method still gives you a smooth scoop instead of an icy one.
No Ice Cream Maker
Freeze the chilled base in a shallow pan and stir it well every 30 minutes for the first 3 hours. You’ll lose some of the dense gelato texture, but you’ll still get a much creamier result than freezing it untouched.
Storage and Reheating
- Refrigerator: The base can be held for up to 2 days before churning, tightly covered. After churned, gelato should be stored in the freezer, not the fridge.
- Freezer: It freezes well for about 2 weeks, though the texture is best in the first few days. Press parchment or plastic wrap directly onto the surface to help slow ice crystals.
- Reheating: Let it sit at room temperature for 5 to 10 minutes before scooping. If it’s rock hard, it was frozen too long or churned too warm, so don’t try to microwave it; that ruins the texture fast.
Questions I Get Asked About This Recipe

Chocolate-Hazelnut Gelato
Ingredients
Equipment
Method
- In a saucepan, heat the whole milk and heavy cream with Dutch process cocoa powder just until steaming, then whisk in hazelnut paste until smooth and glossy.
- In a bowl, whisk egg yolks, granulated sugar, and cornstarch until pale and slightly thickened, about 1 minute.
- Slowly pour the hot chocolate milk into the yolk mixture while whisking constantly to prevent scrambling.
- Return everything to the saucepan and cook over medium heat, stirring constantly, until thickened, about 5 minutes.
- Stir in vanilla extract and salt, then cool completely over an ice bath until the mixture is cold to the touch.
- Refrigerate the custard at least 4 hours until fully chilled.
- Churn in an ice cream maker on the lowest speed until thick and dense, then immediately fold in toasted hazelnuts.
- Serve immediately for a soft-set gelato, or freeze 1-2 hours for a firmer scoop.