Foolproof Sichuan Tofu Pudding (Douhua, 豆花)


Jump to Recipe – proceed at owN risk

From Soy Milk to Douhua Tofu Pudding in Minutes (No GDL/Gypsum!)

If you’ve eaten street foods in China (or Taiwan, Vietnam, Malaysia, Singapore, Indonesia, Thailand and many others I’m missing!), there’s a good chance you’ve had 豆花 (dòuhuā), tofu pudding—or 豆花儿 (dòuhuā’er), as it’s called in Sichuan. Jiggly blocks of soy “pudding” cleave readily with just a spoon, each douhua bite as tender as the silkiest tofu.

Fresh, just-barely-set douhua is backdrop to savory sauces and pickles in the North, sweet syrups in the South and spicy dressings in Sichuan. Personally, I couldn’t imagine tofu pudding without its blood-red homemade chili oil, strong soy sauce and crunch of fried soybeans/peanuts. Sour vinegar and pickles with a tingly dusting of freshly ground huajiao deliver a piquant bite to every mouthful of neutral tofu, and all of a sudden my tastebuds are being wrapped in a cozy tofu blanket.

I’m used to seeing this breakfast or afternoon snack lugged in a metal cart by some auntie or uncle (the “good one” of whom would come from Chengdu to Ma’s smaller hometown only occasionally, announced only by word of mouth), or carried in bamboo buckets weighted by a long pole slung across the vendor’s shoulders. You could buy the fresh tofu as-is and take it home in a plastic bag for later, or get it dressed in that savory, spicy topping.

a bowl of tofu pudding douhua on a green plate and black backdrop
The secret ingredient for pantry-ready douhua: Just An Egg.

The only problem with making tofu pudding at home by the usual methods is the finickiness of the coagulating salts (calcium sulfate/ground gypsum or 卤水 (lǔshuǐ), chloride salts precipitated from briny or sea water like “nigari”) and acids (glucono delta-lactone, GDL). This one’s sour and that one produces crumbly curds; the temperature control and mixing methods require diligence—tofu pudding is one case where replicating industrial methods at home isn’t necessarily a hack. Measure too much or little by ratio by even a fraction of a gram, and your results may suffer. Enter: Just An Egg.

Just an egg stabilizes soy milk into silken douhua without any mineral tang or leftover brine.
Just an egg means you can go from soy milk to tofu pudding in less than 10 minutes, while also avoiding the no-touch sitting time of GDL.
Just an egg means you don’t need to buy a 1/2 pound bag of GDL to make one hangover brunch’s worth of tofu pudding (of which 2 grams of GDL will feed a 4-person family).
Just an egg means you probably already have one or a dozen in your kitchen as you read this.
Just an egg means if you don’t have the egg, or the soybeans, you can pick both up at the same place when you go grocery shopping this week anyway.

Just An Egg, folks.

Preparing Soy Milk for Douhua

*Of course, you may skip this section and the next if you have your own ready-to-drink fresh soy milk.

At least eight hours before you make the soy milk, wash and soak the dry soybeans in double the water by volume. Leave them alone on the counter to rehydrate and expand. I make about 100 grams of soybeans at a time (which comes out to something like a hyper-filled 1/2 cup), enough for 4 servings of douhua including lots of stolen sips.

When you’re ready to use the soaked soybeans, the trick is adding only enough water to blend smooth. It’s not really about low-moisture blending—it’s actually about saving more of the water for boiling in the next step. (While not diluting the soy milk with too much extra water—using only 1000mL water total.)

Strain the blended soy milk over a cheesecloth, or better yet, a nut-milk bag. I have never once successfully strained a cheesecloth soy milk bag without spurting soy milk pulp (more glamorously known as Japanese okara) all over myself, the counter and the floors, so take care while squeezing—the good news is it wipes off easily and without a trace since the leftover dregs are so solid.

