Nasi Dagang Recipe: Authentic Malaysian Fish Curry Rice

Camille Hayes Avatar
By:
Camille Hayes
Published:

Why You’ll Love Nasi Dagang

This Malaysian fish curry rice dish has a strong place in east coast cooking because it is filling, fragrant, and easy to serve for breakfast, lunch, or dinner. Nasi Dagang brings together coconut rice, spicy fish curry, and bright side dishes in one bowl or plate, which makes it a satisfying meal for many kinds of eaters.

  • Easy to prepare: The rice cooks in coconut milk with fenugreek seeds and shallots, while the curry and sides can be made in stages. This makes the nasi dagang recipe practical for home cooks who want a clear process.
  • Nutrient-rich meal: Fish brings protein, eggs add more protein, and cucumber, carrot, and chili pickle adds freshness. Coconut milk gives richness, while herbs and spices add flavor without needing heavy sauces.
  • Flexible for different diets: You can adjust the fish, rice blend, or side dishes to suit your needs. It also works well for busy parents, students, and working professionals who want a make-ahead meal.
  • Distinctive flavor: The mix of coconut milk, fenugreek, turmeric, lemongrass, and chili creates a deep savory taste that feels different from many other rice dishes. That balance is what makes authentic Malaysian nasi dagang so memorable.
At its best, nasi dagang is warm, aromatic, and balanced, with creamy rice, spicy curry, and crisp pickles on the side.
Jump To

Essential Ingredients for Nasi Dagang

The ingredients below reflect the classic components of nasi dagang fish curry rice and include the extra side dishes often served with it. Since some source details did not give exact measurements, the list uses practical home kitchen amounts while keeping every required item included.

IngredientAmountPurpose
White rice2 cupsForms the base with a soft, fluffy texture.
Glutinous rice1 cup, soaked overnightAdds the chewy texture found in traditional nasi dagang recipe versions.
Coconut milk2 1/2 cups totalUsed in the rice and fish curry for richness.
Fenugreek seeds1 teaspoonAdds the nutty aroma linked to authentic Malaysian nasi dagang.
Shallots6 to 8, slicedUsed in the rice, curry base, and fried coconut topping.
Tuna or other fish500 gMain protein for the Malaysian fish curry.
Lemongrass2 stalks, bruisedGives the curry a bright, citrus note.
Garlic4 clovesBuilds the savory base of the curry paste.
Chili paste3 tablespoonsAdds heat and color to the curry.
Turmeric1 teaspoonProvides color and earthy flavor.
Shaved coconut1 cupFried with shallots for a crisp, fragrant topping.
Hard-boiled eggs4Traditional side dish for extra protein.
Cucumber1 cup, slicedUsed in the vegetable pickle for freshness and crunch.
Carrots1 cup, juliennedAdds color and sweetness to the pickle.
Fresh chili2, slicedBrings mild heat to the pickle.
Rice vinegar1/2 cupUsed for the pickle brine.
Sugar2 tablespoonsBalances the acidity in the pickle.
Sambal1/2 cupServed on the side for extra spice.
Herb-boiled eggs4Another common serving option with herbs for aroma.
Smoked fish300 gCan be served in spicy gravy for a richer variation.

Special Dietary Options

  • Vegan: Replace fish with firm tofu, tempeh, or jackfruit. Use plant-based coconut milk sides and skip all egg toppings.
  • Gluten-free: This dish is naturally gluten-free when you use pure spices and check that the chili paste and sambal contain no wheat-based fillers.
  • Low-calorie: Use light coconut milk, reduce the fried coconut topping, and serve more cucumber pickle and herbs with a smaller rice portion.

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

Making nasi dagang at home takes a little planning, but the process is straightforward if you break it into parts. For the best result, prepare the rice, curry, pickle, and toppings separately, then assemble everything while it is still warm.

First Step: Soak and prepare the rice

