In Mel's data model, every coin/UTXO is locked by a covenant, or a program that constrains what sort of transaction can spend it. Common covenants include:
Checking that a transaction is signed by a particular public key
Checking that a transaction is signed by some subset of keys (a multisig covenant)
Encoding arbitrary stateful logic using self-propagating covenants
On the blockchain level, covenants are written in the low-level MelVM language, but in practice covenants are programmed using the high-level Melodeon language. More info on specific programming patterns can be found in the Melodeon guide.