I often joke that if Florence Nightingale had been Chinese, this is the soup she would have served her patients. It is the ultimate healing food—gentle, nutritious, and incredibly comforting.

Growing up in my family’s kitchen, I learned that the best soups don’t always require hours of simmering bone broth. Sometimes, they just require a little bit of science. This dish, known as Nai Bai Dou Fu Tang (奶白豆腐汤), achieves a luxurious, milky-white broth that looks exactly like heavy cream or tonkotsu broth, but it contains absolutely no dairy.
It is light, packed with high-quality protein from the eggs, tofu, and clams, and brings out the natural sweetness of baby napa cabbage. Best of all? It’s a “one-pot shot”—you only have one pot to wash when you’re done.
What Is “Milky White” Soup (Nai Tang)?
In Western cooking, a creamy soup usually implies cream, milk, or a roux. In Chinese cuisine, a “milky” (Nai Bai 奶白) soup is achieved through emulsification.

By frying protein (in this case, eggs) in oil until golden and then vigorously boiling it with water, we force the fat droplets into suspension within the liquid. This refracts light and turns the soup opaque and creamy white. It is the same principle used to make the famous milky carp soup for new mothers in China.
Why This Recipe Works
- Science of Emulsification: We use the fat from the fried eggs and a vigorous boil to create a creamy texture without dairy.
- Umami Synergy: The combination of clams (glutamates) and eggs (nucleotides) creates a deep savory flavor known in Chinese as Xian (鲜).
- Texture Contrast: The silky tofu and tender baby napa cabbage provide a soft contrast to the chewy clams and fluffy eggs.
Key Ingredients & Substitutions
- Tofu: I recommend Soft Tofu or Silken Tofu for the authentic “melt-in-your-mouth” texture. If you are a beginner and worried about breaking it, Medium Firm Tofu is a safe substitute.
- Comparison: Silken tofu absorbs the broth better but breaks easily. Firm tofu holds shape but doesn’t meld as well with the soup.
- Clams: Fresh Manila clams or Littleneck clams work best. They provide the “ocean” sweetness. Ensure they are alive (shells closed) before cooking.
- Baby Napa Cabbage (Wawa Cai): These are sweeter and more tender than regular large Napa cabbage. If you cannot find them, regular Napa cabbage hearts or even Bok Choy are acceptable substitutes.
- Eggs: The workhorse of this recipe. They provide the fat and protein needed for the milky broth.
- Goji Berries & Scallions: Optional, but they add a pop of color and a hint of sweetness.
Recipe Notes Before We Begin
- Total Time: 15-20 minutes.
- Equipment: A wok or a deep soup pot (Dutch oven works well).
- Difficulty: Beginner-friendly.
Mise en Place / Prep
- Purge the Clams: This is crucial. Soak your clams in cold water with a teaspoon of salt for at least 30 minutes to help them spit out sand. Scrub the shells.
- Prep Veggies: Slice the baby napa cabbage lengthwise. Chop scallions.
- Tofu: Carefully slice the tofu into bite-sized cubes.
- Boiling Water: Have a kettle of boiling water ready. This is the secret to the white soup.
How to Make Creamy Tofu Soup
Step 1: Fry the Eggs
Heat your wok or pot over medium heat with about 2 tablespoons of oil. Crack in the eggs. We want to pan-fry them until they are golden brown on both sides. Don’t worry about keeping them pretty; we want that browned flavor (Maillard reaction) to flavor the soup.
Chef’s Tip: Once the eggs are fried, use your spatula to cut them into large bite-sized chunks directly in the pot.


Step 2: Add Tofu
Gently slide the tofu cubes into the pot with the eggs. Be very gentle here; we want to keep the cubes intact.

Step 3: The “Milky” Reaction (Crucial Step)
Pour boiling hot water into the pot. Do not use cold water!
- Why? Adding cold water causes the proteins to seize and the fat to separate. Adding boiling water maintains the high temperature needed to emulsify the oil and water instantly, turning the soup white.

Step 4: Simmer for Flavor
Turn the heat to medium-high and let it boil for 7-8 minutes. You will see the soup turn from clear to a rich, milky white. The smell of beans (from the tofu) and fried egg will fill the kitchen.
Step 5: Add Clams and Greens
Add the cleaned clams and the baby napa cabbage. These cook very fast. Boil for another 2-3 minutes until:
- The clams have popped open.
- The cabbage is tender but still has a little snap.