Start by rinsing the white rice and glutinous rice until the water looks mostly clear. Soak the glutinous rice overnight if possible, or for at least 4 hours, so it cooks evenly and turns tender. Drain the rice well before cooking.

Put the rice in a heavy pot with the coconut milk, fenugreek seeds, sliced shallots, and a pinch of salt. Add a little water if needed so the rice has enough liquid to steam properly. Stir gently so the coconut milk does not stick to the bottom.

Second Step: Cook the rice until fluffy

Cook the rice over medium heat until it starts to absorb the liquid, which usually takes about 15 to 20 minutes. Stir from time to time to keep it from scorching. When most of the liquid is gone, lower the heat and cover the pot.

Let the rice steam for about 10 minutes. The rice should be soft, lightly sticky, and aromatic. If the grains still feel firm, add a small splash of warm water and continue steaming for a few more minutes.

Third Step: Make the fish curry base

While the rice cooks, prepare the curry paste. Blend or pound the garlic, chili paste, turmeric, and bruised lemongrass with a few sliced shallots if you want a more layered flavor. This paste is the heart of the Malaysian fish curry.

Heat a little oil in a pot and fry the paste over medium heat until it smells fragrant and the color deepens. This usually takes 3 to 5 minutes. Stir often so the spices do not burn, since burnt chili paste can turn bitter.

Fourth Step: Simmer the curry with the fish

Add the tuna or other fish to the pot, then pour in the coconut milk. If you are using smoked fish in spicy gravy, you can prepare that as a separate rich side or include it as an alternate protein. Add salt to taste and a little water if the curry seems too thick.

Simmer gently for about 10 to 15 minutes, depending on the type and size of fish pieces. Avoid boiling hard, because fish can break apart. The curry is ready when the fish is cooked through and the sauce is smooth and lightly thickened.

Fifth Step: Fry the coconut topping and cook the eggs

In a dry pan, fry the shaved coconut with sliced shallots over low to medium heat until golden and crisp. Stir often so it browns evenly. This topping adds a savory crunch that pairs well with the soft rice.

At the same time, boil the eggs until hard-cooked, about 10 to 11 minutes after the water comes to a boil. For herb-boiled eggs, simmer the eggs with a few herbs of your choice for a more fragrant finish. Peel them once cool enough to handle.

Sixth Step: Make the vegetable pickle and sambal

Mix the cucumber, chili, and carrots with rice vinegar and sugar in a bowl. Let the mixture sit for at least 15 minutes so the flavors can blend. The pickle should taste bright, lightly sweet, and a little sharp.

Serve sambal on the side. You can use your favorite homemade or store-bought sambal, since the dish benefits from a strong chili condiment. The sambal adds heat that balances the coconut rice and creamy curry.

Final Step: Assemble and serve

Spoon the rice onto each plate, then add the fish curry beside it. Top with fried coconut, hard-boiled eggs or herb-boiled eggs, and a small mound of vegetable pickle. Add sambal and, if you like, a portion of smoked fish in spicy gravy for a fuller meal.

Serve the dish while warm so the rice stays soft and the curry remains fragrant. For a balanced plate, include a bit of each component in every bite. If you want more breakfast-style variety, pair it with a refreshing drink like pineapple cucumber agua fresca or a simple iced tea.


Dietary Substitutions to Customize Your Nasi Dagang

Protein and Main Component Alternatives

If tuna is not available, use mackerel, sardines, or another firm fish that holds up well in curry. For a lighter version, choose skinless fish fillets and reduce the oil used in the paste. If you want a vegetarian plate, swap the fish for tofu, tempeh, or roasted mushrooms and keep the coconut curry base.

For the rice, some cooks prefer more glutinous rice for a chewier texture, while others use mostly white rice for a lighter result. If you need a faster version, cook the rice in a rice cooker and then finish it with a short steam. This works well for busy professionals and students.

Vegetable, Sauce, and Seasoning Modifications

