Projects & Stats

Stats & Information about an NFT project

Internally we interchangeably use the term collection and projects. For the longest time NFT marketplaces had to maintain their own collection id or grouping of a NFT project. We currently assign our own identifier to a nft project. It is identified as project_id.

NOTE: As of May 2022, acceptable project_id values can now be metaplex collection id, our project_id, and first creator public key.

This is the same identifier found in the url of our collections page.

ProjectStat

ProjectStat is returned by the following APIs documented below. It contains information and stats about a single NFT collection that we collect every 5 minutes and show in our leaderboard. Project information is contained within the project object. This contains general information about project such as collection size, discord, and most importantly project_attributes.

ProjectStat {
      project_id
      market_cap
      volume_7day
      volume_1day_change
      floor_price
      floor_price_1day_change
      average_price
      average_price_1day_change
      max_price
      twitter_followers
      num_of_token_listed
      num_of_token_holders
      percentage_of_token_listed
      volume_1day
      project {
        supply
        website
        twitter 
        discord
        img_url
        is_verified
        display_name
        project_attributes {
          name
          type
          values
          counts
        }
      }
    }


is_verified

This flag means the collection has been verified by us. We use this flag to determine if we want to list the project on our marketplace.

project_attributes

We store attribute information in project_attributes. This is what we use to determine how to search for tokens that share the same attribute.

Project attributes is an array of objects or dictionary

Each item consists of the following:
{
  
  // Name of the attribute
  name
  
  // Is the attribute a range or is it a category?
  // "RANGE" | "CATEGORICAL"
  type
  
  // Array of possible attribute values. 
  // If type is Categorical it is all strings. 
  // If type is Range it is a 2d array of min / max inclusive.
  values
  
  // A dictionary of attribute_value => its count
  // e.g. {"Red": 500}
  counts
}

Searching by name

You can look up a project by name (we search against its display name). In addition you can pass in a tag to a collections rank based off the tag (e.g. PFP, Gaming, etc).

Function: searchProjectByName

Inputs:

  • [Optional] name

    • Type: String

    • Description: Display name to search against

  • [Optional] meSlug

    • Type: StringInputArg

    • Description: ME slug

  • [Optional] twitter

    • Type: StringInputArg

    • Description: Twitter url (e.g. https://twitter.com/hyperspacexyz)

  • [Optional] matchName

    • Type: StringInputArg

    • Description: To not break the existing name query, we now allow fuzzy/exact match on project name

  • [Optional] tag

    • Type: String

    • Description: Tag to rank against

    • Allowed Values (Case Sensitive):

      • PFP
        Gaming
        Collectibles
        Generative Art
        Utility
        Virtual World
        NEW
    • To rank against "All" leave the tag input blank.

Response:

  • Type: SearchProjectByNameQuery

Reference Usage:

Example using the SDK:

// Example
import { HyperspaceClient } from "hyperspace-js";

const hsClient = new HyperspaceClient(API_KEY);

// Ranked by ALL
hsClient.searchProjectByName({condition : {name: "degen ape"}})

// Ranked by tag
hsClient.searchProjectByName({condition: {name: "degen ape", tag: "PFP"}});


// exact match on me_slug
hsClient.searchProjectByName({condition: {meSlug: {
  operation: StringInputOperationEnum.Exact,
  value: "d_a_s"
}}}).then((result: SearchProjectByNameQuery) => {
  console.log(result.getProjectStatByName.project_stats);
})

// exact match on twitter url
hsClient.searchProjectByName({condition: {twitter: {
  operation: StringInputOperationEnum.Exact,
  value: "https://twitter.com/hyperspacexyz"
}}}).then((result: SearchProjectByNameQuery) => {
  console.log(result.getProjectStatByName.project_stats);
})

Getting Project Stats

Function: getProjects

Inputs:

  • orderBy

    • Type: OrderConfig

    • Allowed Values (Case Sensitive)

      •       market_cap
              volume_7day
              volume_1day_change
              floor_price
              floor_price_1day_change
              average_price
              average_price_1day_change
              max_price
              twitter_followers
              num_of_token_listed
              num_of_token_holders
              percentage_of_token_listed
              volume_1day
  • paginationInfo

    • Type: PaginationConfig

Response:

  • Type: GetProjectStatsQuery

Order by Market Cap

const hsClient = new HyperspaceClient(API_KEY);

hsClient.getProjects({
  orderBy: {
    field_name: "market_cap",
    sort_order: SortOrderEnum.Asc
  }
});

Last updated