Aren’t you describing… trust levels and badges? They’re already part of core.
Trust levels can be tweaked to require longer periods of time and more interaction to move between levels, look at <yoursite>/admin/site_settings/category/trust
Any data you can query from the DB can be turned into a badge. Badges already have a list of who received which and when.