Badges - ava-vs/reputation GitHub Wiki

Reputation Badge

The reputation badge is a visualisation of the user's dynamic reputation non-tradable (soulbound) non-fungible token (dNFT or dSBT).

The user's reputation badge could be used for various purposes, such as event tickets and badges, educational certificates and diplomas, copyright verification of books, articles and other works, etc.

aVa Reputation Protocol

Schema and Use-cases

Digital certificate with Reputation:

agorapp_sd_uml2

JSON Schema for Event Request

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "eventType": {
      "type": "string",
      "enum": [
        "CreateEvent",
        "BurnEvent",
        "CollectionCreatedEvent",
        "CollectionUpdatedEvent",
        "CollectionDeletedEvent",
        "AddToCollectionEvent",
        "RemoveFromCollectionEvent",
        "InstantReputationUpdateEvent",
        "AwaitingReputationUpdateEvent",
        "NewRegistrationEvent",
        "FeedbackSubmissionEvent",
        "Unknown"
      ]
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "contentEncoding": "base64"
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "tokenId": {
      "type": [
        "integer",
        "null"
      ]
    },
    "owner": {
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "array",
        "items": [
          {
            "type": "string"
          },
          {
            "type": "string",
            "contentEncoding": "base64"
          }
        ],
        "minItems": 2,
        "maxItems": 2
      }
    },
    "creationDate": {
      "type": [
        "integer",
        "null"
      ]
    }
  },
  "required": [
    "eventType",
    "topics"
  ]
}

JSON Schema for Reputation Request

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "publisher": {
      "type": "string",
      "description": "Internet Computer publisher ID (principal)"
    },
    "docId": {
      "type": "integer",
      "description": "Doctoken ID"
    },
    "value": {
      "type": "integer",
      "description": "Reputation change. From 0 to 10",
      "minimum": 0,
      "maximum": 255
    },
    "comment": {
      "type": "string",
      "description": "Comment on the reason for the reputation change"
    }
  },
  "required": [
    "user",
    "docId",
    "value",
    "comment"
  ]
}

Example of badge (specimen)

Certificate

Specimen_Card

Event

Group 149 (4)