Halo-halo layered with mix-ins, shaved ice, milk and toppings
Serves4 servings
CuisineFilipino

Halo-Halo: Filipino Shaved Ice Dessert with Layered Mix-ins

How to make halo-halo, the Filipino shaved ice dessert, for 4 glasses with no cooking. Covers the layering order of sweet beans, fruit and jelly, how much evaporated milk to pour, how to choose ube, leche flan and pinipig, honest substitutions, and why it is served in layers and mixed at the table.

Level: Beginner

Cooking flow

Cooking steps

STEP 11 / 7

Chill and drain the mix-ins

Draining the syrup from jarred mix-ins in a strainer
Drain jarred mix-ins well so syrup doesn't pool in the glass

Refrigerate the beans, fruit, nata de coco, kaong and gulaman ahead of time. Tip jarred and canned mix-ins into a strainer set over a bowl and let the syrup drain off, so the mix-ins don't leave a pool of liquid at the bottom of the glass. Draining keeps the sweetness in check and helps the ice from melting too quickly. Chill the glasses too.

STEP 22 / 7

Layer small spoonfuls of mix-ins in each glass

Layering small spoonfuls of mix-ins at the bottom of a clear glass
Small spoonfuls of several mix-ins fill about the bottom third of the glass

Into each of the 4 tall glasses, add about 1 teaspoon each of several mix-ins, building up to roughly one-third of the glass. Adjust by looking at that level rather than counting spoonfuls, and don't try to use up all the prepared mix-ins. Return what you don't use to separate containers in the refrigerator.

STEP 33 / 7

Shave the ice just before serving

Shaving ice finely just before eating
Fine, fluffy shaved ice is what lets the milk spread through

Shave the ice finely, right before you serve, following your ice shaver's instructions and with clean equipment. Heap it over the mix-ins in each glass so it forms a mound. Fine ice soaks up the milk well; coarse crushed ice will feel grainier and hold less milk.

STEP 44 / 7

Pour the evaporated milk over the ice

Pouring evaporated milk over shaved ice heaped on the mix-ins
Pour the milk in a thin stream so it soaks down through the ice

Pour about 1/4 cup (about 60 ml) of evaporated milk over each glass, moving around the mound so the milk spreads through the ice. Use unsweetened evaporated milk here, not sweetened condensed milk.

STEP 55 / 7

Add the toppings

Finishing halo-halo with leche flan, ube halaya, ice cream and pinipig
Keep the toppings modest so each one stays recognizable

Divide the leche flan among the glasses, then add ube halaya and a scoop of ube ice cream as you like, and finish with a light sprinkle of pinipig. None of these toppings is essential. Keep the portions modest so the glass stays balanced and the ice doesn't collapse under the weight.

STEP 66 / 7

Serve right away, layers intact

Halo-halo served unmixed with a long spoon
Serve it unmixed so everyone sees the layers before stirring

Bring the glasses to the table while the layers are still separate, with a long spoon alongside each. The ice starts melting as soon as it is assembled, so don't let it wait.

STEP 77 / 7

Mix from the bottom as you eat

Mixing halo-halo from the bottom to combine mix-ins and ice
Mixing from the bottom brings the mix-ins up into the ice and milk

The person eating it pushes the long spoon to the bottom and lifts the mix-ins up through the ice and milk. As the layers combine, the texture turns creamy and every spoonful carries a different mix of ice, milk, beans, jelly and fruit.

0 / 0
Ingredients

Ingredients

1 / 3

Mix-ins for the bottom layer

Ingredient Amount Role and notes
Sweetened beans (munggo, garbanzos or white beans) 1/2 cup Sweetness and a soft, starchy bite. Use store-bought sweetened beans
Nata de coco 1/2 cup, drained Springy, chewy coconut gel
Kaong (sugar palm fruit) 1/2 cup, drained A firm, chewy bite. Leave out if you can't find it
Minatamis na saging (sweetened saba bananas) 1/2 cup Cooking bananas simmered in syrup
Sweetened jackfruit (langka) 1/2 cup Fruity aroma and a fibrous texture. Drain off the syrup
Gulaman cubes 1/2 cup Firm jelly for a bouncy bite
2 / 3

