We study distributed declarative workflow execution in an adversarial setting. In this setting, parties to an agreed-upon workflow do not trust each other to follow that workflow, or suspect the other party might misrepresent proceedings at a later time. We demonstrate how distributed declara- tive workflow execution can be implemented as smart con- tracts, guaranteeing (I) enforcement of workflow semantics, and (II) an incontrovertible record of workflow execution his- tory. Crucially, we achieve both properties without relying on a trusted third party. The implementation is based on the Ethereum blockchain, inheriting the security properties (I) and (II) from the guar- antees given by that chain. A recurring challenge for both the implementation and the analysis is the cost of opera- tions on Ethereum: This cost must be minimised for honest parties, and an adversary must be prevented from inflicting extra cost on others.