Melt 50g butter in a pan and fry chopped onion until softened with a pinch of salt.
Add 2 chopped chillies and 4 cloves of grated garlic and fry for 2-3 minutes.
Stir in 100g sugar and 250ml vinegar, then boil until reduced by a quarter.
Add 2kg tomatoes, bring to a boil, and simmer covered for 20 minutes.
Stir in bread, basil, and cayenne, then let sit off the heat for 15 minutes.
Blend the mixture until smooth and strain through a fine sieve.
Blend basil, 2 garlic cloves, 50g pine nuts, and 50g parmesan, then emulsify with 150ml olive oil.
Blanch basil leaves for 10 seconds in boiling water and shock in iced water.
Dry the blanched basil and blend with 150ml olive oil until smooth.
Strain the basil oil through muslin cloth and chill until needed.
Serve soup topped with a spoonful of pesto, a drizzle of basil oil, and fresh leaves.