Vegetable pickle can be adjusted with daikon, cabbage, or green papaya if cucumber or carrots are not on hand. You can also change the chili level by using mild red chili, bird’s eye chili, or less sambal. If you want a less sweet pickle, cut the sugar in half.

For the curry, use more turmeric for earthiness or more lemongrass for a brighter aroma. If you avoid coconut milk, the dish will not be fully traditional, but you can use a lighter broth with a small amount of coconut cream for flavor. For low-calorie meals, keep the fried coconut topping small and add extra cucumber on the side.

Mastering Nasi Dagang: Advanced Tips and Variations

Pro cooking techniques

Use a heavy-bottomed pot for the rice so the coconut milk heats evenly and does not scorch. Keep the curry at a gentle simmer, not a rolling boil, so the fish stays tender. If the rice feels too wet, leave it covered off the heat for a few extra minutes before serving.

For a richer aroma, fry the shallots until golden before mixing them into the rice. You can also toast the fenugreek seeds lightly for a stronger nutty smell. Small steps like these give the dish the deep flavor people expect from a traditional nasi dagang recipe.

Flavor variations

Some regions use mackerel instead of tuna, while others prefer a stronger sambal or a spicier pickle. You can also add more herbs to the eggs or serve smoked fish in spicy gravy for a fuller coastal-style meal. If you like bold heat, increase the chili paste in the curry paste by one extra tablespoon.

For a simpler home version, keep the side dishes modest and focus on the rice and curry. If you want a breakfast spread, serve the dish with extra pickles and more eggs. That approach works well when you are cooking for family or guests.

Presentation tips and make-ahead options

Serve nasi dagang on a wide plate so each item is visible. Place the rice in a neat mound, then arrange the curry, pickle, eggs, and sambal around it. A small spoonful of fried coconut on top adds texture and makes the plate look complete.

For make-ahead cooking, prepare the curry and pickle one day ahead and refrigerate them. The rice can also be cooked earlier and gently reheated with a splash of water. This is a useful plan for newlyweds, working professionals, and family meal prep.

Simple plating, steady heat, and well-balanced side dishes are the keys to a good nasi dagang fish curry rice plate.

How to Store Nasi Dagang: Best Practices

Refrigeration

Store the rice, curry, pickle, and eggs in separate airtight containers. Keep them in the refrigerator for up to 3 days. Separating the parts helps the rice keep its texture and stops the pickle from softening the other items.

Freezing

The fish curry and rice can be frozen for longer storage, though the texture of the rice may change slightly. Freeze the curry in a sealed container for up to 2 months. For best results, freeze the rice in single portions so it thaws more evenly.

Reheating and meal prep considerations

Reheat the rice with a sprinkle of water, then steam or microwave it until hot. Warm the curry slowly on the stove over low heat. Avoid boiling the curry again, since the fish can break apart. For meal prep, keep sambal and pickle separate until serving so the flavors stay bright.

Nasi Dagang

FAQs: Frequently Asked Questions About Nasi Dagang

What is Nasi Dagang?

Nasi Dagang is a traditional Malaysian rice dish originating from Terengganu and Kelantan states. It features a mix of white rice and glutinous rice cooked in thick coconut milk until fluffy and aromatic, giving it a slightly sticky texture. It’s typically served with spicy fish curry made from tuna or mackerel (ikan tongkol), black sambal, fresh vegetable ulam like cucumber and herbs, pickled vegetables (acar), hard-boiled eggs, and crispy keropok. This hearty meal is popular for breakfast, blending rich, savory flavors with a balance of heat and freshness. It’s a staple in Malay cuisine, often enjoyed during festivals or daily at local stalls. (78 words)

Where did Nasi Dagang originate?

Nasi Dagang traces its roots to the east coast of Peninsular Malaysia, particularly Terengganu and Kelantan. Fishermen communities developed it as a sustaining breakfast dish, using locally abundant coconut milk, rice, and fresh seafood. Historical accounts link it to ancient trading routes where Arab and Indian influences introduced coconut-based cooking. Today, it’s a cultural icon, with Terengganu’s version prized for its distinct glutinous rice ratio and ikan tongkol curry. Visit places like Kuala Terengganu for authentic tastes at morning markets. (82 words)