And it is worth it to me to squeeze as much liquid out as possible, because I love to save the pulp to use in scallion/kimchi pancake batter. (It’s not perfect, but add a handful of flour and potato starch and enough cold water to get a runny batter and mix in any and all produce odds and ends, plus kimchi juices if you please. Pan-fry both sides until crispy. Gorge.) And, knowing me, it could be a couple days before I get around to that… so the less liquid sitting around, the better. If you do save the soy milk pulp, try to use within 2-3 days.

Cooking Soy Milk

Soybeans are inedible raw, so the soy milk must be boiled first. A couple side effects of boiling soy milk include its penchant for foaming, and the soy milk skin (yuba in Japanese) that forms at the surface of the pot while cooking. This skin can be saved, dried and eaten in many ways—if it’s formed. There is, however, a simple hands-free trick that saves you from needing to babysit (i.e., keep stirring) your boiling soy milk to prevent a skin:

Bring the majority of the water to boiling first! Then pour in the concentrated soy milk. The action of the rolling boil will agitate the soy milk concentrate when it hits the pot and, with enough preliminary boiling water involved, prevent the soy milk from ever forming the low-temperature, passive yuba skin that otherwise collects at the surface. The natural agitation also means you don’t ever need to manually stir the pot.

As for the foaming, no need for skimming or alarm. The agitation will resolve the foaming, so if you use a large enough pot (at least 4-5 times the volume of the soy milk), you can even get away with monitoring just the initial froth-up. In the pot pictured, I did keep a watch and lower the heat temporarily once beginning to bubble up, just in case. I then returned the heat to medium/medium-high once the foaming subsided a bit.

Boil this way for 5 minutes and breathe in the wonderful, naturally sweet smell of fresh, hot soy milk! Then turn off the heat and set aside to cool as you prepare the egg and serving bowl(s). If you did end up with a little tofu skin, skim it away or save it for cooking.

Steaming the Tofu Pudding

The gist is simple: Beat an egg with a pinch of salt to help stabilize the tofu pudding. Wait until the soy milk cools down to at least 140F/60C (egg whites start to solidify around 145F/63C; we don’t want this). Pour in 4.5-5 times the amount of soy milk by weight—measure for superior results as pictured. Mix well and skim off any surface bubbles for a perfectly glossy finish. Steam starting with room temperature water for 5-7 minutes from the point that the water begins boiling (for an individual serving). Test doneness by inserting a toothpick in the middle—if it stays standing, it’s done!

In practice, I don’t generally measure the temperature of the soy milk, except during the making of this recipe. Instead, I go by fingertip endurance. If I can keep my fingertip submerged for a couple seconds, that’s hot enough (120F is generally “scalding”). Naturally, your mileage may vary—I’d like to think I’m well on my way toward developing heat-resistant auntie hands for an amateur, and “hot but bearable” to me is “scalding and intolerable” to my roommate.

I’ve achieved excellent results between 110-130F, a range tested not out of meticulous research but rather due to the various clean-up chores I take care of whilst the soy milk inevitably drops to cooler and cooler temperatures before I remember and rush to mix it all together. From my experience, you want it just beyond yeast-blooming “warm” temperatures (pleasantly warm and cozy enough to keep a fingertip submerged indefinitely without discomfort) but not actually super hot. This is also similar to Chinese steamed egg, which benefits from warm-but-not-hot water to cook slowly and evenly.

If you want to attack it with a homemaker’s practicality, there is also the variable of the boiling water temperature. You can start from warm or cold water (which, in the quantity required to steam something for only a few minutes, will very quickly come up to boiling anyway) for an individual serving bowl and you likely won’t notice a difference. But if you’re making this tofu pudding in one family-style bowl, definitely start it on the room temperature/cool side. It heats up more slowly so the tofu pudding will cook evenly throughout, important for a larger bowl.

Regardless, you can always cook tofu pudding longer, but you can’t turn back time on overcooked tofu. So just begin checking after 5-7 minutes of boiling if you’re uncertain. When the bowl has the slightest jiggle and a toothpick stays standing, it’s done.

