Xôi Sắn: Hanoi Cassava Sticky Rice Steamed Twice

A bowl of Vietnamese cassava sticky rice, xôi sắn, topped with scallion oil, fried shallots and shredded coconut
Serves
6 servings
Level
Intermediate
Cuisine
Vietnamese

Xôi sắn, Hanoi's cold-season street food of sticky rice and cassava. How to peel and soak cassava safely, steam it twice, and finish with scallion oil.

Cooking flow

Cooking steps

STEP 11 / 11

Soak the sticky rice

A stainless bowl of sticky rice soaking under plenty of water, a hand lifting a few grains
Lift a few grains and press them; well-soaked rice snaps under a fingertip

Wash the glutinous rice and cover it with plenty of water. Leave it to soak for 6–8 hours, changing the water 2–3 times. When the soak is done, rinse the rice gently without scrubbing, then drain it well in a colander. The rice is ready when a grain breaks easily between your fingers. If the water turns cloudy and smells sour, change it right away.

STEP 22 / 11

Peel and cut the cassava

Hands peeling cassava thickly on a cutting board, white flesh exposed, thumb-sized pieces beside a bowl of water
Take the peel off thickly; the discarded skin should pile up generously beside the board

Cut both ends off the cassava deeply, well past the point where the flesh looks clean. Peel away the thick brown skin and the layer beneath it, going deep rather than thin. Wash the peeled root and break it into thumb-sized chunks. Throw the peelings away. The chunks are ready when every surface shows clean white flesh with no brown skin left.

STEP 33 / 11

Soak the cassava in salt water

STEP 3

Put the cassava chunks in a bowl of salted water and soak them for 8–12 hours. Change the water 3–4 times. Each time, rub the chunks with your hands to loosen the sticky sap. Pour every batch of soaking water down the drain. The cassava is ready when the cut surfaces are white and the slippery, gluey feel of the sap has gone.

STEP 44 / 11

Fry the shallots and shred the coconut

Sliced shallots frying to pale gold in a small pan, some lifted onto a paper-lined plate, beside a bowl of green scallion oil
Pull the shallots while they are still light gold; the scallion oil beside them stays vivid green

Shred the coconut flesh into thin strips and set it aside. Slice the shallots thinly and put them in a small saucepan with enough oil to cover them, starting from cold oil. Fry over medium heat, stirring now and then, and lift them out with a slotted spoon onto a paper-lined plate the moment they turn pale gold. They keep darkening for a few seconds after they leave the oil, so pull them early. Cooled, they should be light golden and crisp.

STEP 55 / 11

Make the scallion oil

STEP 5

Slice the scallions into thin rounds. Heat 3 tbsp oil in a pan; the shallot frying oil works well here. Add the scallions and stir for about 5 seconds, then turn off the heat and tip everything into a small bowl. The scallion oil is right when the scallions are bright green and fragrant, wilted but not darkened.

STEP 66 / 11

Mix the rice and cassava

Hands tossing drained sticky rice with whole cassava chunks in a large bowl, coarse salt on a spoon at the side
Toss with open hands so the cassava chunks stay whole

Put the drained rice and the drained cassava in a large bowl. Add 1 tsp salt and 3 tbsp oil. Toss with your hands until the cassava chunks are spread evenly through the rice. Keep the cassava pieces whole. The mixture is ready when the grains have a light sheen and no liquid pools at the bottom of the bowl.

STEP 77 / 11

Load the steamer

Rice and cassava spread in a cloth-lined bamboo steamer, holes poked in the surface, steam rising
Several open holes across the surface let the steam pass straight through the layer

Pour water into the steamer pot to about one-third of the way from the bottom to the basket, and bring it to a full boil. Line the basket with a muslin cloth or a cloth steaming bag; a bag is easier to lift out later. Spoon in the rice and cassava, level the surface, and poke several holes down through the layer with a chopstick. The steamer is loaded right when steam starts rising through the holes.

STEP 88 / 11

Steam the first round

STEP 8

Cover the steamer and keep the water at a steady, gentle boil for 30–35 minutes. Ten minutes before the end, lift the lid and stir the rice gently so the top and bottom swap places. Cover and finish the time. The first round is done when the rice grains look translucent and the cassava chunks are soft but still hold their corners.

