Reliability is a critical issue in many multi-organizational distributed applications, be they web services, financial protocols, scientific computing infrastructure, and software controlling public services such as transport. Design by contract traditionally addresses reliability by elaborating type signatures for sequential programs centring on asymmetric procedural invocations. In this paper we generalise the notion of Design by Contract to multiparty distributed applications each using one or more complex, and possibly long-running, application-level protocols. Our main contribution is an assertion method for distributed multiparty interactions centring on the notion of global assertion, which specifies constraints on a whole interaction scenario by elaborating multiparty session types from [5, 6, 27]. The paper establishes the key technical results underpinning the usage of this method for specification, verification and static and dynamic behavioural validation. Contents