Preheat oven to 350 degree F (177 degree C).
Line the muffin tray with muffin liners or lightly spray or butter the pan.
Mix all dry ingredients (All purpose flour, sugar, cocoa powder, baking soda and salt) in a bowl. If you need to sift the cocoa powder because it has few lumps.
In another bowl mix all wet ingredients (water, oil, vanilla extract and vinegar). Add wet mixture to flour mixture and mix till it well blended together. Do not over mix. Fill each muffin cup about two-third full with batter
And bake for about 20-22 minutes or till toothpick inserted in center of cupcake will come out clean.
Remove it from oven and after 5 minutes remove cupcakes on wire rack and let them cool completely before frosting.
Place chocolate in a heat proof bowl.
Place that bowl over the pan of simmering water or use double boiler. And melt the chocolate.
Keep it aside and let it come to room temperature. (Melt chocolate while cupcakes are cooling)
Take butter in a pan and using hand mixer or stand mixer beat the butter until smooth and creamy.
Then add sugar and beat until light and fluffy.
Then add vanilla extract and melted chocolate. Beat till mix well.
And continue to beat till frosting is smooth and shiny.
Once cupcakes are cooled completely, frost cupcakes with icing. You can pipe the frosting or spread with butter knife on top of cupcake.
Let the cupcakes cool completely before frosting. If cupcake is not cool enough then icing will melt down.
Let the melted chocolate come to room temperature before adding to frosting. If chocolate is hot then butter in icing will melt and icing will become runny.
Do not over mix the cupcake batter otherwise cake will not be soft.