What are the key ingredients for Nasi Dagang?

Core ingredients include 2 cups white rice, 1 cup glutinous rice (soaked overnight), 2 cups coconut milk, fenugreek seeds, and salt for the rice. The curry uses tuna or mackerel chunks, turmeric, galangal, lemongrass, shallots, chilies, and coconut milk. Accompaniments: sambal (dried chilies, shrimp paste, shallots), acar (cucumber, carrot, chili in vinegar), ulam (betel leaves, cucumber), boiled eggs, and keropok. Source fresh seafood and spices from Asian markets for best results. These create the dish’s signature creamy, spicy profile. (92 words)

How do you make Nasi Dagang at home?

Rinse and soak glutinous rice for 4 hours. In a pot, mix with white rice, coconut milk, 1 tsp fenugreek seeds, salt, and water. Cook on medium heat until liquid absorbs and rice is fluffy (about 20 minutes), then steam 10 minutes. For curry: blend turmeric, galangal, lemongrass, onions, chilies; fry paste, add fish and coconut milk, simmer 15 minutes. Prep sambal by frying blended chilies and belacan; make acar by pickling veggies in vinegar-sugar mix. Serve hot. Total time: 1 hour. Serves 4. (96 words)

What’s the difference between Nasi Dagang and Nasi Lemak?

Both are coconut rice dishes, but Nasi Dagang uses a white-glutinous rice blend for a chewier texture, cooked thicker with fenugreek for nutty aroma, and pairs with fish curry, sambal hitam, and ulam—ideal for east coast breakfasts. Nasi Lemak sticks to plain white rice in thinner coconut milk, served nationwide with sambal, fried anchovies, peanuts, egg, and cucumber. Dagang is more regional and seafood-focused, while Lemak is everyday comfort food. Try both to taste the coastal vs. urban divide. (89 words)

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 77.png

Nasi Dagang

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

🍚 Fragrant glutinous rice infused with coconut and fenugreek meets creamy spicy tuna curry in authentic Malaysian harmony.
🐟 Vibrant Terengganu classic balanced with pickles, sambal, and fried coconut—tropical flavor bomb for breakfast or dinner.

  • Total Time: 1 hour 45 minutes
  • Yield: 4 servings

Ingredients

– 2 cups white rice for base with soft fluffy texture

– 1 cup, soaked overnight glutinous rice for chewy texture

– 2 1/2 cups total coconut milk for richness

– 1 teaspoon fenugreek seeds for nutty aroma

– 6 to 8, sliced shallots for rice curry base and fried coconut topping

– 500 g tuna or other fish for main protein

– 2 stalks, bruised lemongrass for bright citrus note

– 4 cloves garlic for savory curry paste base

– 3 tablespoons chili paste for heat and color

– 1 teaspoon turmeric for color and earthy flavor

– 1 cup shaved coconut for crisp fragrant topping

– 4 hard-boiled eggs for traditional side dish extra protein

– 1 cup, sliced cucumber for vegetable pickle freshness and crunch

– 1 cup, julienned carrots for pickle color and sweetness

– 2, sliced fresh chili for mild heat in pickle

– 1/2 cup rice vinegar for pickle brine

– 2 tablespoons sugar for balancing acidity in pickle

– 1/2 cup sambal served on side for extra spice

– 4 herb-boiled eggs for serving option with aroma

– 300 g smoked fish for richer variation

Instructions

1-First Step: Soak and prepare the rice Start by rinsing the white rice and glutinous rice until the water looks mostly clear. Soak the glutinous rice overnight if possible, or for at least 4 hours, so it cooks evenly and turns tender. Drain the rice well before cooking. Put the rice in a heavy pot with the coconut milk, fenugreek seeds, sliced shallots, and a pinch of salt. Add a little water if needed so the rice has enough liquid to steam properly. Stir gently so the coconut milk does not stick to the bottom.

