Why You’ll Love This Nasi Dagang
Nasi Dagang is one of Malaysia’s most distinctive rice dishes, and it stands out for good reason. This traditional meal from Terengganu and Kelantan brings together coconut rice, fish curry, fried coconut, eggs, and pickles in one satisfying plate. It is served hot or at room temperature, so it works well for breakfast, brunch, lunch, or a packed meal.
- Easy to prepare in stages: The dish looks elaborate, but each part is simple on its own. The rice is steamed twice, the curry simmers in one pot, and the sides can be prepared while the rice cooks.
- Good balance of nutrients: A serving gives you carbohydrates from rice, protein from fish and eggs, and fats from coconut milk. It also includes vegetables from the pickles, which add freshness and fiber.
- Flexible for different diets: You can swap tuna for mackerel, chicken, or prawns, and you can adjust the spice level to suit your household.
- Rich, layered flavor: Coconut milk, turmeric, fenugreek, tamarind, lemongrass, and chili paste create a taste that is creamy, savory, spicy, and lightly tangy all at once.
For readers who enjoy regional rice dishes, you may also like this related guide on home-style Malaysian rice and curry recipes. The method here fits busy cooks because much of the time is passive soaking or steaming, and the final result feels special enough for family meals or guests.
Tip: If you want the most authentic flavor, use special beras nasi dagang rice and steam it twice. That simple detail makes a major difference in texture.
Jump To
- 1. Why You’ll Love This Nasi Dagang
- 2. Essential Ingredients for Nasi Dagang
- 3. How to Prepare the Perfect Nasi Dagang: Step-by-Step Guide
- 4. Dietary Substitutions to Customize Your Nasi Dagang
- 5. Mastering Nasi Dagang: Advanced Tips and Variations
- 6. How to Store Nasi Dagang: Best Practices
- 7. FAQs: Frequently Asked Questions About Nasi Dagang
- 8. Nasi Dagang
Essential Ingredients for Nasi Dagang
This recipe serves 4 to 6 people and is built from four main parts: coconut rice, fish curry, fried coconut, and accompaniments. Every ingredient matters because this dish depends on balance. The rice should be rich but not heavy, the curry should be spicy but smooth, and the side dishes should bring freshness and crunch.
Main Ingredients
- 2 cups (400g) glutinous rice or special beras nasi dagang rice – Gives the dish its signature soft, sticky texture.
- 2 cups (500ml) thick coconut milk – Adds creaminess and the mild sweetness that defines the rice.
- 1 tsp (5g) fenugreek seeds – Provides the classic aroma linked to traditional Nasi Dagang.
- 4 shallots, thinly sliced, about 100g – Lends gentle onion flavor to the rice.
- 1/2 tsp (2g) turmeric powder, optional – Adds a light golden color and warm flavor.
- Salt to taste – Brings out the flavor in the rice.
Fish Curry Ingredients
- 500g fresh tuna or mackerel fillets, cut into chunks – The main protein for the curry.
- 2 cups (500ml) coconut milk – Forms the rich curry base.
- 3 tbsp (45g) chili paste, made from 10 dried chilies and 5 fresh red chilies – Gives the curry its heat and color.
- 2 stalks lemongrass, bruised – Adds a citrus note.
- 2 tsp (10g) turmeric powder – Supports the color and earthy flavor.
- 1 tbsp (15g) tamarind paste or 2 tbsp tamarind juice – Adds tang and balances the coconut milk.
- 4 shallots, blended, about 100g – Builds the curry base.
- 2 garlic cloves, blended, about 10g – Adds depth.
- 1-inch ginger, blended, about 10g – Adds warmth and freshness.
- Salt and sugar to taste – Balances the spice and tang.
- 2 tbsp vegetable oil – Used for frying the aromatics.
Fried Coconut Ingredients
- 2 cups (200g) freshly grated coconut – Gives the savory topping a toasted flavor.
- 4 shallots, sliced, about 100g – Adds sweetness once fried.
- Salt to taste – Seasons the coconut mixture.
- 2 tbsp vegetable oil – Helps the coconut toast evenly.
Accompaniments
- 4 hard-boiled eggs, quartered – Add protein and richness.
- 1 cucumber, sliced – Part of the pickled vegetables for freshness.
- 2 carrots, julienned – Add color and crunch to the pickles.
- 2 red chilies, sliced – Bring a mild kick to the pickles.
- 1/2 cup (120ml) rice vinegar – Used for the quick pickle brine.
- 2 tbsp (25g) sugar – Balances the vinegar.
- 2 tbsp sambal chili paste, optional – Adds extra heat at the table.
- 4 telur pindang, optional – Herbs-boiled eggs for a more traditional serving.
Special Dietary Options
- Vegan: Replace fish with firm tofu or tempeh, use plant-based coconut milk, and swap eggs for extra vegetables or fried tofu.
- Gluten-free: This dish is naturally gluten-free if your curry paste and sambal are free from hidden wheat-based ingredients.
- Low-calorie: Use light coconut milk in part of the curry, reduce the rice portion, and increase pickled vegetables and cucumber on the plate.
For readers interested in the broader role of coconut milk in cooking, this useful external resource on coconut milk nutrition and kitchen use offers helpful background.
How to Prepare the Perfect Nasi Dagang: Step-by-Step Guide
First Step: Soak the rice
Start by rinsing 2 cups of glutinous rice or beras nasi dagang rice, then soak it in water for 4 to 8 hours or overnight. This step helps the grains cook evenly and become soft without breaking apart. After soaking, drain the rice well so the coconut milk can coat the grains properly during steaming.
Second Step: Season and steam the rice
Place the drained rice in a heatproof bowl or steaming tray. Mix in 2 cups of thick coconut milk, fenugreek seeds, sliced shallots, turmeric powder if using, and salt. Steam for 20 to 25 minutes until the rice is half-cooked. The rice should look swollen but still slightly firm in the center.
Next, add another 1 cup, about 250ml, of coconut milk, stir gently, and steam again for 20 to 25 minutes. This second steaming gives Nasi Dagang its creamy, fluffy texture. Do not stir too aggressively, because the grains can break and become mushy. The final rice should smell fragrant, feel tender, and hold together lightly.
Third Step: Prepare the spice base for the curry
While the rice steams, heat 2 tbsp vegetable oil in a saucepan over medium heat. Add the blended shallots, garlic, ginger, chili paste, bruised lemongrass, and turmeric powder. Fry for about 5 minutes, stirring often, until the mixture smells cooked and the oil begins to separate slightly. This step removes the raw edge from the spices and builds the curry flavor.
If your chili paste is very hot, you can reduce the amount slightly and make up the difference with extra fresh chilies or a milder paste. If you want a stronger color and deeper taste, let the paste cook a little longer, but lower the heat if it starts to stick.
Fourth Step: Simmer the fish curry
Pour in the coconut milk and tamarind paste or tamarind juice. Stir well so the spice base blends into the liquid. Add the tuna or mackerel chunks and simmer for 10 to 15 minutes, or until the fish is cooked through and flakes easily. Keep the heat gentle because strong boiling can break the fish apart and cause the coconut milk to split.
Season with salt and a little sugar to taste. The curry should be rich, slightly tangy, and mildly sweet, with enough chili heat to balance the coconut milk. If it tastes flat, add a small pinch of salt. If it tastes too sharp, add a little sugar.
Fifth Step: Cook the fried coconut topping
In a separate pan, heat 2 tbsp vegetable oil over medium heat. Add the sliced shallots and fry briefly until fragrant. Then add the freshly grated coconut and salt. Stir constantly for 5 to 7 minutes until the coconut turns golden and slightly crisp. This part is important because it adds texture and a toasted aroma that contrasts with the soft rice and creamy curry.
Do not leave the coconut unattended, since it can go from golden to burnt very quickly. A light brown color is ideal. Once cooked, set it aside to cool slightly.
Sixth Step: Prepare the eggs and pickles
Boil the eggs for about 10 minutes, then cool them in cold water, peel, and quarter them. For the pickled vegetables, combine the sliced cucumber, julienned carrots, and sliced red chilies in a bowl. Mix the rice vinegar and sugar until the sugar dissolves, then pour it over the vegetables and let them soak for 1 hour. This quick pickle adds crunch and brightness to the finished dish.
If you want a fuller traditional spread, prepare telur pindang ahead of time. These herb-boiled eggs add color and a deeper savory flavor.
Seventh Step: Assemble and serve
Serve the steamed rice on a plate, spoon the fish curry beside it, and top or side it with the fried coconut. Add the hard-boiled eggs and pickled vegetables. If you like extra heat, add sambal chili paste. Nasi Dagang is often served as a complete meal, so aim for a balanced plate with rice, curry, protein, and fresh sides.
Serving note: Nasi Dagang can be eaten hot or at room temperature, but the curry tastes best when freshly made and still warm.
| Component | Key Flavor | Cooking Method |
|---|---|---|
| Rice | Creamy, fragrant, lightly savory | Soak and steam twice |
| Fish curry | Spicy, tangy, rich | Simmer in coconut milk |
| Fried coconut | Toasted, savory, aromatic | Pan-fry until golden |
| Pickles and eggs | Fresh, crisp, mild | Quick pickle and boil |
Dietary Substitutions to Customize Your Nasi Dagang
Protein and Main Component Alternatives
If tuna is hard to find, mackerel is the closest traditional substitute and gives the curry a rich, oily finish. Chicken is another practical option, and 500g of chicken pieces will work well in place of fish. Prawns also suit the dish if you want a seafood version with a faster cooking time. For a vegetarian plate, use tofu, tempeh, or mushrooms in the curry and add more pickles and vegetables on the side.
Vegetable, Sauce, and Seasoning Modifications
You can adjust the pickled vegetables by adding radish, cabbage, or sliced green beans if those are what you have on hand. For a milder curry, reduce the chili paste and use fewer fresh chilies in the blend. For a stronger aroma, increase the fenugreek slightly or add a little more shallot to the rice. If you are watching salt, season lightly and let the pickles and sambal bring extra punch at the table.
For those who enjoy east coast Malaysian dishes, it can be helpful to compare this meal with other rice-based favorites on the site, such as our collection of traditional Malaysian comfort foods. That context makes it easier to see how Nasi Dagang fits into the wider food culture of Terengganu, Kelantan, Pahang, southern Thailand, and parts of Indonesia.
Mastering Nasi Dagang: Advanced Tips and Variations
Pro cooking techniques
The best Nasi Dagang starts with proper rice treatment. Soaking the rice for the full 4 to 8 hours helps it cook more evenly, and steaming it twice creates the soft but separate texture the dish is known for. Keep the curry at a gentle simmer so the coconut milk stays smooth. If the curry boils too hard, the fish can fall apart and the sauce may look grainy.
Another useful technique is to taste each component separately before serving. The rice should be lightly salty, the curry should have a clear balance of spice and tang, and the fried coconut should taste toasted but not bitter. Small adjustments at the end are often what make the dish taste finished.
Flavor variations
Some cooks add a bit more turmeric for a deeper golden color, while others keep it subtle. You can also adjust the heat by changing the ratio of dried chilies to fresh chilies in the paste. If you want a richer table spread, add extra sambal chili paste and telur pindang. For a more filling meal, serve it with additional cucumbers or a simple herb salad.
Presentation tips
Arrange the rice in a neat mound, place the curry beside it, and keep the pickles in a small side section so their color stands out. Scatter the fried coconut on top or along the edge of the plate. Quartered eggs make the dish look complete and also help show the traditional structure of the meal.
Make-ahead options
The pickles can be made a day ahead, which improves their flavor. The curry can also be cooked earlier and gently reheated before serving. If you are cooking for a busy schedule, soak the rice the night before and prepare the spice paste in advance. That way, the final steaming and assembly are much faster.
How to Store Nasi Dagang: Best Practices
Store leftovers separately whenever possible. The rice, curry, coconut topping, eggs, and pickles each keep better on their own, and the textures stay closer to their original state.
- Refrigeration: Keep the rice and curry in sealed containers in the refrigerator for up to 3 days. Store the pickles separately so they stay crisp.
- Freezing: The fish curry freezes better than the rice. Freeze it in a freezer-safe container for up to 1 month. Rice can be frozen, but the texture may soften after thawing.
- Reheating: Reheat the curry gently on the stove with a splash of water or coconut milk. Steam or microwave the rice until hot. Warm the coconut topping briefly in a dry pan.
- Meal prep: Soak the rice, blend the curry base, and pickle the vegetables ahead of time. This makes the final cooking day much easier.