Ice and milk

Ingredient Amount Role and notes
Finely shaved ice A heaping mound for each of 4 glasses The cold base that soaks up the milk
Evaporated milk (unsweetened) 1 cup (about 240 ml) Ties the ice and mix-ins together with creamy richness
3 / 3

Toppings

Ingredient Amount Role and notes
Leche flan 1 cup's worth, divided among 4 glasses Rich, soft custard
Ube halaya 1/2 cup Purple yam jam; a dense sweetness on top
Ube ice cream 4 scoops Cold creaminess on top
Pinipig As desired, to sprinkle Toasted young rice flakes for a nutty crunch. Optional
0 / 0

Halo-Halo: Bright Layers in a Glass, Mixed with the First Spoonful

What this glass should keep

Sweet mix-ins at the bottom, fine shaved ice on top, unsweetened evaporated milk poured over, and a few rich toppings to finish. Serve it in layers, and let the person eating it do the mixing.

A tall clear glass starts with small spoonfuls of sweet beans, jelly and fruit at the bottom. Fine, snow-like ice is heaped on top, evaporated milk runs down through it, and leche flan, ube and a scoop of ice cream sit at the crown. Then a long spoon goes in, and the neat layers turn into something new with every bite.

Halo-halo from the Philippines means "mix-mix," and the name describes exactly what you do with it. It is served unmixed so you can see each layer, and the eater stirs it from the bottom. Because every spoonful lifts a different share of ice, milk, beans and fruit, no two bites taste quite the same.

This home version makes 4 glasses with no cooking at all. The mix-ins are ready-made, cooked store-bought products, so the work is chilling, draining and assembling; the recipe this version follows puts assembly at about 10 minutes, with chilling time separate. Halo-halo has no single fixed recipe, so you don't need every mix-in listed here. Keep the core of sweet beans, fruit, jelly, ice and unsweetened milk, and build around what you can find.

Not the same as the warm dessert of the Visayas

In the Visayas, a warm dessert called binignit is also known as ginataáng halo-halo. It shares part of the name but is a different, warm dish. This article is about the cold shaved ice dessert.

Ingredients: 4 Glasses, Assembled from Ready-Made Mix-ins

Sweetened beans, nata de coco, kaong, banana, jackfruit, jelly, ice, milk and toppings for halo-halo
Set out each mix-in in its own bowl so you can build each glass a spoonful at a time

These are the amounts to prepare for 4 servings. They are not amounts to pack entirely into four glasses: each glass gets small spoonfuls of several mix-ins, and whatever is left over goes back into separate containers in the refrigerator. All mix-ins are cooked, ready-to-eat products; don't add dried beans or raw sago pearls as they are.

Allergens and handling

Leche flan contains egg and milk, and evaporated milk is a dairy product. Ice cream, ube halaya, sweetened beans, coconut products and other mix-ins vary in allergens by product, so follow the label of each item you buy; cross-contact cannot be ruled out. Prepare the cooked mix-ins chilled and eat halo-halo right after assembling it. Keep leftover components in separate containers and store opened products as their labels direct.

Equipment

  • Ice shaver (to make fine shaved ice)
  • 4 tall clear glasses
  • Long spoons for eating
  • A small strainer and bowl for draining jarred and canned mix-ins
  • A teaspoon for layering
  • Separate containers for leftover mix-ins

Choosing Mix-ins and Substitutes

Halo-halo is a dessert of choices. Recipes and shops combine sweet beans, garbanzos, fruit, jelly, sago, nata de coco, kaong, macapuno, pinipig and more, and the mix differs from one to the next. It helps to think in families: beans, fruit, jelly and coconut, and toppings. If one item is missing, keep the family covered rather than hunting for an exact match.

