Xôi Xéo: Hanoi Turmeric Sticky Rice with Shaved Mung Bean

Vietnamese xôi xéo: turmeric-yellow sticky rice on a plate, topped with thin shavings of mung bean and fried shallots
Serves
4 servings
Level
Intermediate
Cuisine
Vietnamese

Xôi xéo, Hanoi's turmeric sticky rice with shaved mung bean. Learn to soak and steam, shape the beans while warm, and choose the fat and fried shallots.

Cooking flow

Cooking steps

STEP 11 / 8

Soak the rice in turmeric water

Glutinous rice soaking in pale yellow turmeric water in a clear glass bowl, with a small dish of turmeric powder beside it
The water should be a clear pale yellow, never orange or cloudy brown

Rinse 8 oz (225 g) glutinous rice and drain it. Fill a bowl with plenty of water, stir in ¼ tsp turmeric powder until it dissolves, and add the rice. Leave it for at least 2–3 hours; overnight is fine. The soak does two jobs at once, softening the core of each grain and carrying the colour in. It is ready when the water is pale yellow and the grains have swelled and turned opaque white.

STEP 22 / 8

Soak the beans separately

Peeled split mung beans soaking in clear water, spread across the bottom of a glass bowl
The bean water stays colourless; turmeric goes only on the rice

Rinse 3½ oz (100 g) peeled split mung beans and put them in a second bowl with plenty of plain water. Soak them alongside the rice, at least 2–3 hours. Soaked beans steam faster and mash smoothly, which matters for the shaping later. Move on when the beans look plump and slightly paler.

STEP 33 / 8

Steam the rice

Turmeric-yellow sticky rice spread evenly in a muslin-lined bamboo steamer, steam rising as the lid is lifted
Lift the lid only to check and turn; the grains should stay separate and golden, never sitting in water

Line the steamer with muslin and bring the water underneath to a boil. Drain the rice well, toss it with ½ tsp salt, and spread it in an even, thin layer on the cloth. Steam over medium heat, keeping a steady flow of steam, for 25–30 minutes, turning the rice over once halfway so the top and bottom cook evenly. Bite a grain: it is done when it is tender all the way through with no hard core.

STEP 44 / 8

Fold in coconut milk (optional)

Optional step: coconut milk poured in a thin stream over steamed yellow sticky rice while a wooden spoon folds it through
Pour slowly and fold, so the grains stay whole and no pool forms under the rice

For softer, richer rice, drizzle 3–4 tbsp (45–60 ml) coconut milk over the steamed rice and fold it through gently with a wooden spoon. Cover and steam for 2–3 minutes more. For the plain version, skip straight to the beans. The rice is ready when the milk has soaked into the grains and the surface looks glossy rather than wet.

STEP 55 / 8

Steam the beans

Steamed peeled split mung beans in a shallow bowl, steaming, some crushed into a rough mash at the front
Press a few with a spoon to test; they should collapse into a rough mash with no hard bits

Drain the beans, toss them with ¼ tsp salt, and spread them on the muslin in the second tier, or in the same steamer once the rice is off. Steam for 15–20 minutes. Taste one and add a little more salt if the beans taste flat. They are done when a bean crushes flat under your finger with no powdery center.

STEP 66 / 8

Mash and shape the beans while warm

Warm mashed mung bean paste being pressed into a round ball by hand, with a finished ball on a plate and more paste in the bowl
The paste should be fine enough that no single bean shows when you press it

Tip the beans into a bowl, shake off any loose drops of water, and let them cool just until you can handle them. While they are still warm, mash them in a mortar or food processor until no coarse grains remain. Divide the paste in two and press each half firmly into a ball. The ball holds together and its surface is smooth when it is right.

Shape the beans warm

Warmth is what binds the paste. Bean paste that has gone cold crumbles when you shape it and falls apart when you shave it. Mash and press as soon as the beans are cool enough to hold.

STEP 77 / 8

Plate the rice and shave the beans

A knife shaving very thin slices from a mung bean ball onto a mound of turmeric-yellow sticky rice, with a second ball waiting on a board
Slices thin enough to drape over the rice, not sit on it as chunks

Spoon the warm rice into a mound on each plate. Hold a bean ball in one hand and, with a sharp knife, shave thin slices off it so they drop straight onto the rice. Turn the ball as you go and start the second one when the first runs out. Stop when a thin, pale layer of bean drapes over the rice.

STEP 88 / 8

Add the shallots and serve

Fried shallots being scattered from a small bowl over sticky rice covered with thin mung bean shavings
The shallots go on top of the bean layer, so they stay dry and crisp

Scatter a generous handful of fried shallots over each plate. Do this at the last moment, right before the plates go to the table, because the steam from the rice softens them quickly. Serve immediately, while the rice is still warm and the shallots still crackle under the spoon.

0 / 0
Ingredients

Ingredients

1 / 1

Ingredients

