Opor Ayam (Indonesian Chicken Curry) Recipe
Introduction
Opor Ayam is a fragrant Indonesian chicken curry rich with coconut milk and aromatic spices. This comforting dish combines tender chicken with a flavorful blend of herbs and spices, perfect for a satisfying meal at home.

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 sliced shallots and a generous pinch of salt. Cook, 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. Cook, stirring constantly, until deep golden brown, 2 to 3 minutes. Add these to the food processor along with kaempferia galanga root, white pepper, and 2 tablespoons water. Purée into a smooth paste.
- Step 4: Heat the remaining 1 tablespoon coconut oil in the sauté pan over medium heat. Add the ginger, galangal, lemongrass, salam leaves, and makrut lime leaves (scrunch the lime leaves before adding). Cook, stirring occasionally, for 5 to 7 minutes until the aromas mellow and the ingredients soften.
- Step 5: Stir in the ground coriander seeds, shallot paste, and chopped tomato. Reduce heat to low. Slowly add the coconut milk a little at a time, stirring gently to prevent the sauce from breaking. Once incorporated and simmering softly, add the chicken stock.
- Step 6: Nestle the chicken pieces into the sauce and spoon some over the top. Cover and cook on low heat for about 40 minutes, or until the chicken is cooked through and the dish is fragrant. Adjust heat as needed to maintain a gentle simmer, avoiding boiling. Season with salt to taste.
- Step 7: Before serving, remove the pieces of galangal, ginger, lemongrass, salam leaves, and makrut lime leaves. Serve the curry hot with steamed rice.
Tips & Variations
- If kaempferia galanga root is unavailable, you can omit it or substitute with an extra piece of galangal for a slightly different flavor.
- Candlenuts can be replaced with macadamia nuts if you have difficulty finding them; they provide similar richness in the paste.
- For a spicier version, add sliced fresh chilies when cooking the shallots.
- Use bone-in chicken thighs for juicier results and richer flavor.
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 to avoid breaking the coconut milk sauce. This dish also freezes well for up to 1 month; thaw overnight in the refrigerator before reheating.
How to Serve
Serve this delicious recipe with your favorite sides.
FAQs
Can I make this curry without the salam and makrut lime leaves?
Yes, but these leaves add unique citrusy and herbal notes that enhance the aroma. If unavailable, you can proceed without them, though the flavor will be less complex.
What can I serve with Opor Ayam?
It pairs beautifully with steamed white rice, jasmine rice, or even slightly sticky rice. You can also serve it alongside sautéed greens or simple vegetable dishes to balance the richness.
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 blend of spices and fragrant herbs. This comforting dish features tender bone-in chicken simmered slowly in a creamy, mildly spiced sauce, making it a perfect meal to enjoy 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
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
Fresh Ingredients
- 10 small shallots, sliced
- 15 garlic cloves
- 1 tomato, chopped (or 1 cup cherry tomatoes)
Liquids & Fats
- 3 tablespoons coconut oil
- 1 8.5-ounce can coconut milk
- 3/4 cup chicken stock
Main Protein
- 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. Let them cool, then grind them finely 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 with a generous pinch of salt and cook, stirring often, until browned, about 10 minutes. Remove the shallots and place into a food processor. In the same pan, add garlic cloves and candlenuts, cooking while stirring constantly to prevent burning until they turn deep golden brown, 2 to 3 minutes. Add these to the food processor along with the kaempferia galanga root, white peppercorns, and 2 tablespoons of water. Purée into a smooth paste.
- Cook Aromatics: Heat the remaining 1 tablespoon coconut oil in the sauté pan over medium heat. Add ginger, galangal, lemongrass, salam leaves, and makrut lime leaves—scrunch the lime leaves before adding to release their aroma. Cook for 5 to 7 minutes, stirring occasionally, until the raw smell diminishes and the herbs are fragrant.
- Create the Curry Base: Stir the ground coriander seeds, shallot-garlic paste, and chopped tomato into the pan. 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 combined and gently simmering, add chicken stock.
- Simmer the Chicken: Nestle the bone-in chicken pieces into the sauce and spoon some sauce over them. Cover the pan and cook on low heat for about 40 minutes, ensuring the mixture stays at a gentle simmer without boiling. Adjust heat as needed. Season with salt to taste.
- Finish and Serve: Before serving, remove the galangal, ginger, lemongrass, salam leaves, and makrut lime leaves from the curry. Serve hot with steamed rice for a complete meal.
Notes
- Kaempferia galanga root is optional but adds authentic flavor; if unavailable, you can omit it.
- Candlenuts can be substituted with macadamia nuts if necessary.
- Be careful not to let the coconut milk sauce boil to avoid curdling and breaking the sauce.
- Removing the whole aromatics before serving ensures a smooth texture and prevents biting into tough herbs.
- Use bone-in chicken for more flavorful and tender results.
Keywords: Opor Ayam, Indonesian chicken curry, coconut milk curry, chicken recipe, Southeast Asian cuisine

