Sate Lilit (Balinese Fish Satay)

Warmly spiced seafood, grilled on a skewer of aromatic lemongrass.

  • Serves

    serves 4

  • Cook

    1 hour 45 minutes


By Vanja Van Der Leeden

Updated on July 30, 2021

An Indonesian classic, sate lilit is a delightfully spicy and fragrant grilled dish. “Lilit,” means to turn or wrap, and indeed, for this recipe, a mixture of ground meat or fish is wrapped around a thick skewer or a stalk of lemongrass before cooking. This particular satay is traditionally made with an aromatic and complicated Balinese spice paste called bumbu bali. This version, from Indonesian Dutch cookbook author, Vanja Van der Leeden, substitutes a simpler, and highly versatile paste called bumbu pepesan that comes together quickly in a blender. Van der Leeden uses mackerel here, but offers as substitutes cod, a combination of cod and shrimp, or even jackfruit as a vegan alternative. The fish mixture can also be used to make breaded and fried fish cakes. 

Candlenuts, which have a mild, faintly bitter almondy flavor and a rich, waxy texture similar to macadamias. They can be found at some Asian markets and spice stores, or ordered online from Kalustyan’s, as can fried shallots and makrut lime leaves. The bumbu paste is also delicious spread over fish, which can then be wrapped in banana leaves and baked. 

This recipe is adapted from the cookbook INDOSTOK by Vanja Van der Leeden.


For the bumbu pepesan:

  • 4 medium-hot red chiles (such as Cayenne, jwala, Holland red fingers, or Fresno), stemmed and coarsely chopped (½ cup)
  • 1 medium shallot, coarsely chopped (¼ cup)
  • 6 candlenuts
  • One 1-in. piece of ginger, coarsely chopped (2 Tbsp.)
  • 3 medium garlic cloves, peeled
  • 2 grape tomatoes, coarsely chopped (¼ cup.)
  • ¾ tsp. kosher salt
  • 1 tbsp. canola oil
  • 1 tbsp. fresh lime juice
  • 8 medium makrut lime leaves, vein removed and finely chopped (1 Tbsp.)

For the satay:

  • 10-12 thick stalks of lemongrass
  • 14 oz. fresh raw mackerel, skin removed
  • 1 cup fried shallots
  • ¾ cups (1¾ oz) unsweetened, dried, finely grated coconut
  • ¼ cups plus 1 Tbsp. coconut milk
  • ½ tsp. kosher salt
  • 1-2 tbsp. cornstarch (optional)
  • 2 tbsp. coconut or sunflower oil, plus more for brushing
  • Sambal, for serving (optional)


Step 1

Make the bumbu: To a blender, add the chiles, shallot, candlenuts, ginger, garlic, tomatoes, and salt and blend to a fine paste.

Step 2

In a medium skillet over medium heat, heat the oil, then add the chile mixture and cook, stirring frequently, until most of the moisture has evaporated and the paste is dry but not yet beginning to brown, about 10 minutes. Remove from heat and set aside to cool to room temperature. Stir in the lime juice and leaves.

Step 3

In a food processor, pulse the mackerel until just minced. Transfer to a medium bowl, then add the reserved spice paste, the fried shallots, grated coconut, coconut milk, and salt. Stir well to combine; if the mixture seems very wet, stir in the cornstarch. Transfer to the fridge to chill for one hour.

Step 4

Meanwhile, preheat a charcoal, gass, or electric grill to cook over high heat.

Step 5

When ready to grill, retrieve the fish mixture from the fridge and divide into 16 ping pong-sized balls. Flatten each ball into a patty, then wrap around the root ends of the lemongrass stalks, packing the mixture in oblong shape, about 2½ inches long, two per stalk.

Step 6

Brush the satay lilit lightly with coconut or sunflower oil, then transfer to the grill and cook on one side without moving until the fish creates a crust, about 2 minutes. Turn and continue cooking on all 4 sides, about 2 minutes per side.

Step 7

Serve hot, with sambal on the side, if desired.

Continue to Next Story

Want more SAVEUR?

Get our favorite recipes, stories, and more delivered to your inbox.