...
Delish Globe Logo Black

Malaysian Nasi Dagang (Steamed Rice with Fish Curry)

Nasi Dagang (Steamed Rice with Fish Curry)
  • View

Brief Overview

Nasi Dagang is one of those dishes that quietly steals the show. It’s not flashy or overly complex, but the moment it hits your plate, you know you’re in for something special.

Found mostly along Malaysia’s east coast, particularly in Kelantan and Terengganu, this dish is a breakfast favourite that locals take seriously.

The combination of fragrant steamed rice and rich, spiced fish curry might sound simple, but the layers of flavour and texture tell a much deeper story. It’s food with purpose and tradition, often enjoyed with family or during festive gatherings, yet still comforting enough for an everyday morning meal.

What Is Nasi Dagang?

Nasi Dagang, which loosely translates to “trader’s rice”, brings together two key components: steamed rice cooked in coconut milk, and a thick, savoury fish curry.

The rice is typically a mix of regular white rice and glutinous rice, giving it a unique chew and subtle richness. On the side, you’ll usually find pickled vegetables, hard-boiled egg, and sambal or fried grated coconut, depending on regional traditions.

What makes Nasi Dagang stand out is its strong sense of identity. It reflects coastal life with its generous use of fish, especially tuna or mackerel, and it celebrates local produce like coconut and fenugreek. This is not a dish thrown together in a rush.

The rice is steamed gently and infused with coconut milk, ginger, shallots and fenugreek seeds, while the curry is slow-cooked until it’s thick enough to cling to the fish and warm enough to linger on the palate. It’s a meal that takes time, both in preparation and appreciation.

Ingredients and Taste

The rice used in Nasi Dagang is often a local variety with a reddish hue, especially in Kelantan, or a white glutinous blend in Terengganu.

The key is in the coconut milk, not too heavy, not too faint, just enough to give the rice a creamy fragrance without overpowering it. Shallots and fenugreek seeds add depth, while slices of fresh ginger offer a faint but pleasant heat.

The fish curry is usually made with firm fish like tuna or mackerel, simmered in a blend of coconut milk, lemongrass, galangal, turmeric, chilli and tamarind. The result is a thick, earthy gravy that clings to every grain of rice. It’s spicy, but not aggressively so.

There’s warmth, a gentle sweetness from the coconut, and a slight tang from the tamarind. The accompanying pickled vegetables provide a sharp crunch that cuts through the richness, balancing the dish beautifully.

A Taste of History

Nasi Dagang carries the legacy of Malaysia’s trade routes and seafaring culture. Its name hints at its origin, a meal once eaten by traders and travellers who relied on something filling, nourishing and transportable.

The use of preserved fish and steamed rice made it practical, but over time it became something more celebratory. In the coastal states, it’s closely tied to Malay heritage and festive occasions.

While commonly eaten for breakfast today, its preparation still respects traditional methods, often passed down through generations.

Whether enjoyed in a roadside stall wrapped in banana leaf or at home during Hari Raya, Nasi Dagang is a dish that speaks of community, resilience and the quiet richness of Malaysia’s culinary heartland.

It’s more than a plate of rice and curry, it’s a story of culture, coastlines and careful hands.

How To Make Nasi Dagang

Ingredients

For the Rice:

  • 2 cups Thai glutinous rice (or a mix of glutinous rice and jasmine rice, 3:1 ratio)
  • 1¼ cups coconut milk
  • 1 teaspoon fenugreek seeds
  • 1 small shallot, finely sliced
  • ½ teaspoon salt
  • 1 pandan leaf, tied in a knot

For the Fish Curry (Gulai Ikan Tongkol):

  • 500g tuna steaks (traditionally ikan tongkol)
  • 2 tablespoons tamarind pulp soaked in ½ cup warm water (strain to remove seeds)
  • 400ml coconut milk
  • 1 lemongrass stalk, bruised
  • 1 piece asam keping (dried sour fruit, substitute with dried tamarind slice)
  • Salt and sugar to taste

