Go Back
+ servings
Print Recipe
5 from 5 votes

Vegan savory rice balls - tang yuan 咸汤圆

These rice balls (tang yuan), 咸汤圆 are filled with a scrumptious filling made from tofu and sautéed mushrooms. They are then cooked in a delicious vegetable-packed broth for a perfect umami savoriness bowl of soup.
Prep Time20 mins
Cook Time30 mins
Total Time50 mins
Course: Appetizer, Main Course
Cuisine: Chinese, Hakka
Keyword: dumplings
Servings: 3
Author: woonheng


  • 5 oz firm tofu drained and pressed
  • 10 dried Shiitake mushrooms rehydrated
  • 1 small carrot finely chopped
  • tablespoons vegan oyster sauce
  • tablespoons soy sauce separated
  • ¼ teaspoon thick caramel sauce/dark soy sauce
  • 2 shallots thinly sliced
  • 2-3 cups chopped napa cabbage
  • 3 stalks green onion chopped
  • 3 cups veggie stock
  • pepper
  • salt
  • toasted sesame oil
  • oil for cooking


  • 2 cups glutinous rice flour
  • ¾ cup boiling water
  • ¼ cup water see instructions


Prepare the filling

  • Finely chopped 7-8 mushrooms into tiny bits and slice the remaining for soup. Heat a non-stick skillet with 1-2 teaspoons of oil over medium heat. Sauté the mushrooms for 1-2 minutes, then season with 1 tablespoon of soy sauce. Continue to cook until the mushrooms fully absorb the sauce. Add the carrots and stir-fry for a few more seconds. Turn off the heat.
  • Place tofu in a large bowl and mash into a slightly coarse mixture with a potato masher. Fold in the cooked mushrooms and season with vegan 'oyster' sauce, thick dark soy sauce, pepper, chopped green onions, and a splash of toasted sesame oil. Mix until combine. Aim to have a mixture that can hold together when squeezed. Add a tablespoon of stock or water if it's too dry.

Prepare the dough

  • Measure the rice flour in a large mixing bowl. Using a pair of chopsticks or silicone spatula, stir the flour while slowly pouring the boiling water. Now, knead the dough while you add the cold water in batches until a soft and pliable dough forms. You may not need the whole ¼ cup of water. Cover the bowl and let it rest for 10 minutes, then divide into 18 portions and roll into balls. The dough is enough to make 16 large ones and 20 small ones. Always cover the dough with a towel to prevent them from drying out.

Assemble the rice balls

  • Assemble the rice balls. Take a dough ball and make a deep dent in the middle. Using your fingers, press the side to create a cup-like shape. Fill it with a portion of the filling. Bring the sides to seal and roll into a smooth ball. Set aside, cover, and repeat with the remaining ingredients.

Cook and serve

  • Next, make the soup. Heat a large wok with a tablespoon of oil and sauté shallots until translucent. Add the sliced mushrooms and stir-fry for a minute, then sesaon with ½ tablespoon of soy sauce. Add the veggie stock and bring it to boil.
  • Meanwhile, fill another pot with water, halfway through or enough for the rice balls to float up during cooking. Bring the water to a boil. Carefully drop in the rice balls and do not stack them. Gently stir to prevent sticking. Cook in batches if you have a small pot. Cook until they float to the top, about 5-8 minutes. Let them stay afloat for another minute while you turn your attention to the soup.
  • Once the soup starts to boil, add the Napa cabbage and scallions. Sieve out the rice balls and transfer them to the soup and boil for another minute or so. Taste and season accordingly.
  • Serve warm with a side of chopped Thai chili in soy sauce.



  • I used 3 elephants Thai rice flour and LeeKumKee vegetarian stir-fry sauce. For homemade version, check this recipe
  • It's highly recommended to weigh the flour instead of using cups