Is it a best practice to create an interface for each contract?

Is it a best practice to create a interface for each contract? I noticed this is what many big projects are doing, but just curious what’s the benefit of doing so?

And it also brings up a similar question, when doing an external call in contract, is it better to use interface as variable type?

Thanks!!

1 Like