STEP 99 / 11

Rest with coconut milk and oil

Coconut milk poured from a small measuring cup and oil drizzled from a spoon over partly steamed rice and cassava
Fold from underneath so the coconut milk soaks into the hot rice without breaking the cassava

Lift the rice and cassava out of the steamer into a wide bowl or plate. Pour over 2 tbsp oil and the coconut milk, and fold it through gently with a spoon. Keep the cassava chunks whole. Leave it to rest for 10 minutes. The rice should look glossy and every grain should be moist.

STEP 1010 / 11

Steam the second round

The lid lifted after the second steaming, glossy sticky rice and tender cassava with a pandan leaf at the edge
After the second round the cassava edges turn faintly translucent

Bring the steamer water back to a full boil while the rice rests. Return the rice and cassava to the lined basket, and tuck in the pandan leaves at the edge if you are using them. Cover and steam for 20–25 minutes. Cassava needs longer than the fillings of other xôi, so cut open the largest chunk before you stop. It is done when the cassava is soft all the way to the center with no hard or chalky core, and the rice is sticky and glossy.

STEP 1111 / 11

Finish the bowls

Shredded coconut on a bowl of xôi sắn, scallion oil being drizzled and fried shallots added by hand
Coconut, then scallion oil, then shallots; the shallots go last so they stay crisp

Spoon the hot xôi sắn into bowls. Scatter the shredded coconut over it first. Then spoon on the scallion oil, and drop the fried shallots on last so they stay crisp. Serve while it is still steaming, with the shallots crackling on top.

0 / 0
Ingredients

Ingredients

1 / 1

Ingredients

Ingredient Amount Role
Glutinous rice (nếp) 1 lb 2 oz (500 g) The sticky base; soaked well before steaming
Cassava (sắn / khoai mì) 1⅓ lb (600 g) Soft, starchy chunks through the rice
Coarse salt (muối hạt) 1 tsp Seasons the rice and cassava before steaming
Coarse salt, for the soaking brine As needed Salt water for soaking the cassava
Cooking oil (dầu ăn), for mixing 3 tbsp Coats the grains before the first steaming
Cooking oil (dầu ăn), for resting 2 tbsp Gloss and moisture before the second steaming
Cooking oil (dầu ăn), for scallion oil 3 tbsp Base of the green scallion oil
Cooking oil (dầu ăn), for frying shallots Plenty, enough to cover Fries the shallots; can be reused for the scallion oil and mixing
Fresh coconut flesh (cùi dừa) 1¾ oz (50 g) Shredded thin and scattered on top
Bottled or canned coconut milk (nước cốt dừa) 2 tbsp + 2 tsp (40 ml) Mixed in before the second steaming
Scallions (hành lá) ¾ oz (20 g) Sliced thin for the scallion oil
Shallots (hành khô) 1½ oz (40 g) Sliced thin and fried crisp
Pandan leaves (lá dứa), optional 3–4 leaves Fragrance during the second steaming
0 / 0

The lid comes off the steamer for the second time and a cloud of steam rolls up. Underneath, the sticky rice has turned glossy, and the white cassava chunks are soft and faintly translucent at the edges. A spoonful of shredded coconut goes on first, then a ribbon of bright green scallion oil, then a handful of fried shallots that crackle as they land. This is xôi sắn, sticky rice steamed with cassava. In Hanoi it is a street-corner food for cold evenings. Every mouthful brings chewy, salted rice, a soft starchy bite of root, and the sweet onion fragrance of the oil.

Winter Steam on a Hanoi Street

Xôi is the Vietnamese word for a dish of steamed sticky rice, and sắn is cassava. In the south, cassava is called khoai mì, so the same dish travels under the name xôi khoai mì. It belongs to a large family. Xôi xéo is made with mung beans, xôi gấc is made with gấc fruit, and xôi bắp uses corn. Xôi sắn is its own dish, defined by those soft chunks of root through the rice.

Rice stretched with cassava

