This is an authentic Thai bua loy recipe for a deliciously sweet dessert with glutinous rice balls in coconut milk. Naturally colored with pandan, taro, and sweet potato.
Wash and slice taro, sweet potatoes, and/or purple potatoes into small, even pieces.
Steam until fork-tender.
Blend pandan leaves with water, then strain to extract pandan juice.
Make the Dough
In a mixing bowl, mash the steamed taro (or other base).
Add glutinous rice flour and tapioca flour.
Mix by hand, then gradually add cold water (or pandan juice) until a soft, clay-like dough forms.
Repeat for each flavor or color, wrapping dough in plastic wrap to prevent drying.
Roll the Balls
Dust a tray with glutinous rice flour.
Roll dough into small balls and place on the tray.
Bring a pot of water to a boil. Add the balls in batches, gently stirring.
When they float, simmer 2–3 more minutes.
Scoop out and transfer to a bowl of room temperature water.
Make Sweet Coconut Milk
In a second pot, combine coconut milk, water, sugar, pandan leaves, and salt. Bring to a gentle boil.
Optional: Crack an egg into the pot and let it poach for 3–4 minutes (don’t stir).
Add the cooked rice balls to the coconut milk and serve warm.
If storing for later, keep rice balls and coconut milk separate.
Notes
Flavor options: This recipe uses taro, sweet potatoes, purple potatoes, and pandan, but feel free to mix and match. You can even use food coloring if you prefer simplicity or don’t have fresh ingredients on hand.
Dough moisture tips: Some ingredients hold more water than others. If you're using pumpkin or another watery vegetable, you may need less cold water (or none at all) when forming the dough.
Keep it simple: Don’t feel like you have to make four doughs! One flavor, like sweet potato, works just fine on its own.
Ball size: Roll the dough into small balls, they’ll puff up slightly as they cook.
Storage: Best eaten fresh, but leftovers can be kept in the fridge for up to 1 day. Store the coconut milk and rice balls separately for the best texture.