Grandma used to roll these on the kitchen counter without measuring a single thing, and somehow every batch came out perfectly round with that satisfying chew. Recreating her easy Cantonese sticky rice balls recipe at home took a few attempts to nail the dough hydration, but once it clicked, the whole process became almost meditative. The peanut filling roasted until fragrant, wrapped inside soft glutinous dough, coated in crushed peanuts outside — it hits differently when you make it yourself.
What Makes These Rice Balls Worth Making Every Time
Glutinous rice dough has a personality. Too dry and the balls crack when you press the filling in; too wet and they stick to everything and lose their shape in the water. What makes this particular sticky rice balls recipe reliable is the resting step after mixing, which lets the dough fully hydrate before you start shaping. Most recipes skip it and then wonder why the texture feels off.
The peanut filling here uses toasted peanuts blitzed with sugar and a small knob of butter, which keeps it slightly moist so it stays together when you bite through rather than crumbling out. That combination of soft exterior and slightly crumbly-but-cohesive filling is exactly the texture contrast that makes this rice ball dessert genuinely worth the effort.
Everything Going Into the Dough and Filling
Getting this right starts at the ingredient stage, so a few notes before diving in:
For the dough:
- 2 cups (240g) glutinous rice flour — also called sweet rice flour. Standard rice flour will not work here; the glutinous variety is what creates that signature stretchy, chewy texture.
- 3/4 cup (180ml) warm water — add gradually, not all at once. Flour brands absorb water differently, so you may need a tablespoon more or less.
- 2 tbsp (25g) sugar — just enough to take the edge off the starchiness without making the dough sweet on its own.
- 1 tbsp (14g) melted butter or neutral oil — optional but worth it; a small amount of fat makes the dough more pliable and less prone to cracking.
For the peanut filling:
- 1 cup (140g) roasted unsalted peanuts — if you only have raw peanuts, toast them in a dry pan over medium heat until golden and fragrant, about 5 minutes.
- 3 tbsp (38g) granulated sugar — adjust to taste.
- 1 tbsp (14g) softened butter — binds the filling so it holds a ball shape instead of falling apart.
- Pinch of salt — lifts the whole thing.
For the coating:
- 1/2 cup (70g) finely crushed roasted peanuts mixed with 2 tbsp sugar — spread on a plate and roll the cooked balls through it while still warm so the coating sticks properly.
Before You Start
Blend the peanuts for the filling first so they have time to cool slightly before handling. Divide the filling into small balls, roughly 10g each, and set them on a tray in the fridge while making the dough. Cold filling is much easier to wrap because it holds its shape against the warm, soft dough.
Shaping and Cooking Them Through
Step 1: Make the filling
Pulse the toasted peanuts in a food processor until they reach a coarse, crumbly texture — not a paste. Add sugar, butter, and salt, then pulse again until everything just starts clumping together. Scoop into roughly 1-teaspoon portions, roll into small balls with your palms, and refrigerate while you prepare the dough.
Step 2: Mix the glutinous rice dough
Combine glutinous rice flour and sugar in a mixing bowl. Add warm water gradually while stirring, then mix in melted butter. Knead gently until a smooth, non-sticky dough forms — about 2 minutes. If it tears when stretched, it needs another minute of kneading. Cover with a damp cloth and rest for 10 minutes. This rest is not optional; it dramatically improves the texture.
Step 3: Wrap the filling
Pinch off dough pieces about 25g each and roll into a ball. Flatten it into a disc roughly 3 inches across with your fingers, keeping the edges slightly thinner than the center. Place a cold peanut ball in the middle, then gather the edges up and pinch firmly to seal. Roll gently between your palms until smooth. Any crack in the seal will let water in during cooking and turn the filling soggy.
Step 4: Cook in simmering water
Bring a large pot of water to a gentle boil, then reduce to a steady simmer. Drop the rice balls in batches — do not crowd them. They will sink at first, then float to the surface after 2 to 3 minutes. Once floating, cook for another 2 minutes. The dough turns slightly translucent and loses its chalky white appearance when fully cooked through.
Step 5: Coat and serve
Use a slotted spoon to transfer the cooked balls directly onto the crushed peanut coating. Roll each one to cover completely while still warm and wet — the surface moisture acts as the glue. Serve immediately while the outside is still tender and the coating is fresh.
Serving Warm Versus Room Temperature
Warm, straight from the pot: Rolling them in peanuts right away gives the fullest coating. The dough is at peak softness and the peanut layer sticks evenly.
At room temperature: If serving at a party or packing for a gathering, let them cool on a lightly oiled plate to prevent sticking, then coat just before serving. Avoid piling them on top of each other while warm or they will fuse together.
Smaller portions for kids: Rolling the dough into 15g pieces rather than 25g creates bite-sized balls that are less of a choking concern for small children while still delivering the full flavor.
Swaps Worth Knowing Before You Cook
- Sesame coating instead of peanuts: Rolling the cooked balls in toasted black or white sesame seeds is a classic Cantonese alternative. The nuttiness is less intense but the visual contrast is stunning.
- Coconut sugar in the filling: Swapping granulated sugar for coconut sugar gives the peanut filling a slightly caramel-like depth without changing the texture.
- Pandan water in the dough: Replace plain warm water with pandan leaf water for a pale green dough with a subtle floral fragrance. Simmer 4 pandan leaves in water for 10 minutes, cool, then use as normal.
- Red bean paste filling: When peanuts are unavailable, store-bought red bean paste rolled into firm balls works beautifully. Keep it chilled before wrapping.
What to Serve Alongside This Cantonese Sweet Rice Ball Dessert
A small bowl of these alongside a cup of something warm is really all they need. When bringing them to a dim sum spread or a dessert table, pairing with a light soup or tea works perfectly.
- Jasmine Tea — brew a pot and serve alongside; the floral lightness cuts through the richness of the peanut filling.
- Ginger Syrup Soup — simmer thin slices of fresh ginger in water with rock sugar, then ladle over the balls for a traditional Cantonese tong yuan presentation.
- Mango Pudding — serve on the same dessert platter for a contrast in texture and temperature at a larger gathering.
- Toasted Coconut Flakes — sprinkle over the peanut coating for an extra layer of fragrance and crunch.
Getting the Texture Right Every Single Time
- Dough cracking while shaping: If the wrapper tears at the edges when you pull it up around the filling, the dough is too dry. Work a few drops of water into it and knead briefly. Cracks that appear during shaping almost always open up further during boiling, so fix them before cooking.
- Filling leaking into the water: A leaking ball means the seal at the top was pinched but not properly fused. After sealing, roll the ball firmly between both palms with gentle pressure for about 10 seconds. You will feel any thin spot close under pressure.
- Gummy or overly dense texture: Overcooking is usually the culprit. Once the balls float and have cooked for 2 additional minutes, pull them out. Leaving them in the water longer does not improve them; the dough begins to absorb water and the texture turns heavy.
Leftover cooked balls can be stored in an airtight container at room temperature for up to 8 hours without losing much texture. For longer storage, refrigerate and reheat in simmering water for 1 minute — not microwave, which makes the dough unpleasantly rubbery. Freeze uncooked shaped balls on a tray before transferring to a bag; cook from frozen adding about 2 extra minutes.
Easy Cantonese Sticky Rice Balls Recipe with Peanuts
Description
Soft, chewy glutinous rice balls filled with toasted peanut sugar mixture and rolled in crushed peanuts. A classic Cantonese sweet snack that comes together in under 30 minutes with simple pantry ingredients.
Ingredients
Dough
Peanut Filling
Coating
Instructions
Step 1: Toast and blend the peanuts
If using raw peanuts, toast in a dry skillet over medium heat for 5 minutes until golden and fragrant, stirring frequently. Cool for 5 minutes, then pulse in a food processor until coarsely ground. Add sugar, softened butter, and salt. Pulse until the mixture just starts clumping. Roll into 16 small balls (about 10g each) and refrigerate on a tray.
Step 2: Make the dough
Whisk glutinous rice flour and sugar together in a large bowl. Add warm water gradually while stirring with a spatula, then add melted butter. Knead into a smooth, soft dough — it should feel like soft playdough and not stick to your hands. If it tears when stretched, knead for another minute. Cover with a damp cloth and rest for 10 minutes.
Step 3: Divide and flatten
Divide the rested dough into 16 equal portions (about 25g each). Roll each into a ball, then flatten into a disc roughly 7 to 8 cm wide. Keep the center slightly thicker than the edges to prevent the bottom from breaking when the filling is added.
Step 4: Fill and seal
Place a chilled peanut ball in the center of each dough disc. Gather the edges upward, pinching firmly to close at the top. Roll the sealed ball between both palms using gentle circular pressure for 10 seconds to smooth the surface and reinforce the seal. Place on a lightly floured tray.
Step 5: Cook in simmering water
Bring a large pot of water to a boil, then reduce to a medium simmer. Drop the balls in batches of 6 to 8. They will sink, then float to the surface after 2 to 3 minutes. Once floating, cook for 2 more minutes. The surface should look slightly translucent and feel soft when nudged with a spoon.
Step 6: Coat and serve
Mix crushed peanuts and sugar together on a flat plate. Remove the cooked balls with a slotted spoon and place directly onto the coating. Roll each one to cover fully while the surface is still moist. Serve warm.
Nutrition Facts
Servings: 4 ServingCalories:210kcalTotal Fat:8gDietary Fiber: 1gSugars: 10gProtein:5gCarbohydrates: 34g
Note
- Glutinous rice flour and regular rice flour are not interchangeable. Only glutinous (sweet) rice flour creates the stretchy, chewy texture.
- Do not skip the 10-minute dough rest. It noticeably improves elasticity and prevents cracking.
- For black sesame balls, substitute the peanut filling with store-bought black sesame paste and omit the butter.
- Uncooked balls freeze well. Freeze on a tray first, then bag. Cook from frozen, adding 2 to 3 extra minutes.