There is something deeply satisfying about a warm doughnut hole. Not the kind from a box mix or a drive-through bag, but one you made yourself — round and golden, slightly crisp on the outside, cloudlike in the middle, and tumbled generously in cinnamon sugar while still warm enough to let every granule cling. Pair a bowl of those with a small pot of glossy dark chocolate sauce for dipping, and you have one of the most quietly joyful things you can put on a table.
What sets this recipe apart is the dough. It uses a classic enriched yeast dough — eggs, butter, and a little warm milk — which gives the doughnut holes a tender, slightly chewy crumb that holds up beautifully to frying without becoming greasy or dense. A short rest after shaping (just 30 minutes) is all the second rise you need. The chocolate dipping sauce is made with real dark chocolate and a splash of heavy cream, finished with a pinch of flaky salt, so it is rich and silky without being cloying. Everything balances.
This recipe sits comfortably in the medium difficulty range. If you have made yeasted bread before, this will feel familiar and fun. If you have not, this is a wonderful place to start — the dough is forgiving, the shaping is simple (just roll into balls), and the frying goes quickly. It is ideal for a lazy weekend morning, a brunch spread, or anytime you want to make something genuinely impressive without a full day in the kitchen.
10
servings
Ingredients
- 240 mlwhole milk, warmed to 110°F (43°C) (about 1 cup)
- 7 ginstant yeast (1 standard packet, or 2.25 tsp)
- 50 ggranulated sugar (about 1/4 cup), divided
- 360 gall-purpose flour (about 3 cups, spooned and leveled), plus more for dusting
- 1 tspfine sea salt
- 2 largeeggs, at room temperature
- 57 gunsalted butter (4 tbsp / half a stick), softened and cut into cubes
- 1 tsppure vanilla extract
- 1 literneutral oil for frying (vegetable, canola, or sunflower) (about 4 cups)
- 150 ggranulated sugar for rolling (about 3/4 cup)
- 2 tspground cinnamon for rolling
- 170 gdark chocolate (60 to 70% cacao), finely chopped (about 6 oz)
- 180 mlheavy cream (about 3/4 cup)
- 1 tbspunsalted butter, for the chocolate sauce
- —Pinch of flaky sea salt, for the chocolate sauce
Ingredient Substitutions
Instructions
🔧 Equipment
- In a small bowl or liquid measuring cup, combine the warm milk (110°F/43°C), instant yeast, and 1 tsp of the granulated sugar. Stir briefly and let sit for 5 minutes. The mixture should smell yeasty and look slightly frothy. If using active dry yeast, wait until it is visibly foamy (8 to 10 minutes) before proceeding.
- In the bowl of a stand mixer fitted with the dough hook, whisk together the flour, remaining sugar, and salt. Add the eggs, vanilla, and the milk-yeast mixture. Mix on low speed for 2 minutes until a shaggy dough forms, then increase to medium-low and knead for 3 minutes.
- With the mixer running on medium-low, add the softened butter a few cubes at a time, waiting for each addition to be fully incorporated before adding the next. This will take about 3 to 4 minutes. Once all the butter is in, increase to medium speed and knead for 5 to 6 minutes until the dough is smooth, elastic, and slightly tacky but not sticky. It should pull away cleanly from the sides of the bowl.
- Shape the dough into a ball, place it in a lightly oiled bowl, and cover tightly with plastic wrap or a damp towel. Let it rise at room temperature until doubled in size, about 1 hour to 1 hour 15 minutes. If your kitchen is cold, place the bowl in an unheated oven with just the oven light on.
- Once risen, turn the dough onto a lightly floured surface and gently deflate it. Divide the dough into 30 roughly equal pieces (each about 20g). Roll each piece between your palms into a smooth ball. Place them on a parchment-lined baking sheet, cover loosely with a clean towel, and let rest for 25 to 30 minutes until slightly puffed.
- While the doughnut holes rest, make the chocolate sauce: place the chopped chocolate and 1 tbsp butter in a heatproof bowl. In a small saucepan over medium heat, bring the heavy cream just to a simmer (small bubbles at the edges, not a full boil). Pour the hot cream over the chocolate, let it sit undisturbed for 2 minutes, then stir gently from the center outward until completely smooth and glossy. Add a pinch of flaky salt. Keep warm over a bowl of hot water or in a small saucepan on the lowest heat setting.
- Pour the frying oil into a deep, heavy-bottomed pot (a Dutch oven works perfectly) to a depth of at least 3 inches (7.5 cm). Clip a candy or deep-fry thermometer to the side. Heat the oil over medium heat to 350°F (175°C). Adjust the heat throughout frying to maintain this temperature — too hot and the outsides burn before the centers cook through; too cool and they absorb excess oil.
- In a wide, shallow bowl, whisk together the 150g granulated sugar and 2 tsp cinnamon. Set it near your frying station.
- Fry the doughnut holes in batches of 5 to 6, taking care not to crowd the pot. Cook for 60 to 90 seconds per side, turning once with a spider or slotted spoon, until deep golden brown all over. The total fry time per batch is about 2 to 3 minutes. Remove with a slotted spoon and drain briefly on a paper towel for 20 seconds, then immediately toss in the cinnamon sugar while still hot so the sugar adheres. Repeat with remaining batches, allowing the oil to return to 350°F between each batch.
- Serve the doughnut holes warm in a bowl or basket alongside the warm chocolate dipping sauce in a small bowl or ramekin.
- Prepare and rise the dough exactly as described in Steps 1 through 5 of the deep-fry method. Shape into 30 balls and let rest 25 to 30 minutes covered.
- Preheat your air fryer to 370°F (188°C) for 3 minutes. Lightly spray the air fryer basket with non-stick cooking spray.
- Working in batches of 8 to 10 (do not overcrowd — leave about half an inch of space between each ball), place the doughnut holes in the basket. Lightly spray the tops of the dough balls with cooking spray. Air fry for 7 to 8 minutes, flipping once at the 4-minute mark, until deep golden brown. Internal temperature should reach 190°F (88°C).
- While the first batch cooks, melt 3 tbsp unsalted butter in a small saucepan or microwave. As soon as each batch comes out of the air fryer, brush each doughnut hole generously with melted butter on all sides, then immediately roll in the cinnamon sugar. The butter replaces the residual frying oil that normally helps the sugar adhere in the deep-fry method.
- Prepare the chocolate dipping sauce as described in Step 6 of the deep-fry method. Serve warm alongside the doughnut holes.
- Prepare and rise the dough exactly as described in Steps 1 through 5 of the deep-fry method. Shape into 30 balls and place them on a parchment-lined baking sheet with at least 1 inch of space between each. Cover loosely and let rest 25 to 30 minutes.
- Preheat your oven to 375°F (190°C). Brush each dough ball lightly with a little whole milk or a beaten egg mixed with 1 tsp water. This helps them brown nicely in the oven.
- Bake for 12 to 14 minutes until golden brown on top and the bottoms sound hollow when tapped. Do not overbake — they should remain soft inside. They will look slightly more like small rolls than fried doughnuts, but that is expected.
- While the doughnut holes are still hot from the oven, melt 4 tbsp unsalted butter. Working quickly, brush each one thoroughly with melted butter on all sides, then roll immediately in the cinnamon sugar mixture. The butter coating is essential here — it creates the golden, sugary exterior that mimics the frying process.
- Make the chocolate dipping sauce as described in Step 6 of the deep-fry method. Serve warm alongside the doughnut holes.
Nutrition Per Serving
Per 1 serving (makes about 30 doughnut holes (3 per serving) plus 1 cup chocolate dipping sauce)
Why This Recipe Works
The enriched yeast dough is the heart of this recipe, and the enrichments (eggs, butter, and milk) each do specific work. Eggs add structure and richness through their proteins and fat, while also giving the finished doughnut a tender, slightly chewy crumb. Butter, added slowly after the initial gluten network forms, coats the gluten strands and makes them more extensible and tender rather than tough. This technique, borrowed from brioche-making, is why we add the butter in pieces rather than all at once. Adding it too early would coat the flour before gluten develops, resulting in a greasy, underdeveloped dough.
Frying at exactly 350°F (175°C) is not arbitrary. Below that temperature, the doughnuts absorb more oil before the exterior sets, resulting in a greasy texture. Above 365°F (185°C), the outside overcooks and darkens before the center reaches the 190°F (88°C) needed for the interior to be fully cooked and set. A thermometer is genuinely important here, not optional. The starch in the flour gelatinizes and the proteins set during those crucial 2 to 3 minutes in properly heated oil, giving you that light, airy crumb.
The chocolate sauce works because of the ratio of chocolate to cream (roughly 1:1 by weight), which produces a ganache that is fluid enough for dipping when warm but sets to a soft truffle-like consistency if cooled. Dark chocolate in the 60 to 70% range has enough cocoa butter to stay smooth and glossy without seizing. Adding the cream hot (just at a simmer, not a rolling boil) melts the chocolate gently without scorching it or breaking the emulsion. If your sauce ever looks grainy or split, add 1 to 2 tbsp warm cream and stir slowly from the center until it comes back together.
Baker’s Tips
- Use a kitchen thermometer for both the milk (110°F to activate yeast without killing it) and the frying oil (350°F for perfect browning). These are the two moments where temperature matters most.
- When adding the butter to the dough, it should be truly soft — it should squish easily between your fingers. Cold butter will not incorporate smoothly and can cause the dough to look lumpy and broken. It will eventually come together, but soft butter makes it much easier.
- Roll the doughnut holes in cinnamon sugar while they are still hot and just slightly glistening from the oil. If you let them cool first, the sugar will not adhere and will fall off.
- Chop the chocolate for the dipping sauce finely and evenly. Large uneven chunks can melt unevenly and create hot spots. A serrated knife makes quick work of a chocolate bar.
- Keep your shaped dough balls covered with a clean kitchen towel as they wait for their second rise. Any skin that forms on the surface from air exposure can create uneven texture when fried.
- For the most consistent sizing, use a kitchen scale to portion the dough. 20g per piece gives you a nicely snackable doughnut hole. If you want larger ones, aim for 25 to 28g and add 30 to 45 seconds to the fry time.
Variations
- Cardamom and orange: Replace the cinnamon in the rolling sugar with 1 tsp ground cardamom, and add 1 tsp finely grated orange zest to the dough with the vanilla.
- Nutella-filled: Before the second rise, flatten each dough ball, place a small frozen Nutella ball (freeze teaspoons of Nutella on a tray 1 hour ahead) in the center, and seal the dough tightly around it before rolling into a ball. Fry as directed.
- Maple glaze instead of cinnamon sugar: Skip the rolling step and instead whisk 120g powdered sugar with 3 tbsp pure maple syrup and 1 to 2 tsp milk until smooth. Dip the warm doughnut holes and let them set on a rack for 5 minutes.
- Spiced hot chocolate dip: Add 1/4 tsp ground cinnamon, a pinch of cayenne, and 1/4 tsp instant espresso powder to the chocolate sauce for a Mexican hot chocolate-inspired dip.
Troubleshooting & FAQ
My dough is sticky and won’t come together properly after adding the butter. What went wrong?
My doughnut holes are browning on the outside but still doughy in the middle. What happened?
The yeast did not foam and the dough is not rising. What should I do?
My chocolate sauce is grainy and looks split. Can I fix it?
The cinnamon sugar is falling off my doughnut holes instead of sticking. How do I fix this?
Storage & Make-Ahead
- Storage: Doughnut holes are best eaten within 2 hours of frying while the sugar is crisp and the inside is soft. If you must store them, keep in an airtight container at room temperature for up to 1 day and reheat in an air fryer at 350°F for 2 to 3 minutes. The chocolate sauce keeps refrigerated in an airtight jar for up to 1 week; reheat gently in a small saucepan over low heat or in the microwave in 20-second bursts, stirring between each.
- Make-Ahead: The dough can be made through the first rise, then punched down, covered tightly, and refrigerated overnight (up to 16 hours). The next morning, take it out, shape into balls, and let them come to room temperature and complete their second rise (about 45 to 60 minutes at room temperature) before frying. The chocolate sauce can be made up to 5 days ahead and stored refrigerated.






