Soak the Bread : Tear the bread into small pieces and place them in a bowl. Pour the milk over the bread and let it soak for a few minutes until soft.
Cook the Onions : In a small skillet, melt 1 tablespoon of butter over medium heat. Add the minced onion and sauté until it becomes soft and translucent, which should take about 3 to 4 minutes. Remove from heat and allow to cool slightly.
Mix the Meatball Ingredients : In a large mixing bowl, combine the ground beef, soaked bread, eggs, minced garlic, cooked onion, salt, black pepper, and Worcestershire sauce. Mix well until all ingredients are evenly incorporated.
Form the Meatballs : Roll the mixture into 1.5-inch meatballs, placing them on a plate or baking sheet as you go.
Cook the Meatballs : In a large skillet, heat the remaining 2 tablespoons of butter over medium-high heat. Add the meatballs in batches, cooking for about 6-8 minutes, turning occasionally, until browned and cooked through. Move the cooked meatballs to a plate lined with paper towels to absorb any excess grease.
Combine the Ingredients : In a medium saucepan over medium heat, combine the coconut milk, peanut butter, soy sauce, honey, rice wine vinegar, lime juice, and sesame oil. Stir well until smooth.
Add the Garlic and Ginger : Add the minced garlic and ginger, stirring continuously for about 3-5 minutes, until the sauce thickens slightly.
Finish the Sauce : Remove the sauce from heat and stir in half of the chopped peanuts and cilantro, reserving the rest for garnish.
Combine or Serve Separately : Serve the meatballs drizzled with the peanut sauce, or you can add the meatballs directly to the sauce to coat them. Garnish with the remaining chopped peanuts and cilantro.
Enjoy : These Thai Meatball Peanut Satay are delicious on their own, but they also pair well with rice or noodles to make a complete meal. Enjoy!