Ingredient Amount Role
Glutinous rice (gạo nếp) about 1½ cups / 8 oz (225 g) The base; chewy grains and gentle sweetness
Turmeric powder (bột nghệ) ¼ tsp Colours the rice during the soak
Peeled split mung beans (đậu xanh cà vỏ) 3½ oz (100 g) Steamed, mashed, shaped and shaved over the rice
Salt for the rice (muối) ½ tsp Seasons the rice before steaming
Salt for the beans (muối) ¼ tsp, plus a little to taste Seasons the beans before steaming
Coconut milk (nước cốt dừa), optional 3–4 tbsp (45–60 ml) Softer, richer rice in place of the street fat
Fried shallots (hành phi) as needed Crunch and toasted aroma on top
0 / 0

Before Hanoi is fully awake, the yellow rice is already out. At market gates and on street corners, a vendor lifts the cover off a bamboo basket, steam rolls up, and a scoop of turmeric-gold sticky rice goes onto a square of banana leaf. Thin, pale shavings of mung bean fall over it, then a spoon of liquid fat and a shower of fried shallots, and the bundle is folded up for someone on the way to class or to work. That is xôi xéo, the sticky-rice breakfast of northern Vietnam. The rice is soft and chewy, the bean layer is smooth and mild against it, and the shallots bring crunch and a toasted, sweet smell.

A Hanoi Breakfast from a Bamboo Basket

On the street at dawn

No place in Vietnam sets out as many kinds of xôi as Hanoi, and xôi xéo is one of the most popular. It is sold from early morning at markets and on corners, and vendors keep it warm in bamboo baskets carried on the shoulder or strapped to the back of a bicycle. Portions are wrapped in banana leaf and old newspaper. In 2019 a serving cost 5,000–7,000 dong, which is why it fed so many students and manual workers: cheap, and filling enough to carry someone to lunch.

The fat is part of the street version. Vendors pour chicken or pork fat over the rice while it is still liquid, and in the cold months they keep a charcoal brazier going beside the basket so the fat never sets. People customise their plate. Some ask for a heavy pile of ruốc, finely shredded and fried salty pork; children tend to ask for more bean and more shallots. The ingredients are the same everywhere (sticky rice, turmeric, mung bean, shallot and fat), and still xôi xéo is counted among the hardest xôi to make well. The difficulty sits almost entirely in the beans.

What the name means

Xôi is steamed sticky rice. Xéo is harder to pin down, and where the name came from is not settled. One explanation makes xéo another word for beans; another notes that it is also a rude way of telling someone to go away; another ties it to cắt xéo, cutting at an angle, for the way the bean ball is shaved; some say it means to mash. In English it is often called sticky rice with hand-cut mung bean, which describes the dish without settling the word.

How it differs from other xôi

The bean is what sets xôi xéo apart from its neighbours. In xôi vò, mung bean is ground fine and rubbed over the rice grains so every grain is coated. In xôi đỗ xanh, the beans are mixed into the rice and steamed together. Plain xôi has no bean and no turmeric at all. Xôi xéo keeps the two apart: the beans are steamed, mashed, pressed into a ball and shaved thin with a knife, so they sit on top of the rice as a separate pale layer. Bánh chưng, the leaf-wrapped cake, shares the same pairing of sticky rice and mung bean in a completely different form.


Ingredients (serves 4)

Ingredients for xôi xéo laid out on a wooden counter: white glutinous rice, peeled split mung beans, turmeric powder, salt, coconut milk and fried shallots, with a muslin cloth and bamboo steamer at the edge
Six foods only; the beans should be yellow and split, with no green skins

Salt goes in twice, in separate amounts, once on the rice and once on the beans. That split is what makes each layer taste seasoned on its own.

Keep the salt split

Put ½ tsp on the rice and ¼ tsp on the beans, never all of it in one place. If one layer tastes flat at the table, the salt went into the other one.

Allergen information

The base is rice, mung bean, salt and turmeric; coconut milk is optional. Store-bought fried shallots are sometimes coated in flour or starch before frying, so read the ingredient label on the pack before you buy.

Equipment

  • Steamer, ideally with two tiers, or a bamboo steamer basket set over a pot
  • Muslin or cheesecloth to line the steamer
  • Two bowls for soaking, and a sieve or colander for draining
  • Mortar and pestle or a food processor
  • A sharp knife that cuts thin slices
  • Wooden spoon

Choosing and Substituting

Glutinous rice is the one thing you cannot swap. Japanese or Korean short-grain glutinous rice and Thai glutinous rice both work; ordinary rice makes a different dish entirely. Variety and freshness change how quickly the grains absorb water and cook through, so judge by the bite in the steaming step rather than changing the amount.

The beans are the ingredient worth a trip. Look in Chinese, Southeast Asian or Indian grocers for peeled split mung beans, sold as split mung bean or moong dal: small, flat, yellow and skinless. Whole skin-on mung beans will turn the topping greener and the mash coarser, and the thin shavings that define the dish become harder to cut.

Turmeric powder from the spice aisle does the colouring, and a small jar lasts a long time. Coconut milk comes in cans or cartons; you need only a few spoonfuls, so a small carton saves waste. Fried shallots are sold in Vietnamese, Thai and Indian shops, and fried onions from a supermarket stand in with a slightly different flavour.