a bowl of tofu pudding douhua on a green plate and black backdrop
I love to douse tofu pudding in the requisite soy sauce, black vinegar, homemade chili oil, toasted sesame oil, pickles, crunchy things and fresh scallions.

For Kathy’s homestyle Sichuan lajiaoyou using The Mala Market’s roasted rapeseed oil and fragrant-hot ground chilies, see her Traditional Sichuan Chili Oil recipe. Or, for the ultra-mouthwatering 香辣 (xiānglà)/fragrant-hot version, see the Aromatic Sichuan Chili Oil recipe!

Foolproof Sichuan Tofu Pudding (Douhua, 豆花)

By: Kathy Yuan | The Mala Market | Inspiration & Ingredients for Sichuan Cooking
Yield: 4


  • steaming rack/steamer
  • cheesecloth


Douhua (makes up to 4 individual servings or 1 family-style bowl)

  • 100 grams dry soybean approx. overfilled ½ cup
  • 1000 grams water 1L, approx. 4¼ cups
  • 1 medium egg per individual serving (if desired, measure weight once cracked, in grams)* up to 4 for family style
  • teaspoon salt per individual serving ½ teaspoon for family style

Toppings, per individual serving (x4 for family-style)

  • 1 teaspoon Chinese light soy sauce (Zhongba preferred)
  • 1 teaspoon Chinese black vinegar
  • 1 teaspoon toasted sesame oil (Cuizi preferred)
  • ½ tablespoon chili oil with flakes (preferably homemade)
  • drizzle Chinese sesame paste, optional
  • zhacai pickled mustard stems, optional
  • ½ tablespoon roasted soybeans or peanuts
  • 1-2 scallions, finely sliced
  • pinch ground huajiao (Sichuan pepper) see note
  • pinch salt
  • pinch sugar



  • The night before, wash and soak the dry soybeans in a medium bowl. Add enough water for the beans to comfortably double in size, at least 2 inches of overhead depending on the bowl. Soak at least 8 hours, no more than 24.
    If you can't use the soaked beans in time, drain them and pat dry with paper towels before storing the drained beans in the fridge up to 2 days.


  • Drain the soaked beans. In a blender, add the soaked beans and just enough water from the measured liter of water to cover and blend the beans, likely ¾-1 cup of water. If you have a good blender, you can get away with less. Blend for 1-2 minutes on high to ensure the highest soy milk yield possible. Strain through a cheesecloth or nut milk bag to isolate the soybean dregs. Use some more of the reserved water (no more than ½ cup if possible) to clean out the blender and strain that through the cheesecloth as well.
    Tip: Save the leftover soybean mash to use instead of flour in scallion or kimchi pancakes! It will stay good in a sealed container in the fridge for several days.
  • Add the remaining reserved water to a 3-quart pot and bring to a rolling boil. Pour in the strained soy milk. Boil 5 minutes on medium-high heat without stirring, but do keep watch! When the soy milk comes back to a boil, it will foam up and you may need to briefly turn the heat lower if your pot is not big enough. You do not need to skim the foam, as it will resolve itself once boiling. This method prevents scalding and forming a tofu skin if executed correctly with enough boiling water to agitate the milk itself, which is why you don't need to stir.
    Turn off the stove and remove the pot from the heat to gradually cool down to at least 140°F/60°C while you prepare the next step.


  • In the bowl(s) you will use to serve (individual or family-style), beat the egg(s) with the salt (1 pinch per individual serving bowl or ⅛ teaspoon family-style) until well-mixed. *Measure the weight of the cracked egg for results as pictured.
    Once the soy milk cools to at least 140°F/60°C (any higher and the egg whites will start to cook), pour into the beaten egg bowl(s) at a ratio of about 4.5-5 times soy milk by weight per egg. Mix together and skim off surface foam.
    Expect an average around 250g/1 cup soy milk per medium egg/serving. It does not need to be exact to be edible, like baking, so you can eyeball this, but also like baking, you shouldn't expect the same results if you differ.
    Instructions as written make 1 large bowl or up to 4 individual bowls.
  • Add a couple inches of room-temperature water to a steamer and place the individual bowl(s) or family-style bowl on the steaming rack. Cover and bring to a boil. Turn the heat down low/medium-low and set a timer for 5 minutes, at which point you can begin checking for doneness. For an individual bowl, I generally steam around 7 minutes with soy milk that is hot/bearably hot to the touch (about 120-130°F/49-54°C).
    Test for doneness by inserting a toothpick into the middle. If it stays standing on its own, it's done. Garnish with the topping ingredients and serve hot.
    For a family-style serving in a larger bowl (and pot), start steaming from cold water and continue cooking to doneness, checking every minute or so depending on the size and depth of your equipment. Refer to full post for more details on temperature and even cooking.
    If you use cold/refrigerated soy milk to make this douhua, you can start with cold water and steam up to 15 minutes total, or about 10 minutes after reaching a boil—but, better yet, microwave the soy milk briefly until it's hot to the touch (but not hot enough that you can't keep your finger in it) and proceed with the regular instructions.
  • Top hot douhua with seasonings and enjoy immediately. For sharing from a family-style portion, scoop desired serving into individual bowls and season separately.


