Bánh xèo is a Vietnamese savory crepe made with a thin rice-flour batter, turmeric, and a crisp, golden edge, usually folded around pork, shrimp, and bean sprouts. This version adds a little tapioca starch for extra crunch and serves the crepes with fresh herbs, lettuce, and a tangy fish-sauce dip.
Serves 4 · Prep 20 min · Cook 32 min · Total 1 hr 22 min
Ingredients
- 1 1/2 cups (210 g) rice flour, not glutinous rice flour
- 1/4 cup (30 g) tapioca starch
- 1/2 teaspoon (1.5 g) ground turmeric
- 1/2 teaspoon (3 g) fine salt
- 1/2 cup (120 ml) canned coconut milk, well stirred
- 1 1/4 cups (300 ml) cool water
- 2 medium scallions (about 15 g), thinly sliced
- 8 ounces (225 g) ground pork
- 8 ounces (225 g) peeled, deveined shrimp, tails removed
- 1 small yellow onion (about 100 g), thinly sliced
- 2 cups (120 g) mung bean sprouts, rinsed and drained
- 3 tablespoons (45 ml) neutral oil, such as canola or sunflower oil, plus a little more if needed for the pan
- 1/4 teaspoon (0.5 g) ground black pepper
- 2 tablespoons (30 ml) fish sauce, divided between the filling and dipping sauce
- 2 tablespoons (30 ml) fresh lime juice
- 2 tablespoons (25 g) granulated sugar
- 1/4 cup (60 ml) warm water
- 1 small garlic clove (about 3 g), finely minced
- 1 small red chili (about 5 g), thinly sliced, or to taste
- 1 head butter lettuce (about 300 g), leaves separated and washed
- 1 packed cup (20 g) mixed fresh mint, cilantro, and Thai basil leaves
- 1 small cucumber (about 200 g), thinly sliced, for serving
Instructions
- Mix and rest the batter. In a medium bowl, whisk the rice flour, tapioca starch, turmeric, and salt. Gradually whisk in the coconut milk and water until smooth; scrape the bowl so no dry flour is hiding at the bottom. Stir in the scallions. The batter should be thin enough to swirl around a pan, similar to light cream. Cover and let it rest at room temperature for 30 minutes. Stir again just before cooking because the flour can settle.
- Prepare the filling and dipping sauce. While the batter rests, slice the onion, rinse and drain the sprouts, wash the herbs and lettuce, and arrange the cucumber. For the sauce, stir the lime juice, sugar, warm water, garlic, chili, and 1 tablespoon (15 ml) of the fish sauce until the sugar dissolves. Taste and adjust with a little more lime or water if you prefer a sharper or milder dip. Keep the remaining fish sauce for the filling.
- Cook the pork and shrimp. Heat 1 tablespoon (15 ml) of oil in a large skillet over medium-high heat. Add the ground pork and onion; cook for about 5 minutes, breaking up the pork, until the onion softens and the pork is browned. Check the pork with a food thermometer: the USDA FSIS safe minimum internal temperature for ground pork is 160°F (71°C). Transfer it to a plate. Add another teaspoon of oil if the pan looks dry, then cook the shrimp for about 2 to 3 minutes, turning once, until opaque and 145°F (63°C) at the thickest part. Toss the cooked filling with the pepper and the remaining 1 tablespoon (15 ml) fish sauce. Set aside.
- Heat the pan. Wipe out the skillet if there are browned bits that could burn. Set it over medium-high heat and add about 1 teaspoon of oil, swirling to coat the bottom. A 10-inch (25 cm) skillet makes crepes that are large enough to fold but still manageable. The pan is ready when a small drop of batter sizzles immediately.
- Cook the first crepe. Whisk the batter, then pour in about 1/2 cup (120 ml), tilting the pan at once so the batter forms a thin layer across the base. Scatter one-quarter of the pork mixture and shrimp over one half, then add about 1/2 cup (30 g) of sprouts. Cover the pan for 2 minutes to soften the sprouts and cook the batter’s top. Remove the lid and cook for another 3 to 4 minutes, until the edges look dry, lift easily, and turn crisp and golden. If the crepe is still pale or soft, give it another minute rather than trying to fold it too early.
- Fold and finish the remaining crepes. Run a thin spatula around the edge, fold the empty half over the filling, and slide the crepe onto a plate. Repeat with the remaining oil, batter, pork, shrimp, and sprouts, whisking the batter before each pour. Adjust the heat as you go: if the edges darken before the center sets, lower the heat slightly; if the batter sits without sizzling, raise it. Serve each crepe as soon as it is cooked so its crisp edges do not soften while waiting.
- Eat at the table. Cut each crepe into manageable pieces. Spoon a little dipping sauce over a piece or dip it, then wrap it in lettuce with mint, cilantro, Thai basil, and cucumber. The crepe is crispest straight from the pan, while the cool herbs and lettuce provide a fresh contrast.
Tips
- Use the right flour. Look for plain rice flour, not sweet or glutinous rice flour. Glutinous rice flour behaves differently and makes a sticky, chewy batter rather than the thin, crisp crepe this recipe is meant to produce. Tapioca starch helps create a brittle edge; if you cannot find it, replace it with the same amount of rice flour, knowing the result may be a little less crisp.
- Rest, then remix. The 30-minute rest gives the dry ingredients time to hydrate, helping the crepes cook evenly. Rice flour settles quickly, so whisk the batter before every crepe. If it thickens while standing, add water 1 tablespoon (15 ml) at a time until it pours and spreads readily.
- Keep the batter layer thin. Pour into a hot, lightly oiled pan and tilt promptly. A thick layer can stay doughy in the middle before the edges crisp. Use a thin spatula and wait for the crepe to release naturally; scraping it up too soon can tear the delicate crust.
- Choose practical swaps carefully. If fish sauce is unavailable, use soy sauce in the filling and dip, starting with less because its saltiness varies; the sauce will taste less traditionally savory. For a shellfish-free version, omit the shrimp and use an equal weight of extra ground pork or thinly sliced mushrooms.
Serving Suggestions
Serve bánh xèo hot, with the dipping sauce in small bowls and the lettuce, herbs, and cucumber on a shared platter. In Vietnam, serving styles vary by region and household: the crepe may be eaten by tearing off a piece and wrapping it in greens, or by placing a portion in lettuce and dipping it. Either approach keeps the crisp crepe, savory filling, fresh herbs, and bright sauce together in each bite.
For a fuller meal, offer steamed jasmine rice or a simple vegetable side, though the crepes are filling enough to serve on their own. Put out extra lime wedges and sliced chili so diners can adjust the dip. If serving several people, bring crepes to the table in batches rather than stacking them; trapped steam softens their edges. Let each person assemble bites as they eat.
Variations
Make it vegetarian: Replace the pork and shrimp with about 12 ounces (340 g) of sliced mushrooms and 8 ounces (225 g) of firm tofu, pressed and cubed. Brown the mushrooms until their moisture has evaporated, then add the tofu and a splash of soy sauce. Use soy sauce or a vegetarian fish-sauce alternative in the dip. These fillings are less traditionally seafood-forward but work well with the same crisp batter and herbs.
Adjust the filling: Thinly sliced pork can stand in for ground pork; cook it until it reaches 145°F (63°C), then let it rest for 3 minutes, as recommended for whole cuts of pork. You can also use only shrimp or only pork, keeping the total filling amount similar so the crepes fold without splitting. Add extra sprouts for a lighter, crunchier filling, but avoid overfilling.
Change the batter carefully: Some regional and family versions use different proportions of rice flour, coconut milk, or water, and some add beer for a lighter, crisp shell. For this recipe, you can replace up to 1/2 cup (120 ml) of the water with plain beer; the batter will have a subtle malty note. Keep the overall liquid amount the same and still rest and whisk the batter before cooking.
Storage and Reheating
For the best texture, cook only as many crepes as you plan to serve. Refrigerate leftover cooked crepes and filling within 2 hours, ideally in separate airtight containers; the crepes will soften as they sit. They keep for 3 to 4 days in the refrigerator. Store the lettuce, herbs, cucumber, and dipping sauce separately so the greens stay fresh and the crepes do not become wet.
Reheat crepes in a lightly oiled skillet over medium heat for 2 to 3 minutes per side, turning once, until hot and crisping again. Reheat pork and shrimp separately in a covered skillet with a teaspoon of water, or in the microwave in short intervals, stirring where possible; all leftovers should reach 165°F (74°C). Avoid reheating the fresh herbs and lettuce. Freezing is possible, but the crepes usually lose some crispness after thawing; place parchment between them and freeze for up to 2 months for best quality.
Frequently Asked Questions
Is bánh xèo made with rice flour?
Yes. Rice flour is the main flour in this batter, and turmeric gives the crepe its yellow color. This recipe adds tapioca starch for extra crispness. Do not substitute glutinous rice flour, which is much stickier and will not give the same thin, crisp result.
Why are my crepes not crispy?
The pan may not be hot enough, the batter may be too thick, or the crepe may be crowded with filling. Make sure the batter is thin and well stirred, use only a light coating of oil, and let the crepe cook uncovered until its edges are dry and golden. A lid is useful only briefly to soften the sprouts and set the top; leaving it on traps steam and can soften the crust.
Can I make the batter ahead?
You can mix the batter a few hours ahead and refrigerate it, covered. Before cooking, let it sit out briefly so it is not ice-cold, then whisk thoroughly because the rice flour settles. The recipe’s 30-minute rest is still useful, but there is no need to leave batter with coconut milk at room temperature for several hours.
Can I make these without coconut milk?
Yes. Replace the 1/2 cup (120 ml) coconut milk with the same amount of water. The crepes will taste less rich and have a slightly lighter coconut aroma, but the batter will still cook. Keep the total liquid amount unchanged, then adjust with a spoonful of water only if the rested batter seems too thick to swirl.
What can I use instead of bean sprouts?
Thinly sliced cabbage is a convenient substitute. Add a modest handful to each crepe and cook it briefly under the lid so it softens without releasing too much moisture. Finely sliced snow peas also work, though they remain crunchier. Drain washed vegetables well; excess water can make the filling wet and interfere with crisping.
How do I keep the first crepe warm while cooking the rest?
Ideally, serve each crepe as it comes off the pan. If needed, place cooked crepes in a single layer on a wire rack in a low oven set to 200°F (95°C) for a short time. Do not cover or stack them, since trapped steam softens the edges. For the crispiest result, keep the wait brief and bring the whole batch to the table promptly.
Related
- Nigerian Porridge Recipe: Rich Yam Asaro with Spinach
- Nigerian Rice Cake (Masa): A Soft Fermented Rice Recipe
- Nigerian Jollof Rice: History and a Reliable Recipe
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).