Every time I think about the breakfast stalls of Wuhan, my mouth waters for one thing: a golden, crackling square of san xian dou pi, cut into diamonds and handed over on a piece of paper. The outside is a thin, crisp crepe made from mung bean and rice flour, lacquered with egg. Inside, a warm cushion of sticky rice is piled with a savory pork, mushroom, bamboo shoot and tofu “saozi” — the same spooning that would go on noodles. One bite gives you crunch, chew, and a hit of soy-braised umami that stays with you for the rest of the day.

The catch? Doupi is a street-food skill, not a home-kitchen habit. The traditional batter is made by soaking mung beans and rice overnight and grinding them into a thin slurry in a blender — another appliance, another step, another reason to leave it to the pros. So when I found a no-blender version that leans on store-bought mung bean flour and rice flour, I had to test it until it behaved like the real thing. This is that recipe: the same crackly wrapper, the same sticky-rice heart, and none of the machinery.
What Is Wuhan San Xian Dou Pi (Wu Han San Xian Dou Pi)?
San xian dou pi (三鲜豆皮) is a classic Wuhan breakfast: a large, round, pan-fried crepe made from a mung-bean and rice-flour batter, topped with a beaten-egg layer, then filled with seasoned sticky rice and a “saozi” of pork, mushroom, bamboo shoots and firm tofu braised in soy sauce. The name means “three-fresh dou pi” — the “three fresh” usually points to the pork, mushroom and bamboo shoot that carry the filling, though vendors argue endlessly about the exact trio. “Dou pi” translates literally as “bean skin,” a nod to the mung-bean wrapper. Street versions are built on huge iron griddles and finished with a dramatic flip; home versions like this one use a 23 cm skillet and come out just as good.
Doupi is my favorite answer to “what should I make for breakfast?” It shares its soul — seasoned sticky rice wrapped in something savory — with sticky rice shumai with mushroom and pork, another favorite of mine. Shumai wraps the same kind of filling in a thin wheat wrapper and steams it, while doupi pan-fries a grain-based crepe instead. If you love one, you will almost certainly love the other.
1Sticky Rice Shumai with Mushroom and Pork (Zhi Pi Shao Mai)These Shanghai-style sticky rice shumai feature a savory filling of glutinous rice, pork belly, and shiitake mushrooms wrapped in a translucent, paper-thin skin. A clever hack using rolled-out dumpling wrappers makes this dim sum classic easy for home cooks.Check out this recipe
Why This Recipe Works
- No blender, no soaking the grains: mung bean flour and rice flour dissolve straight into water, so the batter comes together in two minutes while tasting like the traditional stone-ground version.
- A dual-layer wrapper: the mung-bean/rice batter sets crisp, then a beaten egg is poured over it, giving the outside a silky, golden crust and a better seal so the rice stays put.
- Medium-low heat is the whole game: the crepe needs time to set before it crisps. Rushing it on high heat burns the milk-starch sugars before the structure forms.
- A properly braised saozi: the pork, mushroom and bamboo shoot are simmered in soy and star anise until glossy and spoon-thick, so the filling clings to the rice instead of pooling.
- Sticky rice steamed, not boiled: steaming keeps the grains separate and chewy instead of turning them into porridge.
Equipment Needed
- A 23 cm (9 in) nonstick skillet or seasoned carbon-steel pan — the size matters because the batter amount is tuned to it
- A steamer (bamboo or metal) with a lid for the rice
- A small skillet or wok for the saozi
- A flexible spatula for loosening and flipping the crepe
- A pastry brush or small spray bottle for oiling the egg layer
Ingredients
For the Glutinous Rice
- 150 g (3/4 cup) glutinous rice (sweet rice), soaked overnight
For the Wrapper Batter
- 10 g (1 tbsp) mung bean flour
- 30 g (3 tbsp) rice flour
- 10 g (1 tbsp) all-purpose flour
- 100 g (1/2 cup) room-temperature water
- 2 large eggs, beaten
For the Saozi (Topping)
- 50 g (1.8 oz) pork belly or pork butt (mei tou rou), finely diced
- 2 shiitake mushrooms, rehydrated if dried, diced
- 1 piece firm tofu (dou fu gan, about 100 g / 3.5 oz), diced
- 1 small winter bamboo shoot, diced
For the Seasoning
- 10 g (2 tsp) light soy sauce
- 3 g (1/2 tsp) dark soy sauce
- 5 g (1 tsp) sugar
- 5 g (1 tsp) cooking wine (or Shaoxing wine)
- 1 star anise
- 5 g (1 tsp) minced ginger
- 5 g (1 tbsp) sliced scallion whites
- 100 g (1/2 cup) water
- 2 g (1/2 tsp) cornstarch mixed with 10 g (2 tsp) water
- 0.3 g (1/8 tsp) white pepper
- Neutral oil, for the pan
- Sliced scallion greens, to finish
Ingredient Notes
Mung bean flour is the star of the wrapper — it gives doupi its distinctive, slightly nutty bean flavor and its crackly set. It is sold in most Asian grocers and online; if you cannot find it, an all-rice-flour wrapper will still work but will be less crisp and less fragrant. Rice flour here means plain white rice flour (not glutinous/sweet rice flour), which is what keeps the crepe tender inside the crisp shell. Firm tofu (dou fu gan) is the pressed, dense tofu sold in vacuum packs in Asian markets; regular firm tofu works in a pinch but holds less shape in the simmer.
Prep & Mise en Place
Get the soaking out of the way first: rinse the glutinous rice and soak it in cold water for at least 6 hours, or overnight. This softens the grains so they steam through in about 10 minutes. Dice everything for the saozi into small, even cubes — pork, mushroom, tofu and bamboo shoot should all be roughly the same size so they cook at the same pace. Finally, stir the mung bean flour, rice flour, all-purpose flour and water together until smooth; the batter should be the consistency of thin pancake batter, not thick paste. If you are nervous, hold back 10 g of the water and add it only if the batter feels too thick.
Cooking Process
Step 1 — Soak the Rice
Rinse the glutinous rice, then soak it in cold water for 6 hours or overnight. Drain well before steaming.
Step 2 — Cook the Saozi
Heat a little oil in a skillet over medium heat and bloom the sliced scallion whites and ginger until fragrant. Add the pork and stir-fry until it changes color and starts to render. Add the mushrooms and cook until soft, then add the tofu and bamboo shoot. Pour in the light soy, dark soy, sugar, cooking wine, star anise and 100 g water — the liquid should just cover the solids. Bring to a boil, drop the heat to medium, cover and simmer for about 10 minutes.
Step 3 — Thicken the Saozi
Stir the cornstarch slurry, pour it into the pan and let it bubble until the sauce turns glossy and coats the back of a spoon. Dust with white pepper and take it off the heat. The sauce will keep thickening as it rests.
Step 4 — Steam the Rice
Drain the soaked rice, spread it in an even layer in the steamer, and steam over medium-high heat for about 10 minutes. Leave the lid on and let it rest — no peeking — while you build the crepe.
Step 5 — The Doupi (Crepe)
This is where doupi gets its name. Everything from here on happens in the skillet, one layer at a time.
Step 6 — Mix the Batter
Whisk the mung bean flour, rice flour, all-purpose flour and water together until smooth. It should flow off the whisk like thin pancake batter — add a splash more water if it feels pasty.
Step 7 — Oil the Pan
Set the pan over medium-low heat — really, medium-low — and add a thin film of oil, tilting to coat the bottom.
Step 8 — Pour and Set the Batter
Pour in enough batter to cover the bottom of the pan in a thin, even layer (this amount makes two 23 cm crepes, so use about half). If a patch looks thin, spoon a little extra batter over it. Medium-low heat again: wait patiently for the batter to set around the edges before going anywhere.
The wrapper works on starch gelatinization: as the batter heats, the mung-bean and rice starches absorb water, swell and set into a cohesive sheet. Doing this over medium-low heat lets the inside cook through before the outside burns — the same reason a good crepe always tastes better than a rushed one.
Step 9 — Add the Egg Layer
Pour the beaten egg over the set batter and tilt the pan so it spreads into a thin, even layer. Keep the heat at medium-low and let the egg just barely set — once it covers the crepe you can nudge the heat up a touch, but not so much that the pan smokes.
Step 10 — Flip the Crepe
Once the egg is set, brush or spray a little oil over it. Work a spatula around the edges to loosen the crepe, then flip the whole thing — egg side down on the pan, batter side up. The flip is the scariest part; if yours folds, just patch it with a spoon of batter and keep going.
Step 11 — Spread the Sticky Rice
Pile the steamed sticky rice over the crepe and spread it out — edge to edge if you like, or leave a border for easier folding.
Step 12 — Top with the Saozi and Crisp
Spoon the saozi over the rice. I like to fold the edges of the crepe over the filling, then flip the whole doupi once more so the saozi-and-rice side hits the pan and crisps up before I slide it out. Finish with a shower of scallion greens.
Step 13 — Serve Hot
Cut the doupi into squares or diamonds and serve immediately, golden and steaming. This is very much a “eat it now” breakfast — it is at its glorious best within minutes of leaving the pan.
Common Mistakes When Making Wuhan San Xian Dou Pi
1. The crepe burns before it sets. Cause: heat too high. Fix: commit to medium-low heat for the batter and egg stages; the heat can come up only after the egg covers the surface.
2. The batter is too thick and becomes a pancake. Cause: too little water. Fix: the batter should pour like thin crepe batter; whisk in water a teaspoon at a time until it flows freely.
3. The wrapper tears on the flip. Cause: flipping before the egg has fully set, or forcing it. Fix: loosen the edges first, oil the egg surface, and let it set completely; a gentle, confident motion beats a fast one.
4. The rice is hard or crunchy. Cause: it was not soaked long enough. Fix: soak for 6 hours minimum — overnight is better — and keep the steamer covered while it rests.
5. The saozi is watery and runs off the doupi. Cause: the sauce was not thickened. Fix: always finish the saozi with the cornstarch slurry and simmer until glossy; let it rest so it thickens further.
Variations
The “three fresh” is a guideline, not a law. Vendors in Wuhan swap in diced edamame, carrot, or even duck for the pork. Out of bamboo shoot? Skip it and add a few more mushrooms. Spice lovers can stir a spoon of homemade chili garlic sauce into the saozi. For a vegetarian doupi, leave out the pork, double the tofu and mushrooms, and add a splash of mushroom soaking liquid to the braise.
Frequently Asked Questions
Can I substitute the mung bean flour? Rice flour alone makes a tender but less crisp wrapper. If mung bean flour is unavailable, use a 50/50 blend of rice flour and all-purpose flour for the closest texture.
Can I make doupi ahead of time? The components keep well separately: steam the rice and braise the saozi a day ahead, then assemble and crisp the crepe fresh in the morning. A fully assembled doupi does not reheat well — the crepe loses its crackle.
Why did my crepe stick to the pan? Usually the pan was not hot enough for the first layer, or the oil film was too thin. A properly preheated nonstick or well-seasoned pan with a thin oil film is the fix.
Is this authentic? The filling and construction are faithful to the Wuhan street version; the only concession is using mung bean flour instead of grinding whole beans in a blender — the flavor is the same and it saves you an appliance.
Can I freeze the leftover saozi? Yes. The saozi freezes for up to 3 months in an airtight container; thaw overnight and reheat gently before use.
How to Serve
Doupi is breakfast, but it is also the kind of food that appears at brunch tables and weekend spreads. Serve it alongside braised beef noodle soup — the classic Wuhan morning pairing of a savory noodle bowl and a crackly crepe — or with a platter of sheng jian bao for a full street-breakfast spread. A cup of hot soy milk or tea balances the richness. If you have leftover sticky rice and saozi, wrap them in lotus leaves and steam them for a lo mai gai-style treat.
Storage & Reheat
Assembled doupi is best eaten immediately. Store leftovers, tightly wrapped, in the refrigerator for up to 1 day — expect the crepe to soften. Reheat in a dry skillet over medium-low heat, covered, for 2–3 minutes per side to restore some crispness. The steamed rice keeps refrigerated for 3 days and the saozi for up to 5 days, or 3 months frozen. Always reheat pork to an internal temperature of 165°F (74°C) to be safe.
Allergen Notice
This recipe contains gluten (wheat flour, soy sauce), soy (soy sauce, firm tofu), and egg. It can be made gluten-free with tamari and a gluten-free flour blend, and egg-free by skipping the egg layer (the crepe will be less golden and slightly less crisp).
Nutrition Disclaimer
Nutrition information is calculated using an ingredient database and should be considered an estimate. In cases where multiple ingredient alternatives are given, the first listed is calculated for nutrition. Garnishes and optional ingredients are not included. Nutrition information is an estimate and provided for informational purposes only.
About the Author & Recipe Development
I’m Lin, and I spent a decade working line jobs in Chinese restaurants before I started writing recipes for home cooks. Doupi was one of those dishes I only knew from the street — until I reverse-engineered it in my own kitchen over a week of breakfasts. I tested the no-blender batter with both store-bought mung bean flour and a rice-flour-only version, and I kept the technique that produced the crispiest, most stable wrapper every single time. The amounts in this recipe fit a standard 23 cm home skillet, which is the pan I assume most of you are cooking with.
Authoritative References
For safe handling of pork, I follow the USDA safe minimum internal temperature chart, which recommends cooking ground pork to 160°F (71°C) and whole cuts to 145°F (63°C) with a rest. The science of starch gelatinization behind the wrapper is explained in this overview of starch gelatinization from ScienceDirect.



















Leave a Reply