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
}
});