The coconut milk takes the place of the chicken or pork fat poured over street plates. It keeps the dish plant-based and gives softness and richness, but it tastes like coconut, not like rendered fat. Choose one or the other for a batch; mixing both blurs the dish.


Method

Start both soaks together, in two bowls side by side, at least a couple of hours ahead or the night before. After that the only heat is steam. With a two-tier steamer, the rice and beans cook at the same time on separate levels. With one tier, steam the rice first, then the beans, and warm the rice briefly in the microwave while the beans finish. Turmeric stains hard: keep it away from wooden bowls, cloth and plastic measuring spoons you care about.

Shallots go on last

Keep fried shallots sealed until the plates are ready. Sprinkle them right before eating; a few minutes on hot rice is enough to turn them chewy.

When It Goes Wrong

What you see Why What to do
The rice has a hard core Too short a soak, too little steaming, or the rice piled too thick Soak at least 2–3 hours. Spread the rice thin and keep steaming in a few minutes at a time, biting a grain after each
The rice is sticky or clumped Poorly drained, or condensation dripping off the lid Drain thoroughly in a sieve. Wrap the lid in a cloth so drips stay off the rice
The bean ball crumbles when shaved The paste cooled before shaping, or was mashed too coarsely Mash finer and shape while warm next time. If it crumbles now, scatter the pieces over the rice and serve
The beans feel gritty or powdery Understeamed, undermashed, or too wet Steam until a bean crushes under your finger, shake off excess water, and mash until smooth
The rice is too pale or too dark Turmeric mismeasured Measure ¼ tsp exactly. Adjust the amount next time instead of lengthening the soak
The shallots are soft Humidity, or sprinkled too early Store them airtight and add them only at the table

Serving, Variations and Storage

At the table

Xôi xéo is a breakfast plate eaten warm and straight away. In Hanoi it is often topped with ruốc, and modern stalls add pâté with ruốc, chả quế (cinnamon pork roll) with trứng muối (salted egg), or spicy shredded chicken, and there are meatless chay versions too. It is also good next to thịt kho tàu, sweet-salty braised pork belly, or roast chicken. Store-bought ruốc, pâté, chả quế and salted eggs are processed products; keep them as their packs instruct.

Variations

  • Street-style fat. Leave out the coconut milk. Render chicken skin and fat slowly over low heat and spoon a little of the clear fat over each plate, starting with about 1 tsp. Chicken fat is prized for a colour and aroma that other fats are said not to match; pork fat works too and tastes porkier. For mỡ hành, stir sliced scallions into the hot fat for a moment and spoon it on with the shallots.
  • Rice-cooker rice. This version skips the soak and uses its own amounts, so keep them separate from the steamer recipe. Put 10½ oz (300 g) glutinous rice in the cooker with 1 tsp turmeric and a pinch of salt, add water to ⅛–¼ inch (3–5 mm) above the rice, and cook. When the cooker switches to warm, stir, close the lid and leave it 15–20 minutes. Simmer 3½ oz (100 g) soaked split mung beans until soft, season with salt, mash finely and shape while warm. It serves 2–3.
  • Different toppings. Keep the rice and beans as they are and change only what goes on top: ruốc, pâté, chả quế with salted egg, shredded chicken, or a meatless topping. The base stays the same; the plate turns from a light breakfast into a full meal.
  • Double batch for 8. Use 1 lb (450 g) rice, 7 oz (200 g) beans, ½ tsp turmeric, 1 tsp salt on the rice and ½ tsp on the beans, and 6–8 tbsp (90–120 ml) coconut milk. A thicker load takes longer to steam, so spread it across both tiers if you can and keep checking the bite, adding a few minutes at a time.

Storage and reheating

The vendor's warm basket belongs to the street. At home, cooked sticky rice follows stricter rules.

Cooked rice safety

Cooked rice and other starchy foods that cool slowly, or sit out of the fridge, let bacteria grow and produce a toxin that reheating does not destroy. Eat xôi xéo right away, keep it hot at 60°C or above, or cool it quickly, refrigerate it, and eat it within 2 days. Do not make a big batch and leave it to cool slowly; divide it into small containers so it cools fast.

Reheat leftover rice by steaming it again; the microwave also works. Leftover bean balls go into the fridge, covered, and get a short re-steam before you shave them. Drain homemade fried shallots of all oil and keep them in an airtight container. Keep leftover rendered chicken or pork fat in the fridge and use it up soon.

Frequently asked questions

Can I use curry powder instead of turmeric?

No. Curry powder is a blend of spices, so it changes both the colour and the aroma of the rice and moves it away from xôi xéo. Plain turmeric powder is easy to find in the spice aisle.

Can I use fresh turmeric root?

Fresh root carries a different amount of pigment, so the same quantity gives a different colour. For this recipe, stick with powder and the measured amount, and the rice comes out the right gold.

How do I make fried shallots at home?

Slice shallots thinly and let them dry well. Toss them in bột năng, which is tapioca starch and not the same as potato starch, then drop them into the frying oil all at once and turn the heat down right away. Lift them out just before they take on colour, drain off all the oil, and store them airtight once cool.

Sources