Nasi Dagang Recipe: Authentic Malaysian Fish Curry and Rice

Rebecca Lynn Avatar
By:
Rebecca Lynn
Published:

[grow_share_buttons]

Why You’ll Love This Nasi Dagang

Nasi Dagang is a classic Malaysian meal built around steamed rice cooked in coconut milk, served with a fragrant fish curry and a range of fresh, savory sides. It is filling, flavorful, and practical for home cooks who want a dish that feels special without needing complicated methods. For readers looking for an authentic nasi dagang experience, this version keeps the core elements that make the dish so well known in the east coast of Malaysia.

  • Easy to prepare: The rice, curry, and toppings can be cooked in stages, which makes this nasi dagang recipe manageable for busy households.
  • Balanced and satisfying: Coconut milk adds richness, while fish, eggs, pickles, and vegetables bring protein, texture, and brightness.
  • Flexible for many eaters: You can swap the fish, adjust the spice level, or use purple glutinous rice for a regional style that fits your pantry and needs.
  • Distinctive flavor: Fenugreek seeds, shallots, lemongrass, galangal, turmeric, and chilli paste create the deep aroma that defines traditional nasi dagang terengganu.

For readers who enjoy learning about Malaysian staples, this dish sits in the same family of comforting rice meals as Malaysian coconut rice dishes, but it has its own profile thanks to the fish curry and pickled sides. If you want another hearty meal idea for a busy weeknight, you may also like this slow cooker French dip sandwich recipe from my site.

Nasi Dagang is known for contrast: soft coconut rice, rich curry, crunchy fried coconut, briny pickles, and the clean finish of cucumber and chilli in vinegar.

What makes this dish stand out

The appeal of authentic nasi dagang is the balance. The rice is steamed rather than boiled, so it stays tender and fragrant. The curry is cooked with tuna or another firm fish, then rounded out with coconut milk and warm spices. Fried coconut, hard-boiled eggs, and pickled vegetables finish the plate and give every bite a mix of savory, tangy, and mildly sweet notes.

Jump to:

Essential Ingredients for Nasi Dagang

This nasi dagang recipe Malaysian style uses pantry-friendly ingredients, but the flavor depends on the classic combination of coconut, spice, and aromatics. Since the source dish is often made by feel rather than exact measures, the amounts below are practical home-cook estimates that keep the traditional structure intact.

ComponentIngredientsPurpose
Rice2 cups jasmine rice, 1/2 cup purple glutinous rice, 2 cups coconut milk, 1 tablespoon fenugreek seeds, 4 shallots, 1 1/2 teaspoons saltCreates the signature coconut rice with a fragrant, slightly earthy aroma
Fish curry1 pound tuna or other firm fish, 2 cups coconut milk, 2 stalks lemongrass, 1-inch galangal, 3 tablespoons chilli paste, 1 teaspoon turmeric, 2 shallots, 1 tablespoon oil, salt to tasteBuilds the rich, spicy curry served over or beside the rice
Fried coconut1 cup shaved coconut, 2 shallots, 1 tablespoon oil, pinch of saltAdds a savory topping with texture and toasted flavor
Pickles and garnish1 cucumber, 2 carrots, 2 red chillies, 1/2 cup rice vinegar, 2 tablespoons sugar, 4 hard-boiled eggs, sambal as neededBrings freshness, acidity, heat, and a final layer of richness

Main ingredients list

  • 2 cups jasmine rice – forms the base of the dish and gives a soft, fragrant texture.
  • 1/2 cup purple glutinous rice – optional, for a deeper color and a chewier bite in some regional versions.
  • 2 cups coconut milk for the rice – adds richness and the signature creamy taste.
  • 1 tablespoon fenugreek seeds – gives the rice its traditional earthy aroma.
  • 4 shallots, finely sliced or blended – used in both the rice and curry for sweetness and depth.
  • 1 1/2 teaspoons salt – seasons the rice.
  • 1 pound tuna or other firm fish – the protein for the curry.
  • 2 cups coconut milk for the curry – creates a smooth, rich sauce.
  • 2 stalks lemongrass, bruised – adds citrus scent and flavor.
  • 1-inch piece galangal, sliced – contributes a sharp, pine-like note.
  • 3 tablespoons chilli paste – gives the curry its heat and color.
  • 1 teaspoon turmeric – adds warmth and a golden hue.
  • 1 tablespoon oil – used to cook the spice base.
  • 1 cup shaved coconut – becomes the fried coconut topping.
  • 2 red chillies, thinly sliced – part of the pickled vegetables.
  • 1/2 cup rice vinegar – provides the pickling liquid.
  • 2 tablespoons sugar – balances the vinegar in the pickle.
  • 4 hard-boiled eggs – a classic serving component.
  • Sambal as needed – optional, but common for extra heat.

