Quick Recipe Version (TL;DR)
Quick Ingredients
- Rice cakes: 1 cup (130 g) rice flour, 2 tbsp (18 g) tapioca starch, 1 tsp sugar, 1/4 tsp fine salt, 2 cups (480 ml) water, 1 tsp neutral oil
- Shrimp topping: 10 oz (280 g) raw shrimp (peeled), 1 tbsp annatto oil (or 1 tbsp oil + 1/2 tsp paprika), 1 garlic clove, 1/2 tsp fish sauce, 1/2 tsp sugar, pinch white pepper
- Scallion oil: 1/4 cup neutral oil, 1/3 cup finely sliced scallions, 1/8 tsp salt
- Crispy shallots: 2 medium shallots (thinly sliced), 1/2 cup oil for frying, pinch salt
- Nuoc cham: 1/4 cup fish sauce, 1/4 cup sugar, 1/2 cup warm water, 2 tbsp fresh lime juice, 1 small garlic clove (minced), 1 small red chili (sliced, optional)
Do This
- 1. Prep a steamer with 1–2 inches of water and bring to a rolling boil; warm 24 small heatproof sauce cups inside.
- 2. Whisk rice flour, tapioca, sugar, salt, and water until smooth; rest 5–10 minutes, then whisk in 1 tsp oil.
- 3. Mince shrimp; cook in annatto oil with garlic, fish sauce, sugar, and pepper until dry, crumbly, and orange (4–6 minutes).
- 4. Make scallion oil: heat oil until shimmering; stir in scallions and salt; set aside. Fry shallots until pale gold (5–7 minutes); drain and salt.
- 5. Steam cakes: stir batter; fill hot cups 1½ tbsp each; steam 4–5 minutes until just set and glossy. Repeat in batches.
- 6. Mix nuoc cham; top warm cakes with shrimp, drizzle scallion oil, finish with crispy shallots. Serve with dipping sauce.
Why You’ll Love This Recipe
- Classic Hue-style flavors in an approachable home-cook method.
- Tender, springy rice cakes with a perfect dimple to catch savory toppings.
- Bright, balanced nuoc cham and fragrant scallion oil elevate every bite.
- Make-ahead components make entertaining stress-free.
Grocery List
- Produce: Scallions, shallots, garlic, limes, red chili (optional)
- Dairy: None
- Pantry: Rice flour, tapioca starch, fish sauce, sugar, neutral oil, salt, white pepper, annatto seeds or paprika
- Seafood: 10 oz (280 g) raw shrimp, peeled and deveined
Full Ingredients
Rice Cake Batter
- 1 cup (130 g) rice flour (Asian rice flour, not glutinous)
- 2 tbsp (18 g) tapioca starch
- 1 tsp granulated sugar
- 1/4 tsp fine salt
- 2 cups (480 ml) room-temperature water
- 1 tsp neutral oil (plus extra for greasing, if needed)
Shrimp Topping
- 10 oz (280 g) raw shrimp, peeled and deveined
- 1 tbsp annatto oil (or 1 tbsp neutral oil + 1/2 tsp sweet paprika for color)
- 1 large garlic clove, minced
- 1/2 tsp fish sauce
- 1/2 tsp granulated sugar
- 1/8 tsp ground white pepper
- Pinch of salt, to taste
Scallion Oil
- 1/4 cup neutral oil
- 1/3 cup finely sliced scallions
- 1/8 tsp fine salt
Crispy Shallots
- 2 medium shallots, thinly sliced into rings (about 1/2 cup)
- 1/2 cup neutral oil (for frying)
- Pinch of salt
Light Nuoc Cham (Dipping Sauce)
- 1/2 cup warm water
- 1/4 cup granulated sugar
- 1/4 cup fish sauce
- 2 tbsp fresh lime juice (or unseasoned rice vinegar)
- 1 small garlic clove, finely minced
- 1 small red chili, thinly sliced (optional)
To Serve
- Crispy shallots, scallion oil, shrimp topping (from above)
- Nuoc cham for dipping
- Freshly ground white or black pepper (optional)