For the Curry Spice Paste:

  • 6 dried red chillies, soaked to soften
  • 4 fresh red chillies
  • 4 shallots
  • 3 cloves garlic
  • 2cm piece fresh ginger
  • 2cm piece galangal
  • 1 teaspoon ground coriander
  • 1 teaspoon ground fennel
  • 1 teaspoon ground cumin

Cooking Instructions

Step 1/10
To begin, rinse the rice thoroughly under cold water until the water runs clear. Soak the rice in water for at least 4 hours or overnight. This softens the grains and allows for even steaming. Drain before cooking.

Step 2/10
Set up a steamer lined with cheesecloth or muslin. Steam the soaked rice for 25–30 minutes over high heat. Halfway through, fluff the rice gently with a fork to ensure even cooking. Once translucent and tender, remove from the steamer.

Step 3/10
While the rice is still warm, transfer it to a large mixing bowl. Gently fold in coconut milk, fenugreek seeds, sliced shallots, salt, and the knotted pandan leaf. Let the rice rest covered for 15 minutes to absorb the flavours and finish cooking in its residual heat.

Step 4/10
Prepare the spice paste by blending all the paste ingredients into a smooth mixture. Add a splash of oil or water if needed for blending. This paste forms the heart of the curry, so ensure it’s well-blended.

Step 5/10
Heat 2 tablespoons of oil in a pot over medium heat. Sauté the spice paste for 5–7 minutes until fragrant and the oil begins to separate. Stir continuously to avoid burning and coax out the deep aroma of the spices.

Step 6/10
Add the bruised lemongrass, tamarind water, and asam keping to the sautéed paste. Simmer for 3–4 minutes, allowing the tartness to blend into the spice base. Taste and adjust with a pinch of salt or sugar as needed.

Step 7/10
Pour in the coconut milk and bring the curry base to a gentle simmer. Stir occasionally and cook uncovered for about 10 minutes. Avoid boiling to prevent the coconut milk from splitting.

Step 8/10
Add the tuna steaks into the simmering curry. Cook gently over low heat for 15–20 minutes or until the fish is cooked through and tender. Spoon the curry over the fish occasionally to baste it in the sauce.

Step 9/10
Once cooked, remove from heat and let the curry rest for 10 minutes. This allows the flavours to deepen and the oil to rise to the top, which is characteristic of a well-balanced gulai.

Final Step/10
To serve, spoon the steamed coconut rice onto individual plates. Place a generous piece of the fish on the side and ladle over the rich curry sauce. Garnish with fresh cucumber slices or pickled vegetables (acar) for contrast. Serve warm, ideally on a banana leaf for a traditional touch.

Cooking Tips for Perfect Nasi Dagang

  • Use the Right Rice: Thai glutinous rice gives the dish its signature texture. Avoid substituting with regular sticky rice.
  • Soak the Rice Properly: Soaking allows the rice to steam evenly and prevents hard centres.
  • Steam, Don’t Boil: The authentic texture comes from steaming, not boiling or cooking like regular rice.
  • Don’t Rush the Spice Paste: Frying it thoroughly ensures depth of flavour and removes rawness.
  • Rest the Curry: Letting the curry sit post-cooking brings out a richer, more complex taste.
  • Use Fresh Coconut Milk: If possible, extract your own coconut milk for a sweeter, more aromatic result.
  • Balance the Flavours: Malaysian curry is a balance of heat, creaminess, and tang. Taste and tweak accordingly.
Nasi Dagang (Steamed Rice with Fish Curry)

Nasi Dagang (Steamed Rice with Fish Curry)

Nasi Dagang is a beloved Malaysian dish, especially popular on the east coast, made with fragrant coconut-infused glutinous rice served alongside a rich, spiced fish curry.
Traditionally steamed and slow cooked, this dish blends creaminess, heat, and tang in perfect harmony. Often enjoyed for breakfast or special occasions, it reflects the depth and diversity of Malaysian culinary heritage.
Prep Time 4 hours 30 minutes
Cook Time 1 hour 30 minutes
Course Main Dishes
Cuisine Malaysian
Servings 4
Calories 926 kcal