Special dietary options

  • Vegan: Replace fish with tofu, tempeh, or mushrooms. Use a plant-based sambal and skip the hard-boiled eggs.
  • Gluten-free: This dish is naturally gluten-free when your chilli paste and sambal are certified gluten-free.
  • Low-calorie: Use light coconut milk, reduce fried coconut, and serve extra cucumber and carrot pickle for a fresher plate.

How to Prepare the Perfect Nasi Dagang: Step-by-Step Guide

First Step: Rinse and soak the rice

Start by rinsing the jasmine rice and purple glutinous rice, if using, until the water runs mostly clear. Soak the rice for 30 minutes so it cooks evenly and absorbs the coconut milk more smoothly. While the rice rests, slice the shallots and prepare the other components so the process stays organized.

Second Step: Season the rice mixture

Combine the drained rice with coconut milk, fenugreek seeds, sliced shallots, and salt in a rice cooker or a heavy pot. Stir gently so the grains are coated without breaking. If you are using a pot, keep the heat low once it begins to simmer, then cover tightly to trap steam.

Third Step: Steam the rice until tender

Cook the rice until the grains are soft, fragrant, and fully tender. In a rice cooker, this may take 30 to 40 minutes depending on the model. On the stovetop, simmer gently for about 20 minutes, then turn off the heat and let it rest covered for 10 to 15 minutes. This resting time helps the coconut rice finish steaming without becoming wet or sticky.

Fourth Step: Build the fish curry base

Heat oil in a saucepan over medium heat. Add the shallots, turmeric, chilli paste, lemongrass, and galangal, then cook for 2 to 3 minutes until the spices smell fragrant. This step is important because it removes any raw edge from the paste and sets the flavor of the curry.

Fifth Step: Add coconut milk and fish

Pour in the coconut milk slowly while stirring. Bring the mixture to a gentle simmer, not a hard boil, because coconut milk can separate at high heat. Add the tuna or other firm fish and cook until it is just done and flakes easily. Depending on the cut, this usually takes 8 to 12 minutes. Season with salt and taste the curry for balance. If it feels too thick, add a splash of water.

Sixth Step: Make the fried coconut topping

Place a small pan over medium heat and warm a little oil. Add shaved coconut and finely sliced shallots, then stir until the mixture turns lightly golden and smells toasted. Keep the heat moderate so the coconut does not burn. The goal is a dry, savory topping that adds texture rather than a sweet coconut candy flavor.

Seventh Step: Prepare the pickled vegetables

Mix rice vinegar and sugar in a bowl until the sugar dissolves. Add thinly sliced cucumber, carrots, and chilli. Let the vegetables sit for at least 15 minutes so they develop a bright, lightly sweet and sour taste. The pickles should stay crisp, because they are meant to cut through the richness of the coconut milk and fried coconut.

Eighth Step: Assemble the plate

Spoon the steamed coconut rice onto each plate. Ladle the fish curry beside or slightly over the rice, then add hard-boiled eggs, fried coconut, and the pickled vegetables. Add sambal if you want more heat. For a traditional presentation, keep each part visible so diners can mix the flavors as they eat.

Ninth Step: Serve while warm

Serve Nasi Dagang warm so the curry stays silky and the rice remains fragrant. The dish is best eaten soon after assembly, when the coconut rice is soft, the pickle is crisp, and the fried coconut still has texture. If you are serving guests, place extra sambal and pickles on the table so everyone can adjust the plate to taste.

Nasi Dagang Recipe: Authentic Malaysian Fish Curry And Rice 9

Dietary Substitutions to Customize Your Nasi Dagang

Protein and main component alternatives

If you cannot find tuna, use mackerel, snapper, or another firm fish that holds together in curry. For a plant-based version, tofu or tempeh can stand in for the fish, though they work best when lightly browned first. If you want a richer regional variation, use more purple glutinous rice, which gives the dish a deeper color and a slightly sticky texture.