*To be precise, the preferred factor for silken softness and coagulability is about 4.5-5 times soy milk by weight compared to beaten egg. I cannot control for the production standards of the hen that pushed out your particular egg. Eggs in the same dozen will not weigh the same either, and a deviation of just 10 grams will result in a wildly different result. 
To make Kathy’s family’s Sichuan homestyle lajiaoyou using roasted rapeseed oil and fragrant-hot ground chilies, see her Traditional Sichuan Chili Oil recipe. Or, for the ultra-mouthwatering 香辣 (xiānglà)/fragrant-hot version, see the Aromatic Sichuan Chili Oil recipe!
GROUND HUAJIAO (Sichuan pepper):
Toast whole huajiao in a dry skillet until pods start to smell very fragrant, but do not brown them. Let peppercorns cool, then grind in a spice grinder or in a mortar + pestle to your desired coarseness. Sichuan pepper powder will retain its potent flavor and numbing punch for only a few weeks.

Tried this recipe?

About Kathy Yuan

Kathy is a first-gen, twenty-something daughter of two Sichuan immigrants who cooked her way back to her parents’ kitchen during the pandemic and is now helping Ma (you can call her Mala Mama) keep generational family recipes alive. All photos shot and edited by her.

Recipes you might like

Leave a comment

Your email address will not be published. Required fields are marked *


  1. The recipe toppings sound delicious but I’m curious why you think this is better than the gypsum method. I have made tofu with gypsum many times and it is so easy. And you get to see he magic “freeze” of the liquid when it turns to soft tofu.

    1. Hi Dave, thanks for reading and sharing your experience! Great question. This recipe is mainly aimed toward any folks who have wanted to try making douhua on a whim but didn’t want to go find (and realistically, order) GDL/gypsum for it. And second, I just hadn’t seen any English-language resources that demonstrated the egg method. This is well known in China. I wanted to make that knowledge available for English readers as well!

  2. what about using your egg technique with store bought soy milk? i am thinking about steaming it all in a pie playe and using all your toppings to make one of three dishes to serve at sichuan style dinner.

    1. That sounds delicious and smart, Bruce! As stated in the post, you can feel free to skip the part about making your own soy milk if you have your own fresh soy milk. You’ll just want to experiment with the starting temperature and timing for a wider and shallower steaming dish!

  3. This looks like the Korean dish I know as sundubu jjigae. I live in Chinatown so I can buy all sorts of tofu. #lucky it never occurred to me to make it from scratch! The texture and taste of a silky, custardy spicy tofu stew is so comforting. My next one will be Mala style!

    1. Hi Jacqueline, that’s a great connection! I love sundubu and never thought of that either. Let me know how it goes if you try it with the egg version!