Cassava once stretched the rice pot. In leaner years, families mixed cassava and other roots into their rice to make a meal go further, a habit remembered as cơm độn sắn khoai. That practice is where xôi sắn is usually traced from, though no date or inventor is attached to it. What survives today is a street food. Through Hanoi's cold season, vendors sell it alongside steamed cassava, grilled corn and roasted sweet potatoes. The north wind starts to blow, and people start wanting it.

It is never banquet food. You will almost never see xôi sắn on a restaurant's party menu. It is everyday eating, bought warm on a chilly afternoon or made at home for a cold evening, and it is the kind of plain food people remember long after they have eaten it. It sits comfortably among the other dishes of Vietnam built on sticky rice.

Xôi sắn or xôi khoai mì

Both names point to the same idea: sticky rice steamed with cassava. In the north it is sắn. In the south it is khoai mì. If you shop at a Vietnamese grocer or search online, try both names.

North and south

The northern bowl, the one cooked here, is finished with scallion oil (mỡ hành), fried shallots and shredded coconut, and many people set a dish of sesame salt (muối vừng) beside it to sharpen each bite. Southern xôi khoai mì comes with a crowd of side dishes. These include lạp xưởng sausage, chà bông pork floss, pâté, egg, soy sauce and chili sauce, and the proportions of rice to cassava change too. At home in the north, the bowl often comes with sliced Vietnamese pork sausage on a separate plate. A sweet version also exists, with sugar stirred through while the rice is hot.


Ingredients (serves 6)

Overhead view of the ingredients for xôi sắn: sticky rice, peeled cassava, coconut flesh, shallots, scallions, pandan leaves, salt and oil
The coconut milk joins later, poured over the rice between the two steamings
Allergen information

This dish contains cassava and coconut. Pork floss and Vietnamese sausage served alongside contain pork. If you use bottled coconut milk, ready-made pork floss or sausage, read the ingredient labels for allergens.

Equipment

  • Steamer: a bamboo steamer over a pot, or a steamer pot
  • Muslin cloth or a cloth steaming bag to line the basket
  • Large mixing bowl
  • Separate bowl for soaking the cassava
  • Sharp knife and cutting board
  • Small saucepan for frying shallots
  • Slotted spoon and a paper-lined plate
  • Small heatproof bowl for the scallion oil
  • Chopsticks for poking holes in the rice
  • Fine grater or julienne peeler for the coconut

Choosing and Substituting

Cassava is the one ingredient that decides the dish. Fresh roots are not easy to find in many countries. Frozen cassava, sold year-round at Southeast Asian grocers and online, is the realistic choice. After thawing, look at it and smell it. If it is watery and sour or shows spoilage, throw it out. Frozen cassava then gets the same treatment as fresh: the long salt-water soak and thorough steaming.

If you find fresh roots, choose ones whose cut ends are white, with no blackened sap streaks and no damage. Short, round roots that feel heavy for their size tend to be starchy and sweet. Cassava comes in sweet and bitter types. The roots sold for eating are mainly the sweet type. The bitter type carries more cyanide and goes to processing. Buy roots sold as food.

Ingredient What to keep What you can swap
Cassava Real cassava root in chunks, fresh or frozen Never tapioca starch or potato starch. Tapioca starch is only the extracted starch, and you lose the chunks entirely. Sweet potato makes a different dish with different flavor and moisture
Sticky rice Glutinous rice Vietnamese nếp cái hoa vàng is the ideal; Thai glutinous rice works well and is easier to buy
Coconut flesh Fresh, shredded thin Unsweetened dried coconut works, but it is drier and chewier on top
Coconut milk Plain coconut milk from a can, carton or bottle Any brand; save the rest of the can for curry or dessert
Pandan Optional Frozen or dried leaves work; the dish is complete without them

Method

The work splits into two days. The night before, or in the morning, set the rice and the cassava soaking separately. Both soaks take many hours of waiting with almost nothing to do. On cooking day, make the shallots and scallion oil first, because the frying oil is reused in the rice. The rest is steaming, with one hands-on break in the middle to add the coconut milk.

Cassava safety