For those looking for a lighter meal, reduce the amount of coconut milk in the rice and use a thinner curry sauce. You can also serve a larger portion of cucumber and carrot pickle with a smaller scoop of rice. That keeps the plate satisfying while lowering the richness.

Vegetable, sauce, and seasoning modifications

Adjust the pickles with whatever crisp vegetables you have on hand, such as cabbage or radish, while keeping the rice vinegar and sugar balance. If you want less heat, reduce the chilli paste and use mild sambal or skip it entirely. If you prefer a stronger aroma, add a little more galangal or a second bruised lemongrass stalk.

For readers who like simple weeknight cooking, the curry can be made ahead and reheated gently before serving. The rice can also be steamed earlier in the day and refreshed with a splash of coconut milk. These changes still keep the character of traditional nasi dagang terengganu intact.

Mastering Nasi Dagang: Advanced Tips and Variations

Pro cooking techniques

Use low heat when simmering the curry so the coconut milk stays smooth. If the sauce begins to split, lower the heat immediately and stir gently. Bruise the lemongrass well before adding it, because that releases more of its citrus fragrance into the sauce.

For the rice, avoid stirring too much once it starts cooking. Too much movement can break the grains and make the coconut rice heavy. Letting the rice rest after cooking is one of the easiest ways to improve texture.

Flavor variations

Some cooks add more turmeric for a brighter curry, while others prefer extra chilli paste for a stronger finish. Purple glutinous rice can be mixed with jasmine rice for a more rustic look and a slightly chewy texture. You can also serve a stronger sambal on the side if you like bold heat.

Presentation tips

For a clean plate, shape the rice into a mound and place the curry to one side. Arrange the hard-boiled eggs, pickled vegetables, and fried coconut in separate sections so the colors stand out. A small spoonful of sambal on the edge of the plate adds brightness and signals the dish’s layered flavor.

Make-ahead options

Make the curry and pickles a day ahead for easier serving. Store the fried coconut separately so it stays crisp. The rice is best fresh, but it can be steamed earlier and kept warm in a covered container for a short period. These small steps help when cooking for family meals or weekend gatherings.

How to Store Nasi Dagang: Best Practices

Refrigeration: Store the rice, curry, pickles, and toppings in separate airtight containers. The curry and rice will keep for up to 3 days in the refrigerator, while pickles often last a little longer because of the vinegar.

Freezing: Freeze the curry for up to 2 months in a sealed container. Rice can also be frozen, though the texture is best when freshly cooked. Do not freeze the pickles or fried coconut.

Reheating: Reheat the curry gently over low heat, adding a splash of water or coconut milk if needed. Steam or microwave the rice with a damp paper towel on top to keep it soft. Re-crisp the fried coconut briefly in a dry pan if necessary.

Meal prep considerations: Batch-cook the curry and pickle the vegetables ahead of time, then prepare the rice closer to serving. This keeps the plate fresh and saves time on busy days.

Nasi Dagang
Nasi Dagang Recipe: Authentic Malaysian Fish Curry And Rice 10

FAQs: Frequently Asked Questions About Nasi Dagang

Print
clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Nasi Dagang 14.Png

Nasi Dagang

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

🍚 Savor the fragrant coconut milk-infused rice with fenugreek aroma, perfectly complemented by rich, spicy fish curry in this traditional Malaysian delight that’s nourishing and satisfying.
🌶️ Try Nasi Dagang for an authentic Southeast Asian experience, packed with fresh ingredients, healthy fish protein, and vibrant flavors ideal for family meals or gatherings.

  • Total Time: 2 hours
  • Yield: 4 servings

Ingredients

– 2 cups jasmine rice

– 1/2 cup purple glutinous rice

– 2 cups coconut milk for the rice

– 1 tablespoon fenugreek seeds

– 4 shallots

– 1 1/2 teaspoons salt

– 1 pound tuna or other firm fish

– 2 cups coconut milk for the curry

– 2 stalks lemongrass

– 1-inch piece galangal

– 3 tablespoons chilli paste

– 1 teaspoon turmeric

– 1 tablespoon oil

– 1 cup shaved coconut

– 1 cucumber

