Opor Ayam (Indonesian Chicken Curry) Recipe
Introduction
Opor Ayam is a fragrant Indonesian chicken curry that combines aromatic spices and creamy coconut milk for a rich, comforting dish. Perfect for those who love bold flavors balanced with subtle tropical notes.

Ingredients
- 1/4 cup coriander seeds
- 3 tablespoons coconut oil
- 10 small shallots, sliced
- Kosher salt, to taste
- 15 garlic cloves
- 5 candlenuts (or 5 to 10 macadamia nuts)
- 2 to 3 1-inch pieces kaempferia galanga root, peeled (optional)
- 1/2 tablespoon white peppercorns
- 1 3-inch piece ginger, peeled and lightly smashed
- 1 3-inch piece galangal, peeled and lightly smashed
- 5 lemongrass stalks, trimmed, smashed and tied into knots
- 10 to 15 fresh or dried salam leaves (Indonesian bay leaves)
- 20 fresh makrut lime leaves
- 1 tomato, chopped (or 1 cup cherry tomatoes)
- 1 8.5-ounce can coconut milk
- 3/4 cup chicken stock
- 3 pounds bone-in chicken pieces
Instructions
- Step 1: In a dry skillet over medium-high heat, toast the coriander seeds for 2 to 3 minutes until fragrant. Let cool, then grind them in a spice grinder.
- Step 2: Heat 2 tablespoons of coconut oil in a large sauté pan over medium heat. Add the shallots and a generous pinch of salt. Cook, stirring often, until browned, about 10 minutes. Remove the shallots to a food processor and set aside.
- Step 3: Add the garlic cloves and candlenuts to the same pan. Cook, stirring constantly, until deep golden brown, 2 to 3 minutes. Transfer to the food processor with the shallots, adding the kaempferia galanga root, white pepper, and 2 tablespoons of water. Purée into a smooth paste.
- Step 4: Heat the remaining 1 tablespoon coconut oil in the pan over medium heat. Add the ginger, galangal, lemongrass, salam leaves, and makrut lime leaves—scrunch the lime leaves as you add them. Cook, stirring occasionally, for 5 to 7 minutes until aromas mellow.
- Step 5: Stir the ground coriander seeds, shallot paste, and chopped tomato into the pan. Reduce heat to low and slowly add the coconut milk, stirring constantly to prevent curdling. When fully incorporated and gently simmering, add the chicken stock.
- Step 6: Nestle the chicken pieces into the sauce and spoon sauce over the top. Cover and cook on low heat for about 40 minutes, or until the chicken is cooked through and the dish is aromatic. Keep the heat low to maintain a gentle simmer without boiling.
- Step 7: Season to taste with salt. Before serving, remove the ginger, galangal, lemongrass, salam, and makrut lime leaves. Serve hot with steamed rice.
Tips & Variations
- If kaempferia galanga root is unavailable, substitute with extra galangal or ginger for a similar flavor.
- Use macadamia nuts instead of candlenuts if needed; they provide a nice creamy texture.
- For a spicier version, add fresh chili peppers when cooking the shallots or with the spice paste.
- Make sure to simmer gently to prevent the coconut milk from separating and to develop deep flavors.
Storage
Store leftover Opor Ayam in an airtight container in the refrigerator for up to 3 days. Reheat gently on the stove over low heat, stirring occasionally. You can also freeze it for up to 1 month; thaw overnight in the fridge before reheating.
How to Serve
Serve this delicious recipe with your favorite sides.
FAQs
Can I use boneless chicken for Opor Ayam?
While bone-in chicken adds more flavor and moisture, boneless chicken pieces can be used. Adjust cooking time accordingly to avoid drying out the meat.
What can I serve with Opor Ayam?
Traditionally, Opor Ayam is served with steamed white rice. It also pairs well with nasi uduk (coconut rice) or simple vegetable side dishes.
PrintOpor Ayam (Indonesian Chicken Curry) Recipe
Opor Ayam is a traditional Indonesian chicken curry known for its rich and aromatic coconut milk-based sauce infused with a complex blend of spices and herbs including coriander, galangal, lemongrass, and makrut lime leaves. This comforting dish features tender bone-in chicken simmered gently to absorb the vibrant flavors, making it a perfect meal served with steamed rice.
- Prep Time: 20 minutes
- Cook Time: 50 minutes
- Total Time: 1 hour 10 minutes
- Yield: 6 servings 1x
- Category: Main Course
- Method: Stovetop
- Cuisine: Indonesian
- Diet: Halal
Ingredients
Spices and Aromatics
- 1/4 cup coriander seeds
- 1/2 tablespoon white peppercorns
- 5 candlenuts (or 5 to 10 macadamia nuts)
- 2 to 3 1-inch pieces kaempferia galanga root, peeled (optional)
- 1 3-inch piece ginger, peeled and lightly smashed
- 1 3-inch piece galangal, peeled and lightly smashed
- 5 lemongrass stalks, trimmed, smashed and tied into knots
- 10 to 15 fresh or dried salam leaves (Indonesian bay leaves)
- 20 fresh makrut lime leaves
- 1 tomato, chopped (or 1 cup cherry tomatoes)
- 10 to 15 garlic cloves
- 10 small shallots, sliced
Oils and Liquids
- 3 tablespoons coconut oil
- 1 8.5-ounce can coconut milk
- 3/4 cup chicken stock
Main Ingredient
- 3 pounds bone-in chicken pieces
Seasoning
- Kosher salt, to taste
Instructions
- Toast and Grind Coriander Seeds: In a dry skillet over medium-high heat, toast the coriander seeds for 2 to 3 minutes until fragrant. Remove from heat and let cool. Once cooled, grind them into a fine powder using a spice grinder.
- Prepare Shallot and Garlic Paste: Heat 2 tablespoons of coconut oil in a large sauté pan over medium heat. Add the sliced shallots and a generous pinch of salt, cooking while stirring frequently until they turn browned and caramelized, about 10 minutes. Remove the shallots and place them in a food processor. In the same pan, add the garlic cloves and candlenuts, cooking over medium heat and stirring constantly to prevent burning, until they turn deep golden brown, about 2 to 3 minutes. Transfer the garlic and candlenuts to the food processor with the shallots, add the peeled kaempferia galanga root, white peppercorns, and 2 tablespoons water, then purée everything into a smooth paste.
- Sauté Aromatic Herbs: Heat the remaining 1 tablespoon of coconut oil in the sauté pan over medium heat. Add the ginger, galangal, lemongrass knots, salam leaves, and makrut lime leaves, scrunching the lime leaves in your hands before adding to release their oils. Cook the mixture, stirring occasionally, until the intense raw smell subsides and the herbs soften, about 5 to 7 minutes.
- Combine and Simmer Sauce: Stir in the ground coriander seeds, shallot-garlic paste, and chopped tomato into the sautéed aromatics. Reduce the heat to low and gradually stir in the coconut milk a little at a time to prevent the sauce from breaking. When fully incorporated and gently simmering, add the chicken stock. Nestle the bone-in chicken pieces into the pan and spoon sauce over the top. Cover the pan and cook on low heat for approximately 40 minutes, maintaining a gentle simmer (avoid boiling) until the chicken is cooked through and the dish becomes aromatic. Adjust salt to taste. Before serving, remove and discard the galangal, ginger, lemongrass, salam leaves, and makrut lime leaves. Serve hot with steamed rice.
Notes
- If kaempferia galanga root is unavailable, the dish will still be flavorful but slightly less authentic.
- Candlenuts can be substituted with macadamia nuts if necessary.
- Maintaining a gentle simmer is crucial to keep the coconut milk sauce from breaking.
- Removing the whole aromatic herbs before serving enhances eating experience and safety.
- Serve Opor Ayam with steamed jasmine or long-grain rice for a complete meal.
Keywords: Opor Ayam, Indonesian chicken curry, coconut milk chicken, Southeast Asian curry, Indonesian recipes