Step-by-Step Instructions
Step 1: Set up your steamer and cups
Fill a large pot or wok with 1–2 inches of water and set a steamer rack inside. Line the lid with a clean kitchen towel to catch condensation. Arrange 24 small heatproof sauce cups or condiment dishes (about 2.5 inches wide) in the steamer. Bring the water to a lively boil over medium-high heat and let the cups preheat for 3–4 minutes. Keep a kettle of hot water nearby to top up the steamer if needed.
Step 2: Make the rice-cake batter
In a bowl, whisk together the rice flour, tapioca starch, sugar, and salt. Gradually whisk in the water until completely smooth (strain through a fine sieve into a spouted measuring jug for easy pouring). Let the batter rest 5–10 minutes to relax bubbles, then whisk in 1 tsp oil. The batter should be thin, like heavy cream; if it looks noticeably thicker, whisk in 1–2 tbsp more water.
Step 3: Cook the shrimp topping
Finely chop the shrimp by hand until minced (avoid making a paste). Heat the annatto oil in a nonstick skillet over medium heat. Add the garlic and stir for 10–15 seconds until fragrant. Add the shrimp, fish sauce, sugar, and white pepper. Cook, stirring and breaking the shrimp into fine crumbles, until the mixture turns bright orange and most moisture evaporates, 4–6 minutes. Taste and add a tiny pinch of salt if needed. Keep warm off heat.
Step 4: Make scallion oil
Stovetop method: Warm 1/4 cup oil in a small saucepan over medium heat until shimmering. Remove from heat, stir in the scallions and salt, and let them sizzle and soften for 30–60 seconds. Microwave method: Combine oil and scallions in a heatproof bowl and microwave until bubbling, 45–60 seconds; stir in salt. Set aside.
Step 5: Fry crispy shallots
Heat 1/2 cup oil in a small saucepan over medium-low to 250–275°F (120–135°C). Add sliced shallots and fry, stirring often, until pale golden (they will deepen as they cool), 5–7 minutes. Use a slotted spoon to transfer to a paper-towel-lined plate; immediately season with a pinch of salt. Reserve 1–2 tbsp of the flavorful shallot oil for drizzling if you like.
Step 6: Steam the rice cakes
Give the batter a quick stir. Carefully pull the steamer rack forward. Pour about 1½ tbsp batter into each hot cup (filling them halfway). Cover and steam over steady medium-high heat until the cakes are just set, glossy on top, and a small dimple forms in the center, 4–5 minutes. If the lid gathers water, lift and wipe it quickly before replacing. Remove the cups to a tray, refill the steamer with more cups, and repeat until all batter is used. Let each batch cool 1–2 minutes before topping.
Step 7: Mix sauce, assemble, and serve warm
For the dipping sauce, dissolve sugar in warm water, then stir in fish sauce, lime juice, garlic, and chili. To serve, leave the cakes in their cups or unmold with a thin spatula. Top each cake with a spoonful of minced shrimp, drizzle 1/2–1 tsp scallion oil, and finish with a pinch of crispy shallots and a crack of pepper. Serve immediately with small bowls of the light nuoc cham.
Pro Tips
- Keep the cups hot: preheating helps the cakes set quickly and form that signature center dimple.
- Stir the batter before every pour; flour settles fast and affects texture.
- Wrap the steamer lid with a towel to prevent water from dripping onto the cakes and pitting the surface.
- Texture tuning: if cakes are dense and flat, whisk 1–2 tbsp water into the batter; if they’re too thin with deep wells, whisk in 1 tbsp rice flour.
- Save shallot oil: it’s liquid gold for drizzling or for greasing cups lightly in place of plain oil.
Variations
- Dried shrimp “floss”: Soak 1/2 cup small dried shrimp in hot water 10 minutes; drain, pulse to coarse crumbs, then dry-sauté with 1 tbsp annatto oil, 1 tsp sugar, and 1/2 tsp fish sauce until fluffy and fragrant, 6–8 minutes.
- Vegan version: Replace shrimp with finely minced sautéed shiitake and crumbled firm tofu; use soy sauce (or vegan fish sauce) in both topping and dipping sauce.
- Pressure cooker steaming: Use the steamer rack on “Steam” setting with cups covered loosely with foil; most batches set in 4 minutes at high steam with quick release.
Storage & Make-Ahead
Batter can be mixed up to 24 hours ahead; cover and refrigerate, then bring to room temperature and whisk before using. Cooked shrimp topping keeps 2 days refrigerated. Scallion oil and crispy shallots keep 5–7 days in airtight containers (store shallots at room temp, oil in the fridge). Nuoc cham keeps 1 week chilled. Store un-topped cakes, covered, up to 2 days; reheat by steaming 1–2 minutes until warm and supple, then finish with toppings just before serving. Assembled cakes are best within 15 minutes.
Nutrition (per serving)
Approximate values for 1 serving (about 6–7 cakes): 380 calories; 15 g fat; 48 g carbohydrates; 16 g protein; 2 g fiber; 1250 mg sodium. Actual values will vary with portioning and how much oil/sauce is used.
