Concepts are evaluated compile time and make a lot of TMP more elegant. Contracts are runtime check, akin to assertions.
Phrased differently, contracts are to concepts what assert is to static_assert.
Too bad it couldn't have been contract and static_contract.
Too bad it couldn't have been contract and static_contract.