Thirty minutes in, you lift the steamer lid and a cloud rolls off a bed of white rice flecked with yellow. The grains have swollen and turned opaque, the beans have gone soft at the edges, and the surface is still matte. Then a thin stream of oil goes over it, the paddle turns everything from the bottom, and by the time the second steam is done the whole basket shines. Xôi đỗ xanh is Vietnamese sticky rice steamed together with skinned split mung beans and seasoned only with salt and oil. It eats as chewy, separate grains of glutinous rice with crumbly, faintly sweet beans running through them, salted firmly enough to stand next to pork floss or a few slices of roast pork.
A Bowl of Sticky Rice Before School or Work
In Vietnam, xôi is the word for steamed glutinous rice, and it covers a whole family of dishes. The oldest form is plain white steamed sticky rice; over time cooks began adding mung beans, black beans, lotus seeds, peanuts, sesame, red gấc fruit and coconut, and each addition became a dish with its own name. Xôi đỗ xanh belongs to the bean branch of that family, and it stays close to the root: white rice, yellow beans, salt, oil.
Vietnam's national tourism administration describes glutinous rice as the first grain produced by the ancestors of the Tai–Kadai and Mon–Khmer peoples, and says that in ancient times people ate it rather than ordinary rice, close to a staple. Today it is no longer the everyday staple, yet xôi still turns up everywhere, from street stalls to smart restaurants, and it is always on the table at special occasions and rituals. Families also place a plate of it on the incense altar on the first and fifteenth days of the lunar month, and the rice also serves as the family breakfast.
One stall, a different bowl for everyone
Breakfast is where xôi lives most. It is quick, filling and carries people through the morning before school or work. In Hanoi's Hai Bà Trưng district, one household buys its morning xôi at a stall and orders around the table: peanut xôi for the grandparents, xôi đỗ xanh for the husband, corn xôi for the son, xôi with pork floss for the daughter. In 2017 a portion started at around 5,000 dong, cheap enough for a large family. Mung bean sticky rice is also rolled into small balls for children to hold.
In the north the dish is called xôi đỗ xanh, in the south xôi đậu xanh. Đỗ and đậu are northern and southern forms of the same word for bean, and both names point to the same dish. In English it goes by Vietnamese mung bean sticky rice.
Its neighbours on the stall
Two other mung bean dishes share the stall and are easy to confuse. Xôi xéo starts from rice dyed yellow with turmeric; mung beans are steamed separately, mashed and shaped into a ball, then sliced thin over the rice and finished with fried shallots and fat. Xôi vò is steamed rice fanned cool and rubbed with ground mung beans until every grain stands apart. Xôi đỗ xanh mixes whole split beans into the raw rice and steams them together, so the rice stays white and the beans keep their shape. Red xôi gấc, corn xôi ngô and peanut xôi lạc are separate dishes again. Bánh chưng, the square New Year cake, also pairs sticky rice with mung beans and pork, but there the beans become a filling wrapped inside. For more of the country's cooking, see Vietnam.
Ingredients

