Preheat oven to 350°F. Line and grease three 9-inch cake pans with parchment paper.
Whisk boiling water into cocoa powder until smooth and set aside to cool.
In a separate bowl, whisk together flour, baking soda, baking powder, and salt.
Beat butter and sugar in a mixer until light and fluffy, about 3 to 6 minutes.
Add eggs one at a time, mixing well after each addition, then add vanilla extract.
Beat in the cooled cocoa mixture.
Gradually add flour mixture, starting mixer on low then increasing to high speed until just combined.
Divide batter evenly among the prepared pans and bake for 25 to 30 minutes, until a toothpick comes out with few crumbs.
Cool cakes in pans 10 minutes, then invert onto wire racks to cool completely.
For frosting, beat butter until creamy. Add cocoa powder and vanilla, then gradually add powdered sugar, one cup at a time.
Add heavy cream and a pinch of salt; beat until smooth and fluffy.
Wrap each cooled cake layer in plastic wrap and freeze for 2 hours to make frosting easier.
Assemble cake by layering cake and frosting, about 1 cup frosting between layers.
Frost the sides and top with remaining frosting using an off-set spatula.
Refrigerate cake for 2 hours before slicing for easier cutting.