In a large pot over medium heat, add the oil, onion, and ½ teaspoon salt. Cook for 3-5 minutes, stirring occasionally, until softened.
Stir in the garlic, curry powder, and black pepper for about 10 seconds. Then stir in the tomato paste and cook for 30 more seconds, stirring often.
Stir in the coconut milk, water, soy sauce, veggies (if using asparagus, don’t add yet, see note), and remaining 1 teaspoon salt. Increase the heat to high and bring to a boil, then reduce the heat to medium-low to simmer rapidly for about 10 minutes, or until veggies are tender and liquid has reduced a bit.
In the last 2 minutes of cook time, add the shrimp. Increase the heat to bring the broth back to a simmer, then reduce the heat again and simmer for the remaining 2 minutes, or until shrimp are cooked through. Remove from heat and stir in the lime juice.
Serve the shrimp curry over rice and top with fresh herbs.