Step 6: Season and Serve
Add salt to taste (be careful, the clams are naturally salty) and white pepper. Garnish with goji berries and chopped scallions. Serve immediately!


Tips for Success
- Don’t Skimp on Oil: You need a little oil to fry the eggs effectively. This oil is what emulsifies to make the soup creamy. If you reduce the oil too much, the soup will be less white.
- Boiling is Key: A gentle simmer won’t emulsify the fats as well as a rolling boil. Keep the heat up during the 7-8 minute soup creation phase.
- Sand-Free Clams: If you hate grit, you can par-boil the clams in a separate pot until they just open, rinse them, and then add them to the main soup at the end.
Serving Suggestions
This soup is mild and healing. It pairs perfectly with something a bit crunchy or savory.
- Pairing: Serve this with Silky Steamed Tofu with Egg for a tofu-themed feast, or some crispy pan-fried dumplings (Potstickers).
- Rice: A bowl of steamed jasmine rice is mandatory to soak up that delicious milky broth.
If you enjoy this texture, you might also like my Golden Pan-Fried Tofu which uses a different technique to achieve a crispy exterior.
Food Safety and Preparation
- Clam Safety: Discard any clams that do not open after cooking. This indicates they were dead before cooking and are not safe to eat. Conversely, before cooking, discard any clams that are open and do not close when tapped.
- Allergens: This recipe contains Eggs and Shellfish.
- Leftovers: Seafood soups are best eaten fresh. Reheating clams can make them rubbery. If you must store it, keep it in an airtight container in the fridge for up to 24 hours.
Common Troubleshooting & FAQ
Q: My soup isn’t turning white. What happened?
A: Usually, this happens for two reasons: 1) You used cold water instead of boiling water, or 2) The boil wasn’t vigorous enough. The agitation of boiling water is what smashes the oil droplets into the water to create the white color.
Q: Can I use spinach instead of Napa cabbage?
A: Yes! Spinach works great. Add it at the very last minute as it cooks much faster than cabbage.
Q: Is this soup gluten-free?
A: Yes, naturally! Just ensure you aren’t adding any soy sauce or condiments that contain wheat. The base recipe is gluten-free.
Authoritative References
- For guidelines on safe internal temperatures and shellfish handling, refer to the USDA Food Safety and Inspection Service .
- For nutritional benefits of soy and tofu, consult the American Heart Association .
Notes:
- The Secret: The white color comes from the emulsification of the oil and egg protein reacting with boiling water. Do not skip the boiling water step!
- Safety: Ensure clams are alive before cooking and open after cooking.
- Nutrition Disclaimer: Nutrition information is calculated using an ingredient database and should be considered an estimate. Garnishes and optional ingredients are not included.
Nutrition Information (Estimate)
- Calories: ~280 kcal
- Protein: 22g
- Fat: 18g
- Carbs: 8g
- Disclaimer: Nutrition information is calculated using an ingredient database and should be considered an estimate. Garnishes and optional items are not included.

Creamy Tofu Soup with Clams (Nai Bai Dou Fu Tang)
Ingredients
Equipment
Method
- Heat the oil in a wok or soup pot over medium heat. Crack in the eggs and fry them until they are golden brown on both sides. Don’t be afraid of a little char; it adds flavor.
- Using your spatula, cut the fried eggs into large chunks directly in the pot.
- Gently slide the tofu cubes into the pot.
- Pour the boiling water into the pot immediately. Increase the heat to medium-high.
- Let the soup boil vigorously for 7-8 minutes. The combination of oil, protein, and boiling water will emulsify, turning the broth a rich milky white.
- Add the scrubbed clams and the sliced baby napa cabbage. Continue to boil for 2-3 minutes.
- Once the clams have opened and the cabbage is tender, turn off the heat. Discard any clams that did not open.
- Season with salt and white pepper. Garnish with chopped scallions and goji berries. Serve hot.
Notes
Adding boiling water creates an instant emulsion with the oil and egg protein, which creates the signature milky white color. Cold water will result in a clear, less creamy soup. Food Safety:
Ensure all clams are alive before cooking (shells closed or close when tapped) and fully open after cooking. Discard any that remain closed. Nutrition Disclaimer:
Nutrition information is calculated using an ingredient database and should be considered an estimate. Garnishes and optional ingredients are not included.