2-Second Step: Cook the rice until fluffy Cook the rice over medium heat until it starts to absorb the liquid, which usually takes about 15 to 20 minutes. Stir from time to time to keep it from scorching. When most of the liquid is gone, lower the heat and cover the pot. Let the rice steam for about 10 minutes. The rice should be soft, lightly sticky, and aromatic. If the grains still feel firm, add a small splash of warm water and continue steaming for a few more minutes.

3-Third Step: Make the fish curry base While the rice cooks, prepare the curry paste. Blend or pound the garlic, chili paste, turmeric, and bruised lemongrass with a few sliced shallots if you want a more layered flavor. This paste is the heart of the Malaysian fish curry. Heat a little oil in a pot and fry the paste over medium heat until it smells fragrant and the color deepens. This usually takes 3 to 5 minutes. Stir often so the spices do not burn, since burnt chili paste can turn bitter.

4-Fourth Step: Simmer the curry with the fish Add the tuna or other fish to the pot, then pour in the coconut milk. If you are using smoked fish in spicy gravy, you can prepare that as a separate rich side or include it as an alternate protein. Add salt to taste and a little water if the curry seems too thick. Simmer gently for about 10 to 15 minutes, depending on the type and size of fish pieces. Avoid boiling hard, because fish can break apart. The curry is ready when the fish is cooked through and the sauce is smooth and lightly thickened.

5-Fifth Step: Fry the coconut topping and cook the eggs In a dry pan, fry the shaved coconut with sliced shallots over low to medium heat until golden and crisp. Stir often so it browns evenly. This topping adds a savory crunch that pairs well with the soft rice. At the same time, boil the eggs until hard-cooked, about 10 to 11 minutes after the water comes to a boil. For herb-boiled eggs, simmer the eggs with a few herbs of your choice for a more fragrant finish. Peel them once cool enough to handle.

6-Sixth Step: Make the vegetable pickle and sambal Mix the cucumber, chili, and carrots with rice vinegar and sugar in a bowl. Let the mixture sit for at least 15 minutes so the flavors can blend. The pickle should taste bright, lightly sweet, and a little sharp. Serve sambal on the side. You can use your favorite homemade or store-bought sambal, since the dish benefits from a strong chili condiment. The sambal adds heat that balances the coconut rice and creamy curry.

7-Final Step: Assemble and serve Spoon the rice onto each plate, then add the fish curry beside it. Top with fried coconut, hard-boiled eggs or herb-boiled eggs, and a small mound of vegetable pickle. Add sambal and, if you like, a portion of smoked fish in spicy gravy for a fuller meal. Serve the dish while warm so the rice stays soft and the curry remains fragrant. For a balanced plate, include a bit of each component in every bite. If you want more breakfast-style variety, pair it with a refreshing drink like pineapple cucumber agua fresca or a simple iced tea.

Notes

🥥 Soak glutinous rice 30 minutes for perfect fluffy non-sticky texture.
🐟 Use fresh tuna or mackerel; simmer gently to keep fish moist and flaky.
🌶️ Adjust chilies in curry and sambal for your preferred heat level.

  • Author: Brandi Oshea
  • Prep Time: 30 minutes
  • Rice Soaking: 30 minutes
  • Cook Time: 45 minutes
  • Category: Main Course
  • Method: Stovetop
  • Cuisine: Malaysian
  • Diet: None

Nutrition

  • Serving Size: 1 plate
  • Calories: 650
  • Sugar: 12g
  • Sodium: 950mg
  • Fat: 28g
  • Saturated Fat: 18g
  • Unsaturated Fat: 8g
  • Trans Fat: 0g
  • Carbohydrates: 75g
  • Fiber: 4g
  • Protein: 32g
  • Cholesterol: 120mg

Next Recipe

Leave a Comment

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