Opor Ayam (Indonesian Chicken Curry) Recipe
Introduction
Opor Ayam is a fragrant Indonesian chicken curry simmered in rich coconut milk and aromatic spices. This comforting dish balances warm flavors and tender chicken, perfect for a satisfying meal served with steamed rice.

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 them cool, then grind in a spice grinder.
- Step 2: 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 and stirring often until browned, about 10 minutes. Remove shallots to a food processor and set aside.
- Step 3: In the same pan, add the garlic cloves and candlenuts, cooking while stirring constantly to prevent burning until deep golden brown, about 2 to 3 minutes. Transfer garlic and candlenuts to the food processor with the shallots.
- Step 4: Add kaempferia galanga root, white pepper, and 2 tablespoons of water to the food processor. Purée into a smooth paste.
- Step 5: Heat the remaining 1 tablespoon coconut oil in the sauté pan over medium heat. Add ginger, galangal, lemongrass, salam leaves, and makrut lime leaves, scrunching the lime leaves as you add them. Cook until the aroma mellows and the ingredients soften, about 5 to 7 minutes, stirring occasionally.
- Step 6: Stir in the ground coriander seeds, shallot paste, and chopped tomato into the pan. Reduce heat to low and slowly add coconut milk a little at a time, stirring gently to prevent the sauce from breaking.
- Step 7: Once the coconut milk is fully incorporated and the mixture gently simmers, add the chicken stock. Nestle the chicken pieces into the sauce and spoon sauce over them.
- Step 8: Cover the pan and cook on low heat for about 40 minutes, or until the chicken is cooked through and the dish is aromatic. Adjust heat to maintain a gentle simmer without boiling.
- Step 9: Season the curry with salt to taste. Just before serving, remove the ginger, galangal, lemongrass, salam, and makrut lime leaves. Serve hot with steamed rice.
Tips & Variations
- Substitute candlenuts with macadamia nuts if unavailable for a similar creamy texture.
- Remove optional kaempferia galanga if it’s hard to find; the dish will still be flavorful.
- Add a few dried red chilies with the spices if you prefer a spicier curry.
- Use boneless chicken pieces for quicker cooking but adjust time accordingly.
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, adding a splash of water or coconut milk to loosen the sauce if it thickens.
How to Serve
Serve this delicious recipe with your favorite sides.
FAQs
Can I use chicken breasts instead of bone-in pieces?
Yes, boneless chicken breasts or thighs can be used, but reduce cooking time to about 20-25 minutes to prevent dryness.
What can I serve with Opor Ayam?
This curry pairs wonderfully with steamed jasmine rice or coconut rice and simple vegetable sides or pickles for a balanced meal.
PrintOpor Ayam (Indonesian Chicken Curry) Recipe
Opor Ayam is a flavorful Indonesian chicken curry made with a fragrant paste of toasted coriander seeds, shallots, garlic, candlenuts, and aromatic spices including galangal, lemongrass, salam leaves, and kaffir lime leaves. The dish is slowly simmered in creamy coconut milk and chicken stock until the chicken is tender and infused with rich, spicy flavors. Perfectly served with steamed rice, this traditional recipe offers a comforting and aromatic taste of Indonesia.
- 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
Ingredients
Spices and Aromatics
- 1/4 cup coriander seeds
- 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
Other Ingredients
- 3 tablespoons coconut oil
- 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
- Toast the coriander seeds: In a dry skillet over medium-high heat, toast the coriander seeds for 2 to 3 minutes until fragrant. Let them cool, then grind them in a spice grinder to a fine powder.
- Cook shallots and prepare paste: Heat 2 tablespoons of coconut oil in a large sauté pan over medium heat. Add the sliced shallots with a generous pinch of kosher salt and cook, stirring often, until browned, about 10 minutes. Remove the browned shallots and place them into a food processor. In the same pan, add the garlic cloves and candlenuts, cooking and stirring constantly to prevent burning until deep golden brown, about 2 to 3 minutes. Transfer garlic and candlenuts to the food processor with the shallots. Add the peeled kaempferia galanga root pieces, white peppercorns, and 2 tablespoons of water. Puree everything into a smooth paste.
- Sauté aromatics: Heat the remaining 1 tablespoon of coconut oil in the sauté pan over medium heat. Add the ginger, galangal, lemongrass stalks, salam leaves, and makrut lime leaves, scrunching the lime leaves as you add them to release their fragrance. Cook, stirring occasionally, until the intense raw smell of the aromatics mellows and they become more fragrant, about 5 to 7 minutes.
- Add paste and simmer: Stir in the ground coriander seeds, the shallot paste mixture, and chopped tomato into the pan with the aromatics. Reduce the heat to low and slowly incorporate the coconut milk, a little at a time, stirring constantly to prevent the sauce from breaking. Once fully combined and gently simmering, pour in the chicken stock. Nestle the chicken pieces into the pan and spoon some sauce over them. Cover and cook on low heat for about 40 minutes, maintaining a gentle simmer to ensure chicken cooks through without boiling. Season with salt to taste.
- Finish and serve: Before serving, remove the galangal, ginger, lemongrass, salam, and makrut lime leaves from the curry. Serve the Opor Ayam hot with steamed rice to soak up the delicious coconut curry sauce.
Notes
- If kaempferia galanga root is unavailable, you can omit it or substitute with a small amount of galangal or ginger for a similar flavor.
- Candlenuts add richness and a slightly nutty flavor; macadamia nuts are a good substitute if you cannot find candlenuts.
- Do not let the curry boil vigorously; maintain a gentle simmer to keep the sauce from breaking.
- Fresh salam leaves and makrut lime leaves impart authentic Indonesian aroma; if unavailable, substitute with bay leaves and lime zest respectively, though flavor will be slightly different.
- This dish pairs best with plain steamed white rice but can also be enjoyed with coconut rice or jasmine rice for extra fragrance.
Keywords: Indonesian chicken curry, Opor Ayam recipe, coconut milk chicken curry, traditional Indonesian recipes, Southeast Asian cuisine

