A classic dim sum food, steamed custard buns are loved for their fluffy texture and rich flavour. Follow my recipe to make them to a restaurant standard.

Jump to:
A dim sum classic
If you’re a regular dim sum restaurant goer, you probably have tasted steamed custard buns (Nai Wong Bao, 奶黄包), a classic Cantonese treat made of leavened dough and an egg-milk based sweet filling. I absolutely adore its fluffy, cotton-like texture and creamy, fragrant taste.
Have you ever considered making them at home? You should definitely give it a try! My tried and tested recipe will walk you through the process with many tips and tricks to help you succeed. Here is the summary of three simple steps:
- Follow a simple four-ingredient formula to prepare a rich, smooth filling.
- Use the “yeast + baking powder” method to make a single-proof dough.
- Assemble the buns then steam for 8 minutes.
Ingredients for the filling
It is said that every dim sum restaurant has its own recipe for the filling of custard buns. The ingredients required can be quite different. I’ve done extensive research and kitchen experiments to figure out the recipe I feel most happy to share.
Finally, I’ve settled for a four-ingredient formula. It’s simple, easy to make and tastes absolutely delicious. I particularly love the semi runny texture which takes the filling to the next level (It’s much softer than the custard filling used in Snow Skin Mooncakes).
For making about 8 buns, you’ll need:
- 3 yolks of hard-boiled eggs, or cooked salted duck egg yolks
- 50g unsalted butter, softened
- 30g full-fat milk powder
- 30g sugar, or 40g if using salted egg yolks
Try salted egg yolk
Both regular egg yolks and salted duck egg yolks (咸蛋黄) work for this recipe. But if available, I highly recommend you try the latter. The combination of saltiness and sweetness is a real winner with Lotus Paste and Salted Yolk Mooncake being a classic example.
Substitute for milk powder
I usually use full-fat milk powder for this recipe. However, you may replace it with custard powder (Ji Shi Fen, 吉士粉) if it’s more accessible. In this case, make sure you use traditional style custard powder which contains egg and milk. The more popular type, such as Bird’s custard powder, isn’t a great choice as it’s made of cornstarch and flavouring, etc. But it would be OK if you’d like your buns dairy-free.
Prepare the filling
No matter which type you use, the yolks need to be cooked before mixing with other ingredients. While they’re still warm, use a spoon to mash them into a fine powdery texture. If you’re a perfectionist and would like to avoid any lumps, press the yolks through a fine sieve.
Add softened butter, milk powder and sugar. Take your time to mix everything very well to create a smooth paste. Since none of the ingredients in this filling are raw, I suggest you add the sugar gradually. This way you can taste and adjust to suit your own sweetness preference.
Make the dough
The dough for custard buns is Chinese-style leavened dough that creates a soft and fluffy texture after steaming. I’ve shared a few different formulas, such as yeast only dough for Sheng Jian Bao, yeast plus baking powder version for Mantou, etc. To imitate the restaurant version, I think the formula I’ve used for Char Siu Bao and Red Bean Buns works the best for today’s recipe.
To make 8 buns, you’ll need the following:
- 175g low-gluten flour, or all-purpose flour
- 1 teaspoon instant dry yeast
- 1 teaspoon baking powder
- 1 tablespoon sugar
- 1 tablespoon neutral cooking oil
- 90g lukewarm water, adjust if necessary
Flour choices
Since steamed custard buns are a sweet treat, the best choice would be low-gluten flour which creates a soft, cotton-like texture, such as cake flour or special bao/bun flour. Buns made with bao/bun flour also look much whiter, just like what you’d get in a dim sum restaurant.
That said, please feel free to use all-purpose flour if low-gluten flour is difficult to source. In this case, slightly increase the water volume (e.g. from 90g to 95g) as flour with higher gluten content has a higher water absorption capacity.
- If making the dough manually, mix and combine all the ingredients into a rough-looking dough. Leave it to rest for 10 minutes then knead again until smooth.
- If using a stand mixer, add all the ingredients into the bowl. Run the machine at a low speed for about 8 minutes.
The finished dough should be on the soft side but not at all sticky. Since it contains baking powder, you can move on to the next step of bun assembling straightaway without proofing (unlike traditional yeast-only dough).
Roll the wrappers
Use your hands to shape the dough into a rope, then cut it into 8 equal parts. With your palm, press one piece into a disc. Flatten it into a wrapper with a rolling pin (about 9cm in diameter). Ideally, it should be slightly thinner on the edge and thicker in the middle (Please refer to the method shown in the video).
🛎 Tips:
- To achieve a super smooth look after steaming, add one more step: knead each dough piece for about 10 seconds before you roll it into a wrapper.
- Dust the work surface and the dough with a little flour to prevent sticking. Also, make sure to cover unused dough or wrappers to avoid drying out.
Assemble the buns
Compared to Baozi (savoury stuffed buns), it’s much easier to assemble custard buns. Put a spoonful of the filling in the middle of a wrapper and seal it into a ball. No fancy pleating is required as the sealed part is facing down while steaming.
Follow the simple four-corner method shown in the image above (also in the video) or any other way you feel comfortable with. No matter which technique you use, it’s crucial that each bun is completely sealed. Otherwise, the filling will leak out when softened during steaming.
Rest and Steam
With the sealed part facing downwards, place all the buns into a steamer basket. To prevent sticking, I used cupcake paper moulds which are the perfect size for these buns. Alternatively, line the basket with parchment paper or brush a thin layer of oil if using a metal/plastic steamer.
Leave the buns to rest in a warm place to proof for about 30 minutes. During this process, they’ll grow a little bigger (but won’t double) and become plumper (the surface of the wrappers looks tighter and smoother).
Now, let’s cook! Bring water to a full boil in a wok/pot. Then place in the steamer basket. Cover with a lid. Leave to steam over medium-high heat for 8 minutes. If making a bigger batch, you can stack up 2-3 baskets and steam all at once (The cooking time remains the same).
Store and reheat
Don’t delay enjoying your freshly cooked custard buns! Silky, semi-runny filling in light, fluffy wrappers, they taste heavenly when hot. Once cooled, the texture will become less pleasurable.
Made a big batch and have some leftovers? Keep them in the fridge for up to 4 days or in the freezer for 3 months. To reheat, defrost the buns in the fridge then steam for 3 mins. Alternatively, steam for 6 mins without defrosting.
🛎 Note: In case you’d like to know, it’s not recommended to freeze uncooked buns as they’re made of leavened dough (unlike dumplings).
Other Classic Treats
Once you’ve mastered the skill of making stuffed buns, you can try other fillings, such as Red Bean Paste, Black Sesame Paste, etc.
Interesting in other Chinese treats and desserts? Check out these recipes:
📋 Recipe
Love this recipe? Please leave a 5-star 🌟🌟🌟🌟🌟 rating in the recipe card below & if you REALLY like it, consider leaving a comment as well!
Steamed Custard Buns (Nai Wong Bao,奶黄包)
Ingredients
For the filling
- 3 yolks of hard-boiled eggs, or cooked salted duck egg yolks - see note 1
- 50 g unsalted butter, softened
- 30 g sugar - or 40g if using salted egg yolks
- 30 g full-fat milk powder - see note 2 for substitutes
For the dough
- 175 g bao flour/cake flour, or all-purpose flour - see note 3
- 1 teaspoon instant dry yeast - see note 4
- 1 teaspoon baking powder
- 1 tablespoon sugar
- 1 tablespoon neutral cooking oil
- 90 g lukewarm water - see note 5
Instructions
Prepare the filling
- Use the back of a spoon to mash the yolks to a fine texture (It’s easier to do while the yolks are warm).
- Add sugar, butter and milk powder. Mix very well until a smooth paste forms. Put into the fridge to harden a little.
Make the dough
- IF USING HANDS: Mix flour, yeast, baking powder, sugar and oil in a bowl. Add water gradually while mixing with chopsticks/spatula. Combine with your hands to form a rough-looking dough. Rest (covered) for 10 mins then knead again until very smooth.
- IF USING A STAND MIXER: Add all the ingredients for the dough into the mixing bowl. Knead on low speed for about 8 mins until a smooth dough forms.
Roll the wrappers
- Divide the dough into 8 equal parts. Work on one piece at a time and make sure you cover the rest to prevent it from drying out.
- With a rolling pin, flatten one piece into a disc-like wrapper, about 9cm in diameter. Ideally, it should be thinner on the edge and thicker in the middle (See the rolling technique in the video above).
Shape the buns
- Place a spoonful of the filling in the middle of a wrapper. Seal the bun completely using whatever method that you feel most comfortable with. Repeat to assemble all the buns.
Rest the buns
- With the sealed side facing down, place the buns into a steamer basket lined with parchment paper (or in cupcake paper moulds as shown in the post above). Alternatively, brush a thin layer of oil if using a metal/plastic steamer.
- Leave to rest for about 30 minutes until they become very light & plump (They will become a little bigger but not double in size).
Steam the buns
- Bring water to a full boil in a wok/pot. Put in the steamer basket. Cook over medium-high heat for 8 mins. Serve warm.
Store & reheat
- It’s not recommended to store uncooked buns. However, cooked buns freeze very well. Consume within three months.
- To reheat: Defrost in the fridge then steam for 3 mins. Alternatively, steam for 6 mins without defrosting.
NOTES
- Option 1: Cook them in the shell in boiling water for 8 minutes. Peel off the shell and the egg whites.
- Option 2: Crack the eggs and rinse off the egg whites. Steam the yolks for 8 minutes or bake them in a preheated oven at 190°C / 375°F for 8 minutes.
NUTRITION
NUTRITION DISCLOSURE: Nutritional information on this website is provided as a courtesy to readers. It should be considered estimates. Please use your own brand nutritional values or your preferred nutrition calculator to double check against our estimates.
My dog ate two of them when I wasn’t looking 🙁 The rest turned out really good though! For some reason the custard didn’t turn out runny like yours, it kind of just stayed lumpy, but the taste was great!
Hi can I use store bought salted egg ? Thank you
Yes you can use shop-bought salted egg yolks. Happy cooking!
it turned out soooooo good.It is so yummy.
So happy to hear that!
Hi Wei – Love the recipe – thank you!! The top of the bun keeps breaking when it’s being steamed…I’ve tried putting in less filling but it still breaks. What I am doing wrong? Thanks!
Sorry to hear that Melissa! This has never occurred to me. I would need more information to troubleshoot. But here is my guessing: 1. The filling wasn’t wrapped tightly so too much air has been trapped in. 2. Did you leave the sealed part on the top (mine is facing downwards)? If so, try sealing the buns more securely and cook them with the sealed part facing down. 3. The wrappers have been rolled out too thin.
Hi Wei! Thanks for sharing your recipe.
I just made this but sadly, I don’t understand why my pao leak. I panicked so I steamed it and pray. It did leak a bit but I’m disappointed at the dough because it looks dry. I used the standing mixer and added 10 mins resting time after I put the in basket, then I steamed them.
My pao came out brownish color and the skin tasted funny – it also leak.
Can you help me figure out what went wrong? I tried sealing the pao but it leak and I feel the pao was dry. Thank you
Sorry to hear that Mentari! The leakage is caused by the fact that you didn’t seal the wrappers securely enough. The next time, try putting a little less filling and pinch the wrappers more firmly (also try not to dust the wrappers with too much flour). The reason why my buns look whiter than yours is that I used special bao bun flour which is more processed than regular plain flour/all purpose flour. I can’t figure out why your buns taste dry and “funny”. Did you follow the recipe precisely?
Easiest recipe so far! Wondering how to make the centre more melty and gooey like the restaurant ..
Thank you very much Mel for trying out my recipe! The texture of custard fillings differ in restaurants so I’m not 100% sure how to achieve the particular one you prefer. In general, you can increase the quantity of butter to make it more melty. For extra gooeyness, I suspect you’d need to incorporate some starch. Since I haven’t tested it, I’m afraid I can’t offer a precise solution.