FAQs: Frequently Asked Questions About Nasi Dagang
What is Nasi Dagang?
Nasi Dagang is a traditional Malaysian rice dish from the east coast states of Terengganu and Kelantan. It features glutinous rice steamed and cooked in thick coconut milk until fluffy and aromatic, paired with a rich fish curry made from tuna or mackerel (ikan tongkol), simmered with galangal, turmeric, shallots, and lemongrass. Accompaniments include sambal tumis (spicy relish), boiled egg, ulam (fresh herbs like daun kesum), and pickled vegetables. This breakfast staple gets its name from “nasi dagang,” meaning “trader’s rice,” linked to its popularity among coastal fishermen and traders. It’s mildly sweet from coconut, spicy from curry, and balances textures for a hearty meal. Serve hot for the best flavor—widely enjoyed during festivals like Hari Raya.
Where did Nasi Dagang originate?
Nasi Dagang originated in Terengganu, Malaysia, among the Malay fishing communities along the east coast. Its roots trace back to the 19th century when coastal traders and fishermen prepared it as a portable, filling breakfast using local ingredients like fresh-caught tuna and glutinous rice. Influences from Javanese migrants blended with Terengganu’s seafood abundance and coconut groves. Kelantan has a variant, but Terengganu’s version is UNESCO-recognized for cultural heritage. Today, it’s a symbol of east coast Malay cuisine, often sold by street vendors from dawn. Authentic spots include Kuala Terengganu markets or restaurants like Restoran Nasi Dagang Tok Ku.
How do you make Nasi Dagang at home?
To make Nasi Dagang for 4 servings: Rinse 2 cups glutinous rice, soak 30 minutes. Steam 20 minutes, then mix with 1.5 cups coconut milk, 1 tsp salt, and fenugreek seeds; cook covered 10 minutes. For curry: Fry blended onions, garlic, galangal, turmeric (3 tbsp paste) in oil, add 500g tuna chunks, 2 cups coconut milk, tamarind juice, salt; simmer 20 minutes. Serve rice with curry, hard-boiled eggs, sambal (blend chilies, onions, shrimp paste, fry), and ulam. Total time: 1 hour. Tip: Use fresh coconut milk for creaminess; avoid stirring rice too much to keep grains intact. Pairs well with keropok lekor crackers.
What’s the difference between Nasi Dagang and Nasi Kerabu?
Nasi Dagang uses glutinous rice cooked in coconut milk for a sticky, sweet profile, served with tuna curry and minimal sides. Nasi Kerabu, from Kelantan, features white or blue rice (from butterfly pea flower) with extensive ulam like herbs, flowers, and veggies, plus shredded fish or chicken, sambal belacan, and salty egg. Dagang emphasizes creamy curry and coconut rice as breakfast food; Kerabu is vibrant, salad-like, often lunch. Both are east coast specialties, but Dagang is richer and milder, while Kerabu is fresher and tangier. Calorie-wise, a plate of Dagang is about 600-800 kcal due to coconut fat.
Is Nasi Dagang healthy and what’s its nutritional info?
Nasi Dagang offers balanced nutrition from rice carbs, fish protein (20g per serving), and coconut healthy fats (medium-chain triglycerides for energy). A typical plate (300g rice + curry) has 650-850 calories, 25g protein, 40g fat, 70g carbs, plus vitamins A, C from spices and ulam. It’s gluten-free and provides omega-3s from tuna for heart health, but high sodium from curry—opt for less salt. Moderation helps; pair with more veggies to boost fiber. For diabetics, use brown glutinous rice. Studies show Malaysian coastal diets like this support active lifestyles, with antioxidants from turmeric reducing inflammation. Customize by reducing coconut milk for lighter versions.