Substitutes can make a good glass, but they are not the same as the Filipino ingredients, so expect a different flavor and texture.

If you can't find You can use How it differs
Sweetened munggo, garbanzos or white beans Other store-bought sweetened beans, or Japanese candied beans (amanatto) Amanatto is often much sweeter because of its sugar coating, and its bean flavor differs
Kaong Leave it out Agar jelly does not reproduce its bite
Sweetened saba bananas Store-bought bananas in syrup, or regular bananas briefly simmered in syrup Regular eating bananas are softer than saba and smell different
Gulaman cubes Agar jelly cubes Many agar jellies set firmer
Ube halaya Purple sweet potato paste Similar color, but the aroma and sweetness differ. If it is unsweetened, add any sweetener only a little at a time
Leche flan Store-bought custard pudding The caramel and the set of the custard differ
Ube ice cream Vanilla or mango ice cream, or none Halo-halo without ice cream is also made
Pinipig Puffed brown rice, or none The toasted aroma differs; the dessert works without it

Evaporated milk is the base, and it is unsweetened. Regular milk tastes thinner, and sweetened condensed milk is far sweeter, so neither is a same-amount swap. Fine shaved ice matters too: coarse crushed ice has a grainier texture and doesn't let the milk spread through as well.

Macapuno and sago as alternatives

Macapuno (a soft, sweet coconut preserve) and sago pearls are other common choices. Use them in place of, or alongside, the base mix-ins if you like, but use ready-to-eat products. Sago is a different thing from gulaman; treat it as its own option rather than as the same jelly.

Method: Mix-ins, Ice, Milk, Toppings, Then Mix

The order is the recipe

Mix-ins first, shaved ice next, evaporated milk over the ice, and toppings last. Don't mix before serving; the mixing happens at the table.

Everything is assembled cold, so get the mix-ins and glasses ready before you shave any ice. Once the ice is in the glass, work through to serving without stopping.

Too Sweet, Too Watery: Fixing It Before the Next Glass

Most problems with halo-halo come from the preparation: syrup that wasn't drained, ice shaved too early, or too many mix-ins at once.

Problem Likely cause What to do
Too sweet Syrup left on the mix-ins, sweetened condensed milk used, too many mix-ins Drain the mix-ins well, use unsweetened evaporated milk, and start from a teaspoon of each mix-in
Turns watery quickly Warm mix-ins or glasses, ice shaved too early, syrup not drained Chill the mix-ins and glasses, and shave the ice just before serving
Can't find all the mix-ins Specialty items unavailable You don't need them all. Keep beans, fruit, jelly, ice and unsweetened milk, and leave out the rest
Layers collapse Order changed, or mixed before serving Keep the order: mix-ins, ice, milk, toppings. Mixing starts once eating starts
Doesn't taste like the original Substitutes such as candied beans, pudding, purple sweet potato or regular bananas These differ in flavor and sweetness; treat the result as your own version rather than an exact copy

Variations: Shifting the Balance of the Glass

Variation How What changes
More beans Use two kinds among munggo, garbanzos and white beans More starchy softness, and more sweetness
More fruit Lean on langka and saba More aroma and softness
Lighter Skip the ice cream and drain the sweet mix-ins well A cleaner, less rich glass; halo-halo without ice cream is also made
Less milk Pour less evaporated milk Each mix-in's own flavor stands out. Versions with coconut milk exist, but the flavor shifts
Texture-focused Use both gulaman and ready-to-eat sago, and add pinipig just before serving Layered chewiness and crunch; since textures stack up, use smaller amounts of each

A Name That Is Also an Instruction

Halo-halo comes from the Filipino word halò, "to mix," and is often rendered in English as "mix-mix"; the dictionary spelling haluhalò is also noted. The name is not just a label: mixing is how the dessert is eaten, and the share of ice, milk, beans and fruit in each spoonful keeps changing.

