Canh khoai môn is the home-cook soup of Vietnam — taro root simmered with shrimp-pork meatballs in a clear, lightly seasoned broth, finished with a generous handful of culantro (rau ngò gai). It is the dish that Vietnamese mothers learn to make first because the technique is forgiving, the ingredients are cheap, and the result is deeply satisfying over a bowl of steamed white rice. The soup is gentle on the palate but rich in umami from the pork-shrimp meatballs, and the taro melts into the broth to give it a slight thickening and earthy sweetness.
The defining element is culantro — not cilantro. Culantro (Eryngium foetidum) has long, serrated leaves and a more intense, almost earthy cilantro flavor. It looks like a coarse grass and is sold in bunches at Asian markets labeled "rau ngò gai" or "sawtooth coriander." If you can only find cilantro, the soup will still be good but will lack the particular aromatic depth that defines canh khoai môn.
Taro root requires careful handling: the raw root contains calcium oxalate crystals that can irritate skin and cause throat itching if not cooked properly. Peel under running water and always cook until fork-tender before tasting.
Ingredients
For the soup
- 6–8 taro roots (khoai môn), about 2½ lb total
- 1 bunch culantro (rau ngò gai), about 1½ cups chopped
- 1 can (14 oz) low-sodium chicken broth (or 2 quarts pork or chicken bone broth)
- 2 quarts water
- 1 tbsp vegetable oil
- 1 tsp salt, plus more to taste
- 1 tsp sugar
- 2 tbsp fish sauce, plus more to taste
- ½ tsp freshly ground black pepper
For the shrimp and pork meatballs
- ¼ lb ground pork (pork butt)
- ⅓ lb shrimp, peeled, deveined, and roughly chopped
- ½ tbsp minced garlic
- ⅛ tsp black pepper
- 1 tsp salt
- 3 tbsp sugar
- 1 tbsp Vietnamese fish sauce (Viet Huong or Red Boat)
- ¼ tsp cornstarch
- ½ tbsp water
Instructions
Prep the taro
Wash the taro roots under running water. Peel with a vegetable peeler or sharp knife, again under running water to avoid skin contact with the calcium oxalate sap. Cut into bite-size chunks (about 1½ inches). Soak the cut chunks in a bowl of cold water for 10 minutes, then rinse. This removes some of the surface starch and any residual irritant.
Prep the culantro
Wash the culantro bunch thoroughly. Pat dry and chop coarsely, including the tender stems. Discard any tough stem ends. You should have about 1½ cups of chopped herb.
Make the meatball paste
Using the flat side of a heavy cleaver or a mortar and pestle, smash the peeled shrimp until they form a rough paste. This is a traditional technique — smashing (not chopping) helps the shrimp blend into the pork and bind the meatballs together.
In a mixing bowl, combine the ground pork, smashed shrimp, minced garlic, black pepper, salt, sugar, fish sauce, cornstarch, and water. Mix vigorously with your hands or a wooden spoon for 2–3 minutes, until the mixture is cohesive and slightly sticky. Cover and refrigerate while you prep the broth.
Start the broth
Heat 1 tablespoon of vegetable oil in a 4-quart pot over medium-high heat. Using a wet spoon (to prevent sticking), scoop up tablespoon-size portions of the meatball paste and drop them into the hot oil. You should hear a satisfying sizzle. Brown the meatballs for 2 minutes, stirring gently, until they develop a light crust on all sides.
Quickly add the 2 quarts of water and the can of chicken broth (or pour in your bone broth). Bring to a boil over high heat, then reduce to a steady simmer. Skim any foam that rises to the surface in the first 5 minutes.
Cook the taro
Add the taro chunks to the simmering broth. Cover and cook at a gentle simmer for 20–25 minutes, until the taro is fork-tender. The taro should give easily when pierced but should not fall apart. If the broth reduces too much, add a cup of water.
Finish the soup
Stir in the salt, sugar, fish sauce, and black pepper. Taste and adjust — the broth should be savory with a slight sweetness from the taro. Add the chopped culantro and stir gently. Cook 1 more minute, then remove from heat.
Serve
Ladle the soup into bowls over steamed jasmine rice. Each bowl should get a generous portion of meatballs and taro chunks. Serve hot, with extra fish sauce and a plate of simple vegetables (cucumber, bean sprouts) on the side.
VNomy notes
- Taro must be fully cooked. Undercooked taro causes throat itching from residual calcium oxalate. The chunks should be completely fork-tender — no resistance when pierced.
- Culantro, not cilantro. The flavor is similar but more intense and slightly peppery. If you must substitute cilantro, use 3x the volume and add it at the very end of cooking.
- Smash the shrimp, don't chop. The traditional Vietnamese technique of smashing the shrimp with the side of a cleaver helps the proteins bind to the pork. Chopped shrimp leaves the meatballs crumbly.
- This soup improves on day two. The flavors meld overnight in the fridge. Reheat gently — don't boil hard or the meatballs toughen.
- Taro thickens the broth naturally. Don't add cornstarch or flour — the taro starches will give the broth a slight body on their own.
Source notes
Recipe adapted from Snow at Mama Snow Cooks, a Vietnamese-American home cook in Florida who learned the soup from her mother. Technique cross-checked against Helen Le's canh khoai môn recipe for the meatball proportions and taro cooking time.