– 2 carrots

– 2 red chillies

– 1/2 cup rice vinegar

– 2 tablespoons sugar

– 4 hard-boiled eggs

– Sambal as needed

Instructions

1-First Step: Rinse and soak the rice Start by rinsing the jasmine rice and purple glutinous rice, if using, until the water runs mostly clear. Soak the rice for 30 minutes so it cooks evenly and absorbs the coconut milk more smoothly. While the rice rests, slice the shallots and prepare the other components so the process stays organized.

2-Second Step: Season the rice mixture Combine the drained rice with coconut milk, fenugreek seeds, sliced shallots, and salt in a rice cooker or a heavy pot. Stir gently so the grains are coated without breaking. If you are using a pot, keep the heat low once it begins to simmer, then cover tightly to trap steam.

3-Third Step: Steam the rice until tender Cook the rice until the grains are soft, fragrant, and fully tender. In a rice cooker, this may take 30 to 40 minutes depending on the model. On the stovetop, simmer gently for about 20 minutes, then turn off the heat and let it rest covered for 10 to 15 minutes. This resting time helps the coconut rice finish steaming without becoming wet or sticky.

4-Fourth Step: Build the fish curry base Heat oil in a saucepan over medium heat. Add the shallots, turmeric, chilli paste, lemongrass, and galangal, then cook for 2 to 3 minutes until the spices smell fragrant. This step is important because it removes any raw edge from the paste and sets the flavor of the curry.

5-Fifth Step: Add coconut milk and fish Pour in the coconut milk slowly while stirring. Bring the mixture to a gentle simmer, not a hard boil, because coconut milk can separate at high heat. Add the tuna or other firm fish and cook until it is just done and flakes easily. Depending on the cut, this usually takes 8 to 12 minutes. Season with salt and taste the curry for balance. If it feels too thick, add a splash of water.

6-Sixth Step: Make the fried coconut topping Place a small pan over medium heat and warm a little oil. Add shaved coconut and finely sliced shallots, then stir until the mixture turns lightly golden and smells toasted. Keep the heat moderate so the coconut does not burn. The goal is a dry, savory topping that adds texture rather than a sweet coconut candy flavor.

7-Seventh Step: Prepare the pickled vegetables Mix rice vinegar and sugar in a bowl until the sugar dissolves. Add thinly sliced cucumber, carrots, and chilli. Let the vegetables sit for at least 15 minutes so they develop a bright, lightly sweet and sour taste. The pickles should stay crisp, because they are meant to cut through the richness of the coconut milk and fried coconut.

8-Eighth Step: Assemble the plate Spoon the steamed coconut rice onto each plate. Ladle the fish curry beside or slightly over the rice, then add hard-boiled eggs, fried coconut, and the pickled vegetables. Add sambal if you want more heat. For a traditional presentation, keep each part visible so diners can mix the flavors as they eat.

9-Ninth Step: Serve while warm Serve Nasi Dagang warm so the curry stays silky and the rice remains fragrant. The dish is best eaten soon after assembly, when the coconut rice is soft, the pickle is crisp, and the fried coconut still has texture. If you are serving guests, place extra sambal and pickles on the table so everyone can adjust the plate to taste.

Last Step:

Please leave a rating and comment letting us know how you liked this recipe! This helps our business to thrive and continue providing free, high-quality recipes for you.

Notes

🍚 Soak glutinous rice for better texture if using a variant with purple rice.
🐟 Choose fresh firm fish like tuna to prevent breaking apart in the curry.
🥥 Toast belacan lightly to enhance its umami without bitterness.

  • Author: Brandi Oshea
  • Prep Time: 45 minutes
  • Pickling Time: 30 minutes
  • Cook Time: 45 minutes
  • Category: Main Course
  • Method: Steaming
  • Cuisine: Malaysian
  • Diet: Pescatarian

Nutrition

  • Serving Size: 1 plate
  • Calories: 850 kcal
  • Sugar: 15 g
  • Sodium: 1200 mg
  • Fat: 45 g
  • Saturated Fat: 30 g
  • Unsaturated Fat: 12 g
  • Trans Fat: 0 g
  • Carbohydrates: 90 g
  • Fiber: 6 g
  • Protein: 30 g
  • Cholesterol: 150 mg

Next Recipe

Leave a Comment

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star