Tourism Philippines describes an origin story that is commonly cited: Japanese migrants in Quiapo, in Manila, and the Japanese shaved ice known as kakigōri, along with monggo con hielo, shaved ice with sweet mung beans. This is a widely told account rather than firmly established history, so it is best read as one explanation of where the dessert came from.

What is clear is that there is no single fixed recipe. Sweet beans, garbanzos, fruit, jellies, sago, nata de coco, kaong, macapuno and pinipig are combined in many ways, and some places leave out the ice cream entirely. Regional flavors such as winter melon, durian and strawberry ice cream are also described, but they are examples rather than a nationwide standard, and no one combination defines the "authentic" glass.

Monggo, the Filipino savory soup of mung beans with pork, fish sauce and greens, uses the same beans but is an entirely separate dish. It is not a recipe for the sweetened beans in halo-halo.

Frequently Asked Questions

What does halo-halo mean?

It comes from the Filipino word halò, "to mix," and is usually translated as "mix-mix." The name tells you how to eat it.

Do I need every mix-in?

No. Halo-halo has no fixed recipe, and the choice of mix-ins varies widely. Keep sweet beans, fruit, jelly, shaved ice and unsweetened evaporated milk as the core, and leave out anything you can't find.

Should I mix it before serving?

No. Serve it with the layers intact and a long spoon, and let each person mix it from the bottom as they eat.

Can I make it without shaved ice?

An ice shaver that makes fine, snowy ice is best. If you use crushed ice, the texture is grainier and the milk spreads through less evenly, so expect a different result.

Can I substitute purple sweet potato for ube?

The color is similar, but the aroma and sweetness differ. If you have no ube halaya, leave it out or use purple sweet potato paste, knowing that it is a substitute.

Can I use sweetened condensed milk instead of evaporated milk?

Not in the same amount. Sweetened condensed milk is much sweeter, and regular milk is thinner. Unsweetened evaporated milk is the base of this recipe.

Can I make halo-halo ahead?

Not once it is assembled, because the ice melts. You can prepare the mix-ins ahead, store each one separately, and assemble the glasses when you are ready to eat. Follow each product's label for how to store it after opening.

Is halo-halo the same as binignit?

No. Binignit, also called ginataáng halo-halo, is a warm dessert from the Visayas. It is a different kind of dish from cold halo-halo.

Sources

  • Tourism Philippines, "Halo-halo: what it is, history and how to eat it." Used for the meaning "mix-mix," the absence of a fixed recipe and examples of ingredients, the layering order and serving unmixed, and the origin account involving Japanese migrants, Quiapo, kakigōri and monggo con hielo. This is a tourism guide, not primary historical evidence; the origin is presented as a commonly cited account. https://www.turismofilipinas.com/en/food-in-philippines/halo-halo
  • Lalaine Manalo, Kawaling Pinoy, "Halo-Halo (Filipino Shaved Ice Dessert)." Used for the 4-serving recipe and its ingredient amounts, the 10-minute assembly, customizable mix-ins, fine shaved ice absorbing milk well, and storing components separately to assemble when ready. This is the recipe author's adapted home version, and its choices and amounts are not universal. https://www.kawalingpinoy.com/halo-halo/
  • Filipino American Association of Portland & Vicinity, Inc., "Kulinarya 2025 Recipes: Halo-Halo (Filipino Shaved Ice Dessert)." Used for further mix-in options such as saba, langka, mung and white beans, macapuno, nata de coco, corn, flan, ube and pinipig, and for the sequence of layering, icing, adding milk, topping and serving immediately. Its milk amounts are inconsistent, so it is not used for the milk quantity. https://www.filamportland.org/wp-content/uploads/go-x/u/73d02be7-d291-4fe5-a1cb-7b6fa1ffc555/FAAPVI-Kulinarya-2025-Recipes.pdf