Sauces & Condiments
This Bali peanut sauce recipe transforms simple ingredients into a rich, smoky-sweet glaze that elevates everything from satay to stir-fries. The secret lies in toasting peanuts until fragrant and blending them with coconut milk, tamarind, and aromatic spices—creating a sauce that’s both bold and balanced.
I developed this version after years of tasting Bali’s street food, where the perfect peanut sauce makes even the simplest dish unforgettable.
The beauty of this sauce is its versatility. Use it as a dipping sauce for grilled chicken or vegetables, a marinade for tofu or shrimp, or a flavor enhancer in noodle dishes. The key steps—roasting the peanuts and simmering the sauce—ensure deep, nutty flavor without bitterness.
Adjust the sweetness with tamarind or palm sugar to match your preference, and you’ll have a sauce that’s restaurant-quality at home.
What sets this recipe apart is the smoky depth from a pinch of shrimp paste and chili flakes, which balances the richness of the peanuts and coconut. The sauce thickens as it cools, making it ideal for drizzling over dishes or storing for up to a week in the fridge.
Once you taste it, you’ll understand why this sauce is a staple in Indonesian cuisine.
Perfect for meal prep or last-minute cooking, this sauce comes together in 30 minutes with just 10 ingredients. Whether you’re serving satay, stir-fried vegetables, or grilled meats, this nutty glaze will turn any dish into a flavor-packed masterpiece. Let’s make it—your taste buds will thank you.
Ingredients for bali peanut sauce
Ten ingredients, one fragrant sauce that transforms any dish into a Bali street food masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Raw Peanuts 🥜 | 1 cup | Unsalted, dry-roasted until fragrant |
| Coconut Milk 🥥 | 1 can | Full-fat, 13.5 oz can (not light) |
| Tamarind Paste 🍯 | ½ cup | Thick, not pulp (or 3 tbsp tamarind concentrate) |
| Palm Sugar 🍯 | ¼ cup | Or substitute brown sugar (1:1 ratio) |
| Shrimp Paste 🦐 | 1 tbsp | Indonesian belacan (or substitute 1 tsp fish sauce) |
| Red Chili Flakes 🌶️ | 1 tbsp | Adjust for heat preference (or 1 tsp cayenne) |
| Garlic Cloves 🧄 | 6 cloves | Peeled, roughly chopped (not minced) |
| Shallots 🧅 | 3 whole | Peeled, roughly chopped (or 0.5 cup finely diced) |
| Lime Juice 🍋 | 2 tbsp | Freshly squeezed (or 1 tbsp bottled, less ideal) |
| Salt 🧂 | ½ tsp | Diamond Crystal kosher salt (adjust to taste) |
The peanuts are non-negotiable—raw, unsalted, and dry-roasted until they smell like heaven. Trader Joe's and Asian markets carry the best quality, but any store-brand unsalted peanuts work if they're fresh. Toast them in a dry skillet over medium heat until golden and fragrant—about 5 minutes—then grind them in a food processor until you have a fine, nutty powder. The coconut milk should be full-fat; light versions won’t give that rich, creamy texture. For tamarind, Thai Kitchen brand is reliable, but if you can’t find it, tamarind concentrate works at half the amount. The shrimp paste adds that signature smoky depth—belacan from Indonesian markets is ideal, but a pinch of fish sauce in a bind won’t ruin it.
No shrimp paste? Fish sauce or even a dash of soy sauce can mimic that umami punch, though it won’t be identical. Running short on palm sugar? Brown sugar or coconut sugar work 1:1, but palm sugar’s caramel notes are worth seeking out at World Market or Asian grocery stores. The garlic and shallots should be roughly chopped—this sauce isn’t about fine textures. Fresh lime juice brightens everything, but if you’re using bottled, add a pinch of sugar to cut the artificial taste. For extra heat, swap chili flakes for fresh red chilies, seeds removed—just remember, they pack more punch. The sauce thickens as it cools, so if it’s too thin while warm, simmer it a few more minutes.
This sauce keeps beautifully—1 week in the fridge sealed in a jar, or 3 months in the freezer if you portion it into ice cube trays first. The flavors deepen over time, so make extra. Drizzle it over grilled satay, toss it with stir-fried veggies, or use it as a marinade for tofu. If the sauce separates after refrigerating, just give it a quick stir before using. For a smoother texture, blend it again after chilling. Store any leftovers in the fridge, but if you’re prepping for a crowd, freeze half right away—it reheats like a dream.
Why You'll Love This Recipe
- No-Fuss Pantry Magic: I swear by this sauce because it lives in my pantry. Raw peanuts, coconut milk, and that jar of tamarind paste I bought on a whim? Boom—no specialty shopping, no last-minute grocery runs. The shrimp paste adds depth, but honestly, if you skip it, no one will judge.
- Tangy-Sweet Obsession: That tamarind and palm sugar combo? Chef’s kiss. The sauce starts rich and nutty, then hits with this bright, almost citrusy tang that cuts through everything. I’ve drizzled it on tofu, noodles, even grilled chicken—it’s like a flavor hug every time.
- Leftovers That Shine: Make a double batch and thank me later. This sauce keeps for weeks in the fridge (yes, really) and tastes even better the second day. I toss it into stir-fries, use it as a marinade, or just eat it with rice—it’s my lazy Sunday secret weapon.
- Budget-Friendly Flex: Peanuts and coconut milk won’t break the bank, and a little goes a long way. Between us, I’ve stretched this sauce over three meals for my family of four, and no one complained. It’s the kind of recipe that makes frugal cooking feel fancy.
Step-by-step instructions for Bali peanut sauce
Here's how to create this rich, aromatic sauce that balances smoky, sweet, and tangy flavors perfectly.
Dry-Toast the Peanuts for Maximum Flavor
Heat a dry skillet over medium heat and add the 1 cup raw peanuts. Toast them for 5-7 minutes, stirring constantly, until they turn a rich golden brown and release their nutty aroma. You'll see them puff slightly and smell deeply toasted—this is crucial for developing the sauce's signature depth.
Watch carefully—they'll darken quickly once they start to brown. Immediately transfer the toasted peanuts to a plate and let them cool completely before processing. This prevents the oil from releasing into your sauce and keeps it from becoming greasy. For best results, use a food processor or high-powered blender to grind them into a fine powder.
Build the Sauce Base with Aromatics
In the same skillet (no need to clean it—the browned bits add flavor), add 2 tablespoons olive oil and heat over medium heat. Add the 3 whole shallots and 6 cloves garlic cloves (peeled and roughly chopped) and sauté for 3-4 minutes until the shallots turn translucent and the garlic becomes fragrant.
Here's where the magic starts: Add the 1 tablespoon shrimp paste and 1 tablespoon red chili flakes, stirring constantly for 30 seconds until the shrimp paste develops its distinctive aroma. Be careful not to let it burn—it should smell rich and umami, not acrid. This combination forms the savory foundation of the sauce.
Combine Wet Ingredients for Balance
Pour in the 1 can coconut milk, scraping up any browned bits from the bottom of the pan. Add the 0.5 cup tamarind paste, 0.25 cup palm sugar, and 2 tablespoons lime juice, stirring vigorously to combine. Bring the mixture to a gentle simmer over medium-low heat, then reduce heat to maintain a slow bubble.
Let it cook for 8-10 minutes, stirring occasionally, until the sauce thickens slightly and the flavors meld together. You'll notice the tamarind adds a tangy depth while the coconut milk creates a creamy texture. The sugar should dissolve completely, and the sauce should coat the back of a spoon—this is your perfect consistency checkpoint.
Blend and Refine the Sauce
Transfer the sauce to a blender along with the toasted peanut powder. Blend until completely smooth, about 1-2 minutes, scraping down the sides as needed. The sauce should be velvety with a rich peanut flavor that coats your mouth immediately. Taste and adjust the seasoning with the 0.5 teaspoon salt, adding more if needed.
For extra richness, you can strain the sauce through a fine-mesh sieve to remove any remaining peanut particles if you prefer a completely smooth texture. Return it to the saucepan and let it simmer for another 2-3 minutes to thicken slightly. The final sauce should be thick enough to coat the back of a spoon but still flow smoothly.
Finish and Use Immediately
Remove the sauce from heat and let it cool slightly. The flavors will continue to develop as it sits, so don't rush this step. For best results, use the sauce immediately over satay skewers, drizzled over stir-fried vegetables, or as a dip for spring rolls. The sauce keeps well in the refrigerator for up to 5 days in an airtight container, but it's best enjoyed fresh.
Here's the thing—this sauce is incredibly versatile. You can adjust the heat by adding more chili flakes or balance the sweetness with a touch of lime juice. The key to success is patience; letting the flavors meld during cooking ensures that rich, complex taste that makes this sauce so special.
Pro Tips For Making Bali Peanut Sauce
- TOAST PEANUTS LOW AND SLOW: Skip the high-heat blast—raw peanuts burn fast and turn bitter. Instead, dry-toast them in a skillet over medium-low heat for 8-10 minutes, stirring often, until they’re golden and fragrant but not dark. This brings out their natural nuttiness without sacrificing texture for the sauce.
- GRIND PEANUTS IN BATCHES: I used to dump all the toasted peanuts into the food processor at once, and half the time, they’d just sit there like stubborn lumps. Grind them in 2-3 portions, scraping down the sides between pulses, until you get a mix of fine powder and coarse chunks—this keeps the sauce thick but still textured.
- DILUTE TAMARIND PASTE FIRST: Tamarind paste is a brick of concentrated tang, and throwing it straight into the sauce will clump like glue. Mix it with 2 tablespoons of warm water first to dissolve it completely, then whisk it into the coconut milk before adding anything else. Smooth every time, no fishing for lumps later.
- SWEAT SHRIMP PASTE FIRST: Shrimp paste is pungent—like a tiny bomb of umami—and if you add it raw to the sauce, it’ll fight with the other flavors instead of blending in. Bloom it in a dry pan for 30 seconds until it’s fragrant and slightly darkened, then deglaze with a splash of coconut milk before combining everything. That’s when it starts working its magic.
Common mistakes when making this recipe
Over-Toasting Peanuts
I’ve burned more than my fair share of peanuts trying to get that perfect toasted aroma. The key is medium heat and constant stirring—once they start browning, they go from golden perfection to bitter charcoal in seconds.
If your peanuts smell acrid or taste burnt, your sauce will have an unpleasant aftertaste. Always transfer them to a plate immediately after toasting and let them cool completely before grinding. 🔥
Skipping the Shrimp Paste
The shrimp paste (belacan) gives this sauce its signature umami depth, but I’ve seen people skip it entirely. If you’re using a substitute like fish sauce or soy sauce, you’ll miss that complex, slightly funky flavor.
For a quick fix, add ½ teaspoon smoked paprika to mimic some of the smokiness, but nothing beats the real deal. If you’re avoiding shrimp paste for dietary reasons, a pinch of miso paste can add a similar savory note.
Not Simmering Long Enough
Rushing the simmering step is a common mistake—this sauce needs time to develop its flavors. If you skip the 8-10 minute simmer, the tamarind and sugar won’t fully dissolve, and the sauce will taste raw and unbalanced.
Keep the heat low and stir occasionally to prevent sticking. The sauce should coat the back of a spoon when it’s ready, not just look thick. Patience here makes all the difference! ⏰
Using Light Coconut Milk
Light coconut milk won’t give you that creamy, rich texture this sauce needs. The full-fat can is non-negotiable—it’s what makes the sauce velvety and luxurious.
If you’re out of full-fat, don’t substitute with water or light coconut milk; instead, use ½ cup coconut cream mixed with ½ cup water for a similar richness. The difference is night and day!
Blending Too Soon
Adding the peanut powder to the sauce while it’s still hot can turn your blender into a greasy mess. Let the sauce cool slightly first—even just 5 minutes makes a huge difference. Hot liquids release oils from the peanuts, which can separate the sauce and make it grainy.
If this happens, strain the sauce through a fine-mesh sieve for a smoother finish. Trust me, your blender will thank you! 💫
Ignoring the Resting Time
This sauce tastes even better after it sits for a few minutes. If you dive right in and use it immediately, the flavors won’t have a chance to meld properly. Let it rest for 10-15 minutes before serving—this is when the peanut flavor really develops and the sauce thickens naturally.
I know it’s tempting to rush, but this step is what turns a good sauce into a great one!
Nutrition facts
Frequently asked questions
Can I make this sauce without shrimp paste?
The shrimp paste (belacan) adds that signature umami depth, but you can substitute 1 teaspoon fish sauce or ½ teaspoon miso paste for a similar savory kick. For a smoky alternative, add ½ teaspoon smoked paprika. The sauce will still be delicious but with slightly different complexity.
How do I adjust the sweetness level?
Start with the ¼ cup palm sugar as written, then taste and adjust. For less sweetness, reduce by 1 tablespoon at a time. If you prefer more sweetness, add up to 2 extra tablespoons while simmering. The tamarind also contributes tangy depth—balance both flavors carefully.
What’s the best way to store leftover sauce?
Transfer to an airtight container and refrigerate for up to 5 days. The sauce thickens as it cools—simply stir and reheat gently on low heat before using. For longer storage, freeze in 1-tablespoon portions (great for meal prep!). Thaw overnight in the fridge.
Can I use this sauce as a marinade?
Thin it with 1-2 tablespoons water to create a marinade for tofu, chicken, or shrimp. Let proteins marinate for 30 minutes to 2 hours before cooking. The peanut sauce adds incredible flavor to grilled skewers or stir-fries. Just don't over-marinate delicate fish.
Why did my sauce separate?
This happens when peanut oils separate from the liquid during cooling. Stir well before using, or blend briefly to re-emulsify. For prevention, let the sauce cool slightly before blending with peanuts, and avoid adding hot liquids to peanut powder. A fine-mesh sieve can also help create a smoother texture.
