A Contract is a structure that can be invalidated or expired, on expiration the execute method is called, depending on the contract it could produce a value or not. If the contract is not valid at the time of the check it will be voided and could produce a value depending on the contract.
Contracts are valid futures that can be run to completion on a reactor or awaited in an async block.