
Xoi xeo is one of Hanoi's defining breakfasts, traditionally sold from a flat woven basket carried on a shoulder pole — the vendor sits on a low stool and assembles each portion in 20 seconds onto a banana leaf or, more recently, plastic. The xeo in the name describes the slicing motion of shaving mung-bean paste off the cylinder. It belongs to the Northern xoi family (xoi xeo, xoi lac, xoi gac) that grew out of mung-bean and rice agriculture of the Red River delta — savoury sticky rices, distinct from the sweet xoi of the south.
Hanoi breakfast sold off a shoulder pole in 20 seconds per portion. The xeo means the slicing motion — shaving mung-bean paste off the cylinder. Cold-oil shallot fry is non-negotiable.
A small mound of saffron-yellow sticky rice, glossy with shallot oil, topped with a translucent yellow sliver of mung-bean paste and a pile of crisp fried shallots that audibly crackle. The rice is chewy and toothsome, not the soft-cooked porridge of southern xoi; mung-bean paste tastes faintly sweet and dense like marzipan; shallots add caramelized depth and a salty crunch. No protein, no sauce — the whole thing balances on three textures and the perfume of fresh-fried shallot. Eaten standing or on a plastic stool by 8am.
Two non-obvious moves. First, the cold-oil shallot fry: dropping shallots into already-hot oil burns the edges before the centre dehydrates; starting cold lets water leave evenly so the slices crisp through. Second, the chicken fat (mo ga) drizzled into the rice mid-steam — fat both prevents grains sticking into a clump and carries the shallot aromatics. Skipping the fat or substituting bland oil yields rice that clumps and tastes flat, no matter how good the mung-bean paste is.
Variations
Xoi xeo (turmeric, mung paste, fried shallot, the Hanoi standard); xoi lac runs with peanuts; xoi gac is the wedding-red version dyed with gac fruit; xoi che adds sweet mung soup over the rice for a dessert-breakfast hybrid.
On the Palate
Where Xoi Xeo sits in the Vietnamese flavor cloud
Ingredients
Serves 4How it's made
6 steps · 1 hour active + 7 hours waiting
- 15 min
Soak 500g glutinous rice in cold water with 1 tsp ground turmeric and 1 tsp salt for at least 6 hours, ideally overnight. The turmeric stains the grains a deep marigold yellow.
- 230 min
Soak 200g split mung beans (skinless yellow) in water 4 hours; drain. Steam beans 25 minutes until very tender. Mash hot with 1 tsp salt and 2 tbsp rendered chicken fat or neutral oil into a smooth dense paste.
- 310 min
Press hot mung-bean paste into a small loaf pan or roll tightly in muslin into a 5cm-diameter log. Cool fully — the paste sets firm enough to slice.
- 435 min
Drain rice. Spread evenly in a steamer lined with cheesecloth; poke 5 holes with a chopstick for steam channels. Steam 30 minutes over high. Drizzle 2 tbsp chicken fat or melted lard, fluff, steam another 5 minutes — the fat coats every grain.
Watch outAfter you drizzle the chicken fat and fluff, every grain should glisten and fall loose — skimp the fat and the rice clumps into a sticky mass no paste can save.
- 58 min
Slice 6 large shallots paper-thin. Fry in 200ml neutral oil over medium starting from cold oil (this is the trick — they crisp evenly without burning). About 8 minutes until deep amber. Drain on paper. Reserve the shallot oil.
Watch outStart the shallots in cold oil and let it come up slow — drop them in hot and the edges scorch before the middles dry; pull them at deep amber, they darken more off-heat.
- 63 min
Per bowl: scoop hot turmeric rice into a wide shallow bowl. Use a knife dipped in water to shave a thin disc of mung-bean paste over the top — Hanoi vendors call this xeo (the shaving motion). Drizzle 1 tsp shallot oil. Crown with a heavy pinch of fried shallots. Eat with a spoon.





