---
# System prepended metadata

title: Reputation Data Types | 'Likes'

---

# Reputation Data Types | 'Likes'

*For more Reputation Modules [see this url.](https://sacred-capital.gitbook.io/sacred-capital/documentation/technical/reputation-data-types)*

*Design is in keeping with principles of modularity that are [discussed here.](https://hackmd.io/@TJSptuQkSdWyLgQxZrAUGg/S1RSmuptU)*

Reputation Modules are designed as separate DHT's that can bridge into any existing app. This allows a community to pick which reputation module is appropriate for them and choose between specific features. 

For example, a community can swap out a 'likes' module and instead decide to incorporate 'claps' or 'upvotes/downvotes' based on how they wish to articulate culture within their collective. 

They do so by picking a DNA template, and adding their community's unique identifier in the 'properties' field to spin-off a new DHT. 

![](https://i.imgur.com/8Aju8wB.png)


Assuming they pick the 'likes' DNA, they will also have the choice of whether:
- Likes received and given is private information i.e seen only by those who give, and those who receive.
- Likes received and given is public info
- Likes received and given cannot be seen by receiver. 

![](https://i.imgur.com/OXoYUiw.png)



## Implementation as a Separate DNA

- Any front-end module should be able to call this 'Like' DNA for it's users to validate other users.
- Likes are always issued by a user towards a 'base entry' that is created by another user. The 'base entry' is undefined by us. It could be a post, a photo, a blog, audio file etc.
- The maximum likes a user can attach to a base entry is 1. (discuss) 

## Issuing Certifications, Badges, Stars etc. 

![](https://i.imgur.com/uUyEXpF.png)


The community can use the Likes DHT to aggregate the number of likes, and issue Reputation Scores (Badges/Labels/Certifications etc.) calculated on a specific DHT. 
- Mathematical operations possible on the number of likes: + - / * < > 




Entries:

```
Entry "like" {
    struct : Like {
        base: string,
        timestamp: u64,
        auth_address: Address,
    }
}

Links {
  users -> Likes
  Base Entry -> Likes
  }
```







```
Entry "base" {
    base : Unique universal identifier for the entry that is being commented on. 
}
```