Nasi Dagang
🍚 Creamy glutinous rice steamed in coconut milk with aromatic fenugreek, paired with spicy tuna curry – Malaysian Terengganu treasure!
🌶️ Crunchy fried coconut topping, pickled veggies, eggs for complete flavorful, satisfying meal hot or room temp!
- Total Time: 2 hours
- Yield: 4-6 servings
Ingredients
– 2 cups (400g) glutinous rice or special beras nasi dagang rice
– 2 cups (500ml) thick coconut milk
– 1 tsp (5g) fenugreek seeds
– 4 shallots, thinly sliced, about 100g
– 1/2 tsp (2g) turmeric powder, optional
– Salt to taste
– 500g fresh tuna or mackerel fillets, cut into chunks
– 2 cups (500ml) coconut milk
– 3 tbsp (45g) chili paste, made from 10 dried chilies and 5 fresh red chilies
– 2 stalks lemongrass, bruised
– 2 tsp (10g) turmeric powder
– 1 tbsp (15g) tamarind paste or 2 tbsp tamarind juice
– 4 shallots, blended, about 100g
– 2 garlic cloves, blended, about 10g
– 1-inch ginger, blended, about 10g
– Salt and sugar to taste
– 2 tbsp vegetable oil
– 2 cups (200g) freshly grated coconut
– 4 shallots, sliced, about 100g
– Salt to taste
– 2 tbsp vegetable oil
– 4 hard-boiled eggs, quartered
– 1 cucumber, sliced
– 2 carrots, julienned
– 2 red chilies, sliced
– 1/2 cup (120ml) rice vinegar
– 2 tbsp (25g) sugar
– 2 tbsp sambal chili paste, optional
– 4 telur pindang, optional
Instructions
1-First Step: Soak the rice Start by rinsing 2 cups of glutinous rice or beras nasi dagang rice, then soak it in water for 4 to 8 hours or overnight. This step helps the grains cook evenly and become soft without breaking apart. After soaking, drain the rice well so the coconut milk can coat the grains properly during steaming.
2-Second Step: Season and steam the rice Place the drained rice in a heatproof bowl or steaming tray. Mix in 2 cups of thick coconut milk, fenugreek seeds, sliced shallots, turmeric powder if using, and salt. Steam for 20 to 25 minutes until the rice is half-cooked. The rice should look swollen but still slightly firm in the center. Next, add another 1 cup, about 250ml, of coconut milk, stir gently, and steam again for 20 to 25 minutes. This second steaming gives Nasi Dagang its creamy, fluffy texture. Do not stir too aggressively, because the grains can break and become mushy. The final rice should smell fragrant, feel tender, and hold together lightly.
3-Third Step: Prepare the spice base for the curry While the rice steams, heat 2 tbsp vegetable oil in a saucepan over medium heat. Add the blended shallots, garlic, ginger, chili paste, bruised lemongrass, and turmeric powder. Fry for about 5 minutes, stirring often, until the mixture smells cooked and the oil begins to separate slightly. This step removes the raw edge from the spices and builds the curry flavor. If your chili paste is very hot, you can reduce the amount slightly and make up the difference with extra fresh chilies or a milder paste. If you want a stronger color and deeper taste, let the paste cook a little longer, but lower the heat if it starts to stick.
4-Fourth Step: Simmer the fish curry Pour in the coconut milk and tamarind paste or tamarind juice. Stir well so the spice base blends into the liquid. Add the tuna or mackerel chunks and simmer for 10 to 15 minutes, or until the fish is cooked through and flakes easily. Keep the heat gentle because strong boiling can break the fish apart and cause the coconut milk to split. Season with salt and a little sugar to taste. The curry should be rich, slightly tangy, and mildly sweet, with enough chili heat to balance the coconut milk. If it tastes flat, add a small pinch of salt. If it tastes too sharp, add a little sugar.
5-Fifth Step: Cook the fried coconut topping In a separate pan, heat 2 tbsp vegetable oil over medium heat. Add the sliced shallots and fry briefly until fragrant. Then add the freshly grated coconut and salt. Stir constantly for 5 to 7 minutes until the coconut turns golden and slightly crisp. This part is important because it adds texture and a toasted aroma that contrasts with the soft rice and creamy curry. Do not leave the coconut unattended, since it can go from golden to burnt very quickly. A light brown color is ideal. Once cooked, set it aside to cool slightly.
6-Sixth Step: Prepare the eggs and pickles Boil the eggs for about 10 minutes, then cool them in cold water, peel, and quarter them. For the pickled vegetables, combine the sliced cucumber, julienned carrots, and sliced red chilies in a bowl. Mix the rice vinegar and sugar until the sugar dissolves, then pour it over the vegetables and let them soak for 1 hour. This quick pickle adds crunch and brightness to the finished dish. If you want a fuller traditional spread, prepare telur pindang ahead of time. These herb-boiled eggs add color and a deeper savory flavor.
7-Seventh Step: Assemble and serve Serve the steamed rice on a plate, spoon the fish curry beside it, and top or side it with the fried coconut. Add the hard-boiled eggs and pickled vegetables. If you like extra heat, add sambal chili paste. Nasi Dagang is often served as a complete meal, so aim for a balanced plate with rice, curry, protein, and fresh sides.
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 rice overnight for authentic sticky-creamy texture; use special nasi dagang rice if available.
🥥 Steam rice in two stages with coconut milk additions for perfect fluffiness.
🔥 Adjust chilies/tamarind for spice/sour balance; sub prawns or chicken easily.
- Prep Time: 30 minutes
- Rice Soaking: 4-8 hours
- Cook Time: 1 hour 30 minutes
- Category: Main Dish
- Method: Steaming
- Cuisine: Malaysian
Nutrition
- Serving Size: 1 cup rice + ½ cup curry
- Calories: 725 kcal
- Sugar: 10 g
- Sodium: 800 mg
- Fat: 40 g
- Saturated Fat: 25 g
- Unsaturated Fat: 15 g
- Trans Fat: 0 g
- Carbohydrates: 60 g
- Fiber: 4 g
- Protein: 25 g
- Cholesterol: 200 mg






