πŸ€“Metadata schemas

There are 2 main schemas that you need to be aware of in otterspace.

  • Rafts (latest version: 1.0.0)

  • Badges Specs (latest version: 1.0.1)

Rafts

Communities are expressed as Rafts in Otterspace. They are essentially ERC721 tokens or NFTs. A Raft’s metadta is expressed via the following hosted schema

{
   "$schema":"http://json-schema.org/draft-04/schema#",
   "$id":"https://api.otterspace.xyz/schemas/raft/1.0.0.json",
   "type":"object",
   "properties":{
      "name":{
         "type":"string",
         "description":"The organization name of the Raft"
      },
      "description":{
         "type":"string",
         "description":"Describes the asset to which this Raft NFT represents"
      },
      "image":{
         "type":"string",
         "description":"A URI pointing to a resource with mime type image/* representing the asset to which this Raft NFT represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive."
      },
      "properties":{
         "type":"object",
         "properties":{
            "parentRaftTokenId":{
               "type":[
                  "integer",
                  "null"
               ],
               "description":"Identifies the parent organization with a Raft token ID."
            },
            "generation":{
               "type":"integer",
               "description":"Identifies the current generation of the Raft."
            }
         },
         "required":[
            "parentRaftTokenId",
            "generation"
         ]
      }
   },
   "required":[
      "name",
      "description",
      "image",
      "properties"
   ]
}

Badge Specs

A badge spec entity is essentially the design of the badge. Without a badge spec, badges cannot be issued. A badge spec must belong to a Raft and is stored on-chain. The following is the hosted schema that expressed a badge spec

{
   "$schema":"http://json-schema.org/draft-04/schema#",
   "$id":"https://api.otterspace.xyz/schemas/badge/1.0.0.json",
   "type":"object",
   "properties":{
      "name":{
         "type":"string",
         "description":"Identifies the asset to which this Badge represents"
      },
      "description":{
         "type":"string",
         "description":"Describes the asset to which this Badge represents"
      },
      "image":{
         "type":"string",
         "description":"A URI pointing to a resource with mime type image/* representing the asset to which this Badge represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive."
      },
      "properties":{
         "type":"object",
         "properties":{
            "daoName":{
               "type":"string"
            },
            "raftTokenId":{
               "type":"string",
               "description":"The token ID of the Raft (a community, DAO, etc) that this Badge is associated with."
            },
            "raftContractAddress":{
               "type":"string",
               "description":"The contract address of the associated Raft token."
            },
            "createdByAddress":{
               "type":"string",
               "description":"A timestamp of when this badge was created."
            },
            "expiresAt":{
               "type":[
                  "string",
                  "null"
               ],
               "description":"A timestamp of when this badge would expire. This would be null if this is non-expiring"
            }
         },
         "required":[
            "daoName",
            "raftTokenId",
            "raftContractAddress",
            "createdByAddress",
            "expiresAt"
         ]
      }
   },
   "required":[
      "name",
      "description",
      "image",
      "properties"
   ]
}

Last updated