RGB contracts are a data structure that define mainly three things: (i) the rights associated with the contract (e.g. right to move an asset), (ii) the validity rules associated with the transfer of such right and (iii) the metadata of the contract (e.g. asset name).
Differently from other smart contract systems, the validity rules for each transfer can be defined only in the original contract, and not changed by future owners (as opposed to Bitcoin where anyone can lock bitcoins in a custom script). This helps to keep complexity and validation costs down.
The issuer of the contract also defines a genesis state where the first owner(s) of each available right is set.
To facilitate the issuance of contracts, issuers can use RGB schemas, which act as templates of contracts that can be used to target specific use cases. Some example of RGB schemas are:
Anyone is free to develop their own schema for different applications without having to ask for permission to RGB developers, however it is expected that most use cases can be covered by few main schemas.