XO Sauce Recipe

XO sauce is a flavor-bomb condiment rich with dried seafood and cured ham. You can spoon it over any number of dishes, but it's also a fantastic ingredient to cook with.

A jar of XO sauce with someone holding a spoon of sauce above the jar.

Serious Eats / Vicky Wasik


Homemade XO Sauce, the Cook's Condiment

Why It Works

  • Dried seafood, smoky ham, soy sauce, and oyster sauce pack this good-on-everything condiment with deep umami notes.
  • Steaming the dried scallops in the microwave after rehydrating makes them tender.
  • Shallow-frying the ingredients in stages keeps them from turning into a homogeneous, dry paste.
  • Fresh and dried chiles bring a balanced heat to the sauce, tempered by a touch of sweetness from brown sugar.

XO sauce is a luxurious condiment—named after XO cognac, even though there is no French booze in it—created in Hong Kong, that's become increasingly popular in American restaurant kitchens over the past decade. And for good reason: It's filled with umami-rich ingredients, like dried shrimp, dried scallops, and aged ham, which get cooked down into a jammy sauce that can give almost any savory dish a huge flavor boost.

Recipe Facts



Prep: 5 mins
Cook: 55 mins
Active: 60 mins
Steeping Time: 60 mins
Total: 2 hrs
Serves: 32 servings
Makes: 4 cups

Rate & Comment


  • 5 ounces (140g) dried shrimp

  • 5 ounces (140g) dried scallops

  • 10 garlic cloves

  • 3 large shallots (about 5 ounces; 140g), quartered

  • One 3-inch piece (2 ounces; 56g) fresh ginger, peeled and roughly chopped

  • 2 to 4 fresh Thai red chile peppers, roughly chopped (see note)

  • 2 cups (475ml) vegetable oil

  • 3 ounces (85g) Jinhua ham, minced (see note)

  • 3 to 5 dried Thai chiles, finely ground (1 to 2 teaspoons); optional (see note)

  • 1/2 cup (120ml) Shaoxing wine (see note)

  • 1 1/2 cups (355ml) chicken broth

  • 1/4 cup (60ml) oyster sauce

  • 2 tablespoons (30ml) soy sauce

  • 2 tablespoons (24g) brown sugar

  • 2 pieces whole star anise


  1. Place shrimp and scallops in separate medium microwave-safe bowls and cover with at least 2 inches of boiling water. Set aside to soak for a minimum of 1 hour or up to 2 hours. (Alternatively, you can soak the shrimp and scallops in cold water overnight in the refrigerator.)

  2. Drain shrimp completely. Drain scallops, leaving 2 tablespoons (30ml) soaking water along with the scallops in the bowl. Cover bowl with a microwave-safe plate and microwave on high heat until scallops are tender and easily break apart when pinched between your fingers, about 3 minutes.

  3. Drain scallops of remaining liquid and transfer them to the bowl of a food processor. Pulse scallops 7 times, until just broken into thin strands, then transfer back to their original bowl. Add shrimp to food processor and pulse 10 times, until coarsely chopped. Transfer shrimp back to their original bowl. Finally, combine garlic, shallots, ginger, and Thai chiles in food processor bowl and pulse 12 to 15 times, until finely chopped but not puréed. Set mixture aside.

  4. In a large Dutch oven, heat vegetable oil over medium-high heat until shimmering. Add ham and cook, stirring frequently with a heat-resistant spatula or wooden spoon, until ham is crisp, 3 to 5 minutes.

  5. Add scallops to pot and continue to cook, stirring frequently to separate strands, until scallops are lightly golden, 3 to 5 minutes. Add shrimp and continue to cook, stirring frequently, until seafood is a deep golden color, 7 to 10 minutes. The oil in the pot will be very bubbly during this stage, making it difficult to see what is going on in the bottom of the pot, so you will need to occasionally use your spatula or a slotted spoon to pick a spoonful of the mixture up out of the oil to check its color.

  6. Add vegetable mixture to pot and continue to cook, stirring frequently, until vegetables are golden brown and fond begins to form at the bottom of the pot, 8 to 10 minutes. Add ground dried chiles and cook until aromatic, about 30 seconds. Deglaze with Shaoxing wine, scraping up any brown bits stuck to the pot.

  7. Stir in chicken broth, oyster sauce, soy sauce, brown sugar, and star anise and continue to cook at a rapid simmer until mixture is thickened and most of the liquid has been absorbed into the sauce, leaving a thin layer of bubbling oil on the surface of the pot, 12 to 15 minutes. Remove from heat. Once XO sauce has cooled, divide into jars and store in the refrigerator for up to 1 month. Bring to room temperature before using.

Special equipment

Food processor, large Dutch oven


Country ham, serrano, or even bacon can be substituted for Jinhua ham. As with cutting bacon or guanciale, placing the ham in the freezer for 10 to 15 minutes before working with it makes it easier to cut.

Thai chiles are very spicy. For a milder condiment, you can either use less of them or omit the ground dried chiles entirely.

Dry sherry can be substituted for Shaoxing wine.

Make-Ahead and Storage

XO sauce can be refrigerated in an airtight container for up to 1 month. For storing, make sure to keep the solids in the sauce submerged in the oil, so that they don't dry out.

This Recipe Appears In

Nutrition Facts (per serving)
161 Calories
14g Fat
3g Carbs
5g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 32
Amount per serving
Calories 161
% Daily Value*
Total Fat 14g 18%
Saturated Fat 1g 6%
Cholesterol 41mg 14%
Sodium 364mg 16%
Total Carbohydrate 3g 1%
Dietary Fiber 0g 1%
Total Sugars 1g
Protein 5g
Vitamin C 1mg 4%
Calcium 24mg 2%
Iron 0mg 1%
Potassium 78mg 2%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)