Go Back

Ketoprak: Indonesian Tofu & Peanut Noodle Salad

Ketoprak is a comforting street food dish from Jakarta, Indonesia, made of soft rice noodles, crunchy bean sprouts, crispy tofu, and a rich, aromatic peanut sauce. Traditionally served at room temperature, it’s a naturally vegetarian dish that balances sweet, savory, spicy, and nutty flavors. It’s casual, satisfying, and surprisingly simple to make at home.
Prep Time 20 minutes
Cook Time 15 minutes
Total Time 35 minutes
Servings: 6 people
Course: Breakfast, Main Course, Street Food
Cuisine: Betawi (Jakarta), Indonesian
Calories: 450

Ingredients
  

Main Ingredients
  • 15 cubes of tahu kuning Indonesian yellow tofu; substitute with extra-firm tofu, fried until golden
  • 7 oz 200 g bihun (rice vermicelli noodles; soak in hot water for 5–10 minutes, then drain)
  • 10 oz 300 g tauge (mung bean sprouts; blanched for 30 seconds in boiling water)
  • 8 pieces lontong or ketupat compressed rice cakes; substitute: cooked sushi rice, pressed into a container, chilled, then cut into cubes
  • A handful of kerupuk merah red tapioca crackers; substitute: shrimp chips, rice crackers, or prawn crackers
  • 2 tbsp bawang goreng crispy fried shallots; available pre-made or make at home
Peanut Sauce
  • 17 oz 500 g kacang tanah (raw peanuts; fried or roasted until golden brown)
  • 5 cloves garlic
  • 4 cabai rawit bird’s eye chili, boiled; substitute: Thai chili or any hot small chili
  • 8 cabai merah large red chili, boiled; substitute: red Fresno, red jalapeño, or red bell pepper + chili
  • 2 tbsp gula merah Indonesian palm sugar; substitute: dark brown sugar or coconut sugar
  • 3 tbsp kecap manis sweet soy sauce; substitute: soy sauce + molasses or brown sugar
  • 1 tbsp white vinegar
  • ½ –1 cup warm water adjust to reach desired sauce consistency
  • Salt to taste
  • Cooking oil as needed (for frying)

Instruction
 

Fry the Components
  1. Heat enough oil in a pan to shallow-fry. Fry the raw peanuts over medium heat until golden brown. Remove and let them cool.
  2. In the same oil, fry tofu until golden and crispy. Remove, drain on paper towels, cut into bite-sized cubes, and set aside.
  3. Quickly fry the kerupuk (crackers) just until puffed. Drain and store in an airtight container.
Prepare the Peanut Sauce
  1. In a blender or food processor (or use a mortar and pestle), grind the garlic, boiled chilies, and salt into a paste.
  2. Add the fried peanuts and blend until smooth or chunky (depending on preference).
  3. Stir in grated gula merah, kecap manis, and vinegar.
  4. Gradually add warm water (start with ½ cup) and mix until the sauce is thick but pourable. Adjust seasoning with more salt or sugar as needed.
Assemble the Dish
  1. On a plate, arrange cubes of lontong, softened rice noodles, bean sprouts, and fried tofu.
  2. Generously pour the peanut sauce over the top, making sure everything is well-coated.
  3. Garnish with bawang goreng (crispy shallots) and serve with kerupuk on the side or on top for added crunch.

Notes

  • Lontong/Ketupat substitute: In the U.S. or Europe, these rice cakes can be mimicked by cooking sushi rice, pressing it into a container, chilling, and cutting into cubes. You can also use Korean rice cakes (garaetteok), sliced and boiled until tender.
  • Tofu: Use extra-firm tofu for the best texture. Press before frying for extra crispness.
  • Peanuts: If short on time, you can use natural peanut butter (unsweetened and unsalted), about 1¼ cups, instead of grinding fried peanuts.
  • Kecap Manis: Available in most Asian supermarkets, but a quick alternative is to mix soy sauce with brown sugar or molasses (2 parts soy to 1 part sugar).
  • Make-ahead tip: The peanut sauce can be made 1–2 days ahead and stored in the fridge. Thin with a little water before serving if it thickens.
  • Spice control: Reduce or omit cabai rawit for a milder sauce, or add more for extra heat.
  • Vegan-friendly: This dish is naturally vegan as long as the crackers used contain no shrimp.