Raw cassava contains linamarin, a compound that releases hydrogen cyanide. Most of it sits in the peel and the ends of the root. Never eat cassava raw or undercooked, not even a taste. The safe way is to peel thickly, cut off both ends deeply, soak the root in water and change the water, then cook it thoroughly. Throw the soaking water away and never use it for cooking or steaming. Run the extractor fan or open a window while steaming, and keep your face out of the cloud when you lift the lid. Do not eat a large amount on an empty stomach. Give children a small portion to start. Poisoning shows within 30 minutes to 1–2 hours as a burning tongue and throat, headache, dizziness, stomach pain, vomiting and rapid breathing. Severe cases bring loss of consciousness, seizures and stopped breathing. If any of these appear, get medical help immediately.

Soak cold in warm weather

The rice and cassava sit in water for many hours. Unchanged water turns sour. In warm weather, soak both in the refrigerator, and change the water as often as the steps say.

Load a steamer that is already boiling

Put the rice into the steamer only once the water underneath is at a full boil, then poke holes through the surface. Steam reaches the middle of the layer quickly and evenly, so the cassava in the center cooks at the same pace as the cassava at the edges.

When It Goes Wrong

What you see Why What to do
The rice smells sour after soaking The water sat too long without changing, or the kitchen was warm Change the water 2–3 times during the soak; in warm weather soak in the refrigerator
Cassava has a hard center after the second steaming The chunks were too large or the steaming was too short Keep steaming until the center is soft right through. Never serve cassava with a hard core
The rice is wet and pasty It went in poorly drained, or was packed down with no holes Drain the rice and cassava well, spread the layer level, and poke holes before steaming
The fried shallots are dark and bitter They stayed in the oil past pale gold and kept cooking off the heat Lift them out at pale gold next time; a dark batch is best replaced
The scallion oil turned olive brown The scallions cooked too long Stir for about 5 seconds, then pull off the heat straight away
A burning tongue or throat, dizziness or nausea after eating Cassava that was not peeled, soaked or cooked thoroughly Stop eating and get medical help immediately

Serving and Variations

Xôi sắn on a northern Vietnamese table with sesame salt, pork floss and sliced Vietnamese sausage on separate plates
Each side stays on its own plate so everyone seasons their own bowl

Xôi sắn is a cold-weather food, at its best eaten hot on a chilly evening. At a northern table, set out sesame salt for sprinkling. Add pork floss (ruốc bông) when the rest of the meal is savory, and sliced Vietnamese pork sausage when you want it more filling. Keep every side dish on its own plate rather than mixing it into the rice. It is best eaten the day it is made as a rough guideline, and leftovers can be rewarmed by steaming them again until hot all the way through.

Variations

  • Sweet xôi sắn. Stir sugar into the rice while it is still hot from the steamer. For this version, mix the rice with plain cooking oil instead of the shallot frying oil, whose onion aroma comes through strongly.
  • Southern table. Keep the northern bowl as it is and surround it with southern sides: lạp xưởng, chà bông, pâté, egg, soy sauce and chili sauce. The meal becomes heartier and saltier, and the rice turns into a base for the sides.
  • Pandan. Add the pandan leaves in the second steaming. The rice picks up a sweet, grassy perfume that pairs well with the coconut.
  • More coconut. Use more shredded coconut on top for extra chew and sweetness. Keep the coconut milk at the amount in the table so the rice stays sticky.

Frequently Asked Questions

Why steam twice instead of once?

Cassava takes longer to cook than the fillings of other xôi. The first round cooks the rice and starts softening the cassava. During the break, the oil and coconut milk go into hot, open grains. The second round finishes the cassava through to the center and sets the rice glossy and sticky.

Can I shorten the cassava soak?

Plan for the full 8–12 hours with the water changes; the soak is part of what makes the cassava safe. On a day when time is short, soak the cassava at least as long as the rice, and never less. Thorough steaming is still required either way.

How do I know the cassava I bought is the sweet type?

The two types are hard to tell apart by eye. Buy cassava sold as food from a grocer that stocks it for cooking. Frozen cassava from a Southeast Asian shop is the easiest choice. Treat every batch the same way: deep peel, long soak and full steaming.

Sources