Pork floss, sesame salt, char siu, roast pork or pork stir-fried with scallion go on the side, chosen to taste. They are accompaniments, so they sit outside the base recipe.
The beans you want are yellow halves with the green skin removed. They soften fully in the time the rice needs. Whole green mung beans cook more slowly and change the texture of the finished dish, so leave them for another recipe.
The base recipe contains rice and mung beans (a legume). The accompaniments carry their own allergens: some pork floss is made with seafood stock, sesame salt contains sesame, and char siu and roast pork are often seasoned with soy and wheat. Check the labels of anything you serve alongside.
Equipment
- Two bowls for soaking, one large and one smaller
- A colander
- A steamer (bamboo basket or metal steamer) over a pot of boiling water; one at least 9½ inches (24 cm) across holds the full amount, otherwise steam in two batches
- A clean, thin cotton cloth to line the steamer
- A chopstick and a wooden rice paddle
Choosing the Rice and the Beans
In Vietnam the favoured rice is nếp cái hoa vàng, a fragrant glutinous variety. Abroad, Japanese short-grain glutinous rice (sold as mochi rice or sweet rice) is a good replacement; the fragrance and the exact chew shift a little with the variety, and the dish still reads as xôi. Look for "glutinous" or "sweet rice" on the bag in Asian grocers.
Mung beans come in two forms: whole beans in their green skins, and moong dal, the yellow skinned split kind. Buy the yellow split beans. Mung bean sprouts come from the same bean but have nothing to do with this dish.
The oil should be neutral, such as vegetable or rice bran oil, so the rice and beans keep their own taste. Coarse salt is the seasoning the amount is built on. Fine table salt packs more saltiness into the same spoon, so with fine salt the result lands saltier. Keep the rice glutinous, the beans skinned and split, the salt firm and the finish glossy with oil; those four keep it true to the dish.
Method
Almost all the time goes into soaking, and you can ignore it. Start the rice in the morning or the night before, start the beans about four hours before you want to steam, and both will be ready together. The active work is short: drain, salt, a 30-minute first steam, oil, and a 10-minute second steam.
When It Goes Wrong
| What you see | Why | What to do |
|---|---|---|
| Rice or beans still hard in the centre | Soaking stopped too early, steam escaped, or the steamer was too full for steam to reach the middle | Cover and steam a few minutes more at a time. Next time, judge the soak by the grain and split the full amount into two batches |
| Bottom layer mushy and stuck together | Boiling water touched the cloth, or the mixture went in wet | Scrape the good rice off the top. Next time drain until nothing drips and keep the water well below the basket |
| Clumps after the second steam | The rice was not turned from the bottom, or the oil sat in one spot | Turn and break up the clumps with the paddle while hot, then steam briefly again |
| Rice feels heavy and greasy | More oil than the rice can take up | Serve with plain, lean sides. Measure the oil next time; it stays the same for the full amount |
| Too salty at the table | Fine salt measured by the same spoon, plus salty accompaniments | Pair it with milder sides. Next time use coarse salt |
| Leftovers have gone hard | Sticky rice firms up when chilled | Steam it again or warm it in the microwave until soft and hot through |
Serving, Variations and Storage

What goes with it
The classic partners are pork floss and sesame salt, the fluffy salty floss heaped on one side of the bowl and a pinch of sesame salt scattered over. On fuller mornings add slices of char siu or roast pork, or pork stir-fried with scallion. At home some families also eat it with fried onions, a mix of toasted sesame and peanuts, or coconut flakes. At Tết and other celebrations it turns up as a side to rich savoury dishes such as caramelised braised pork. Choose one or two sides; the rice carries salt already, and two salty meats on top of it overwhelm the beans.
Variations
- More beans. Steam 1 lb 2 oz (500 g) glutinous rice with 9 oz (250 g) split mung beans, about 1 tsp salt and 2 tbsp oil or chicken fat. This version steams for 45 minutes, stirred every 10 minutes, then 5 minutes more after the fat goes in. The bean flavour leads and chicken fat adds a savoury, meaty gloss.
- Rice cooker with coconut milk. Soak 5½ oz (150 g) glutinous rice and 3½ oz (100 g) split mung beans for 1 hour, then cook them in a rice cooker with a scant ½ cup (100 ml) coconut milk, ⅔ cup (150 ml) water and a pinch of salt. It is softer and tastes of coconut, a weekday option when the steamer stays in the cupboard.
- Southern sweet finish. Spoon a little thick coconut milk over the finished rice and scatter toasted sesame on top. The salt stays underneath and the bowl tips toward a snack.
- Two batches. With a small steamer, divide the same amounts in half and steam one batch while you prepare the next. The recipe stays the same; only the layer gets thinner and cooks more evenly.
Storage
Cook what you will eat and eat it soon after steaming. Cooked rice carries bacterial spores that survive steaming; left at room temperature, they germinate, multiply and can produce a toxin that causes vomiting. The oil keeps the grains soft, and soft rice is still rice to handle with care, so do not leave it out on the counter. If it has to wait, keep it hot at 149°F (65°C) or above, or chilled at 46°F (8°C) or below. Divide leftovers into small covered containers, refrigerate them promptly and eat them soon. Reheat by steaming again or in the microwave until hot throughout.
Frequently Asked Questions
Can I soak the rice overnight?
Yes. Setting the rice to soak the night before is the easiest rhythm. Start the beans about 4 hours before you plan to steam, so both finish soaking at the same time.
Can I use jasmine or ordinary rice?
No. The stickiness of glutinous rice is the backbone of xôi, and ordinary rice steamed this way stays dry and loose with none of the chew. Any short-grain glutinous rice works.
Why does the salt go in before steaming?
Salting the drained rice and beans lets the seasoning travel into each grain as the steam softens it. Salt sprinkled on at the end sits on the surface and tastes sharp in some bites and flat in others.
Do I need a banana leaf?
A banana leaf under the rice is optional and adds a light grassy aroma. The cotton cloth is what matters, since it holds the grains above the holes in the basket and lets the steam through.














