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