skip_to_content
Back to all recipes

Authentic Vietnamese Meatballs (Thịt viên): Homemade Hanoi Recipe

Authentic Vietnamese Meatballs (Thịt viên): Homemade Hanoi Recipe

Vietnamese fried meatballs (thịt viên) ready to be served. Traditionally, they don't contain breadcrumbs or eggs. Cornstarch and well-mixed meat provide cohesion.

Share:

Meatballs

  • 500 g ground pork (ideally with ~30% fat, e.g., shoulder or belly)
  • 2 shallots (or 1 small onion; finely chopped)
  • 3 cloves garlic (finely chopped)
  • 1 to 2 tbsp fish sauce (nước mắm, to taste)
  • 1/2 tsp ground black pepper
  • 1 tsp sugar (or a pinch of hạt nêm / MSG)
  • 2 tsp (10 to 15 g) cornstarch or tapioca starch
  • Vegetable oil for frying

Dipping Sauce: Nước Chấm

  • 3 tbsp fish sauce (nước mắm)
  • 6 tbsp warm water
  • 2 tbsp sugar
  • 2 tbsp lime juice (or lemon juice)
  • 2 cloves garlic (finely chopped or pressed)
  • 1 small chili pepper (finely chopped, seeds removed if you don't want it too spicy)
  • Optional: a few julienned carrots for garnish

Preparing the Meat Mixture

  1. 1

    Place the ground pork in a bowl and add the chopped shallots and garlic.

  2. 2

    Season with fish sauce, sugar (or hạt nêm), and ground pepper. Finally, add the starch.

  3. 3

    Mix everything thoroughly, ideally by hand or with a wooden spoon for several minutes until the mixture becomes springy and slightly sticky (protein is released).

  4. 4

    Let the mixture rest in the refrigerator for about 10 to 15 minutes to marinate the meat and allow flavors to meld.

Shaping the Meatballs

  1. 1

    Using damp or lightly oiled hands, shape the rested mixture into small balls about 3 to 4 cm in diameter (ping pong ball size).

  2. 2

    When rolling the meat, don't press too hard with your palms, so the resulting meatballs aren't tough, but shape them firmly so they don't fall apart during frying.

  3. 3

    Place the finished meatballs on a plate. (This batch yields approximately 15 to 20 meatballs.)

Frying

  1. 1

    In a large pan or wok, heat a layer of oil (about 1 to 2 cm) over medium heat.

  2. 2

    Fry the meatballs slowly on all sides until golden brown. Don't overheat the oil, or they might burn on the outside while remaining raw inside.

  3. 3

    Turn the meatballs to ensure even cooking; this usually takes about 5 to 7 minutes in total.

  4. 4

    Remove the fried meatballs and let them drain on paper towels.

Sauce: Nước Chấm

  1. 1

    In a bowl, combine warm water and sugar, stirring until the sugar dissolves.

  2. 2

    Add fish sauce and lime juice, stir.

  3. 3

    Stir in the minced garlic and chili.

  4. 4

    Optionally, add a few carrot shreds for color.

  5. 5

    Taste the sauce. It should be sweet, salty, and slightly sour. Adjust with water (for a milder taste) or lime juice (for more sourness) if needed.

Notes and Tips

Authentic Composition

Authentic Vietnamese recipes do not add eggs or breadcrumbs. The mixture achieves the necessary cohesion thanks to the starch and thorough mixing of the meat with spices.

Alternative: Cooking in Soup

These meatballs can also be cooked in soup instead of frying. Carefully drop them into boiling broth or soup; the meat will firm up, and the meatballs will float to the surface when cooked. This method is used, for example, in light vegetable soups (canh) served with home-cooked rice.

Serving and Sauces

As a main dish with rice: Fried thịt viên are often served in Hanoi with steamed jasmine rice, either plain or mixed with a sauce (e.g., thịt viên sốt cà chua - in tomato sauce, or sốt mắm gừng - in a fish sauce-ginger glaze).

With noodles (bún): Served with cold bún noodles, pickled vegetables, and a sweet and sour fish sauce (nước mắm chua ngọt) dressing, similar to bún chả.

In soup: They are a common ingredient in soups, from light vegetable broths (canh) to heartier noodle soups like bún mọc.

Dips and Sauces: Traditionally, the prepared nước chấm (see recipe above) is served for dipping. Chili sauce (tương ớt) can be an alternative. If the meatballs are served in another sauce (tomato, etc.), a separate dip is not necessary.