Ergo is a flexible blockchain protocol. Ergo is designed for developing decentralized applications with the main focus of providing an efficient, secure and easy way to implement financial contracts. To achieve this goal, Ergo includes various technical and economic improvements to existing blockchain solutions. Every coin in Ergo is protected by a program in Ergo Script, which is a powerful and protocol-friendly scripting language based on Σ-protocols. Using ErgoScript, users can encode the conditions under which coins may be used: who can spend them, when, under what external conditions, to whom, and so on. Extended support for light nodes makes Ergo friendly for end users because it allows running contracts on untrusted commodity hardware.To be usable in the long-term, Ergo follows a survivability approach – it uses widely-researched solutions that do not result in security issues in the future, while also preventing performance degradation over time with a new economic model. Finally, Ergo has a self-amendable protocol that allows it to absorb new ideas and improve itself in the future.