Equipment

  • Large mixing bowl​ (for soaking and mixing rice)
  • Fine sieve or colander (for rinsing rice)
  • Steamer with lid (lined with cheesecloth or muslin)
  • Medium saucepan or pot (for cooking the curry)
  • Blender or food processor​ (for the spice paste)
  • Knife and cutting board
  • Wooden spoon or spatula (for sautéing)
  • Measuring cups and spoons​
  • Heatproof serving dish or banana leaves (optional for presentation)

Ingredients
  

For the Rice:

  • 2 cups Thai glutinous rice or a mix of glutinous rice and jasmine rice, 3:1 ratio
  • cups coconut milk
  • 1 teaspoon fenugreek seeds
  • 1 small shallot finely sliced
  • ½ teaspoon salt
  • 1 pandan leaf tied in a knot

For the Fish Curry (Gulai Ikan Tongkol):

  • 500 g tuna steaks traditionally ikan tongkol
  • 2 tablespoons tamarind pulp soaked in ½ cup warm water strain to remove seeds
  • 400 ml coconut milk
  • 1 lemongrass stalk bruised
  • 1 piece asam keping dried sour fruit, substitute with dried tamarind slice
  • Salt and sugar to taste

For the Curry Spice Paste:

  • 6 dried red chillies soaked to soften
  • 4 fresh red chillies
  • 4 shallots
  • 3 cloves garlic
  • 2 cm piece fresh ginger
  • 2 cm piece galangal
  • 1 teaspoon ground coriander
  • 1 teaspoon ground fennel
  • 1 teaspoon ground cumin

Instructions
 

  • To begin, rinse the rice thoroughly under cold water until the water runs clear. Soak the rice in water for at least 4 hours or overnight. This softens the grains and allows for even steaming. Drain before cooking.
  • Set up a steamer lined with cheesecloth or muslin. Steam the soaked rice for 25–30 minutes over high heat. Halfway through, fluff the rice gently with a fork to ensure even cooking. Once translucent and tender, remove from the steamer.
  • While the rice is still warm, transfer it to a large mixing bowl. Gently fold in coconut milk, fenugreek seeds, sliced shallots, salt, and the knotted pandan leaf. Let the rice rest covered for 15 minutes to absorb the flavours and finish cooking in its residual heat.
  • Prepare the spice paste by blending all the paste ingredients into a smooth mixture. Add a splash of oil or water if needed for blending. This paste forms the heart of the curry, so ensure it's well-blended.
  • Heat 2 tablespoons of oil in a pot over medium heat. Sauté the spice paste for 5–7 minutes until fragrant and the oil begins to separate. Stir continuously to avoid burning and coax out the deep aroma of the spices.
  • Add the bruised lemongrass, tamarind water, and asam keping to the sautéed paste. Simmer for 3–4 minutes, allowing the tartness to blend into the spice base. Taste and adjust with a pinch of salt or sugar as needed.
  • Pour in the coconut milk and bring the curry base to a gentle simmer. Stir occasionally and cook uncovered for about 10 minutes. Avoid boiling to prevent the coconut milk from splitting.
  • Add the tuna steaks into the simmering curry. Cook gently over low heat for 15–20 minutes or until the fish is cooked through and tender. Spoon the curry over the fish occasionally to baste it in the sauce.
  • Once cooked, remove from heat and let the curry rest for 10 minutes. This allows the flavours to deepen and the oil to rise to the top, which is characteristic of a well-balanced gulai.
  • To serve, spoon the steamed coconut rice onto individual plates. Place a generous piece of the fish on the side and ladle over the rich curry sauce. Garnish with fresh cucumber slices or pickled vegetables (acar) for contrast. Serve warm, ideally on a banana leaf for a traditional touch.

Nutrition

Serving: 1Calories: 926kcalCarbohydrates: 98gProtein: 41gFat: 43gSaturated Fat: 33gPolyunsaturated Fat: 3gMonounsaturated Fat: 4gCholesterol: 48mgSodium: 381mgPotassium: 1118mgFiber: 6gSugar: 8gVitamin A: 3368IUVitamin C: 70mgCalcium: 96mgIron: 10mg
Tried this recipe?Let us know how it was!

    You May Also Like

    Leave a Review

    Your email address will not be published. Required fields are marked *

    Recipe Rating