This document introduces the CorDapp Design Language (CDL), a standard way to represent complex CorDapp designs using different views. It discusses how CDL can be used to represent smart contract state machines, depict smart contract transactions and state evolutions, and reason about privacy. The document provides examples of using CDL views like state machine view, transaction instance view, and state evolution view to model elements of a smart contract for selling goods. It argues that CDL helps build more robust CorDapps by enabling clear documentation and analysis of key design aspects.