From 34dadc80efd6f2dfc6f6f6ccd5dd6cbd5e997744 Mon Sep 17 00:00:00 2001 From: Conner Swann <2635475+yourbuddyconner@users.noreply.github.com> Date: Thu, 20 Jul 2023 13:27:50 -0700 Subject: [PATCH 1/3] quick and dirty pass over NFT Schema Docs --- src/pages/mirror/sources/nft-data/Bids.md | 27 +++ .../mirror/sources/nft-data/Collections.md | 41 +++++ .../mirror/sources/nft-data/Floor-Price.md | 39 +++++ src/pages/mirror/sources/nft-data/Listings.md | 0 src/pages/mirror/sources/nft-data/NFT.md | 159 ++++++++++++++++++ src/pages/mirror/sources/nft-data/Rarity.md | 13 ++ src/pages/mirror/sources/nft-data/Sales.md | 42 +++++ .../mirror/sources/nft-data/Spam-Scores.md | 24 +++ src/pages/mirror/sources/nft-data/Transfer.md | 23 +++ 9 files changed, 368 insertions(+) create mode 100644 src/pages/mirror/sources/nft-data/Bids.md create mode 100644 src/pages/mirror/sources/nft-data/Collections.md create mode 100644 src/pages/mirror/sources/nft-data/Floor-Price.md create mode 100644 src/pages/mirror/sources/nft-data/Listings.md create mode 100644 src/pages/mirror/sources/nft-data/NFT.md create mode 100644 src/pages/mirror/sources/nft-data/Rarity.md create mode 100644 src/pages/mirror/sources/nft-data/Sales.md create mode 100644 src/pages/mirror/sources/nft-data/Spam-Scores.md create mode 100644 src/pages/mirror/sources/nft-data/Transfer.md diff --git a/src/pages/mirror/sources/nft-data/Bids.md b/src/pages/mirror/sources/nft-data/Bids.md new file mode 100644 index 0000000..c956bf2 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Bids.md @@ -0,0 +1,27 @@ +## Bid Tables + +Currently, the Goldsky platform provides access to top bids, which represent the highest current offer for any NFT within a collection. + +Top bids from the following marketplaces are included: Blur + +Additional marketplace coverage and bid types will be incorporated soon. + +The top bids array can be found on the field named top_bids on the Collection Table from the "NFT by..." queries, and directly on the Collections by Wallet query. + +**Top Bids Table**: + +Field | Description | Type(s) +--- | --- | --- +marketplace_id | Unique identifier of the NFT marketplace associated with the top bid | string +value | Value of the top bid in the relevant currency | int/null +payment_token | Detail on the relevant currency | payment_token + +**Payment Token Table**: + +Field | Description | Type(s) +--- | --- | --- +payment_token_id | Unique identifier of the token type relevant to the collection | string +name | Name of the token | string / null +symbol | Symbol of the token | string / null +address | Contract address of the ERC-20 token associated with the collection | string / null +decimals | Base number of decimals of the token value associated with the collection | int \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Collections.md b/src/pages/mirror/sources/nft-data/Collections.md new file mode 100644 index 0000000..a2b9bb6 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Collections.md @@ -0,0 +1,41 @@ +## Collection Table + +The Goldsky platform provides details about the collection associated with an NFT. Typically, these collections are specific to certain NFT marketplaces. The following are the fields included for the Collection Table, which appears inline as a field on the NFT Table. Currently, the Goldsky platform includes collections found on various platforms such as OpenSea, Trove, and MagicEden. + +For the Collection Table found on NFT responses and core Collection queries: + +Field | Description | Type(s) +--- | --- | --- +collection_id | Unique identifier for a specific collection | string / null +name | Name of the collection | string / null +description | Description of the collection | string / null +image_url | URL to the collection logo/main image | string / null +banner_image_url | URL to the collection banner image | string / null +category | Collection category if available | string / null +is_nsfw | Collection flagged as NSFW | boolean / null +external_url | URL to the external website or resource associated with the collection | string / null +twitter_username | Twitter handle of the account associated with the collection | string / null +discord_url | Discord server associated with the collection | string / null +instagram_url | Instagram URL for the collection | string / null +medium_username | Medium.com username for the collection | string / null +telegram_url | Telegram URL for the collection | string / null +marketplace_pages | Array of objects referencing the collection's page(s) on a marketplace | see below +metaplex_mint | Unique metaplex mint ID, only for Solana NFTs with a verified metaplex collection | string / null +metaplex_first_verified_creator | Identifier to group by the first verified creator address when a verified metaplex collection is not available | string / null +spam_score | NFT collection's spam rating, ranging between 0-100 (100 being most likely spam) | int / null +floor_prices | Array of floor prices for the collection, one for each marketplace | [Floor price model] +top_bids | Array of top bids for the collection, one for each marketplace | [Top bid model] +chains | Array of chains in the collection | [chain:string] +top_contracts | Array of contracts associated with this collection | [contract_id:string] + +**Marketplace Pages**: +``` +[{ +marketplace_id: string, +marketplace_name:string, +marketplace_collection_id:string, +nft_url:string / null, +collection_url:string, +verified:boolean / null +}] +``` \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Floor-Price.md b/src/pages/mirror/sources/nft-data/Floor-Price.md new file mode 100644 index 0000000..57aff89 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Floor-Price.md @@ -0,0 +1,39 @@ +## Floor Price Tables + +A floor price refers to the lowest listed price of an NFT for a specific collection (often specific to an NFT marketplace). + +The Goldsky platform provides details on the floor price of NFT collections on the following chains: + +- Ethereum: Live +- Solana: Live +- Polygon: Live +- Arbitrum: Live +- Optimism: Live +- Avalanche: Live +- BSC: Live + +Floor prices from the following marketplaces are included: CryptoPunks, Tensor, Blur, OpenSea, X2Y2, LooksRare, and Magic Eden. + +Note: Marketplaces like LooksRare and Blur may show the "global floor price", which is the floor price across several marketplaces. To see the marketplace-specific floor price, you may need to hover over the value or click into the collection. + +More chains and marketplaces will be covered in the near future. + +The `floor_prices` array can be found on the field named `floor_prices` on the Collection Table for "NFT by..." queries, and directly on the Collections by Wallet query. + +**Floor Price Table**: + +Field | Description | Type(s) +--- | --- | --- +marketplace_id | Unique identifier of the NFT marketplace associated with the floor price | string +value | The value of the floor price in the relevant currency | int/null +payment_token | Detail on the relevant currency | payment_token + +**Payment Token Table**: + +Field | Description | Type(s) +--- | --- | --- +payment_token_id | Unique identifier of the token type relevant to the collection | string +name | Name of the token | string / null +symbol | Symbol of the token | string / null +address | Contract address of the ERC-20 token associated with the collection | string / null +decimals | Base number of decimals of the token value | int \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Listings.md b/src/pages/mirror/sources/nft-data/Listings.md new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/mirror/sources/nft-data/NFT.md b/src/pages/mirror/sources/nft-data/NFT.md new file mode 100644 index 0000000..001f6cc --- /dev/null +++ b/src/pages/mirror/sources/nft-data/NFT.md @@ -0,0 +1,159 @@ +## NFT Table + +The Goldsky platform presents NFT data in a normalized manner. The following are the fields included in the NFT Table. + +Field | Description | Type(s) +--- | --- | --- +nft_id | Unique identifier for an NFT | string +chain | The blockchain name | string +contract_address | Address of the NFT's contract | string +token_id | Token ID of the NFT on its contract. Null for Solana and Bitcoin NFTs | string / null +name | NFT's name derived from its metadata | string / null +description | NFT's description derived from its metadata | string / null +previews | Set of URLs to resized preview images of the media | see below +image_url | URL to cached image file | string / null +image_properties | Image properties if available | see below +video_url | URL to cached video file | string / null +video_properties | Video properties if available | see below +audio_url | URL to cached audio file | string / null +audio_properties | Audio properties if available | see below +model_url | URL to cached 3D model file | string / null +model_properties | Model properties if available | see below +other_url | URL to cached file for other media types such as PDFs | string / null +other_properties | File properties if available | see below +background_color | Background color of the NFT derived from its metadata | string / null +external_url | External URL derived from the NFT's metadata | string / null +created_date | NFT minting datetime in timestamp format (e.g., 2021-07-03T23:45:00) | string / null +status | NFT status, either 'minted', or 'burned' | string +token_count | Known quantity of this NFT | int / null +owner_count | Known number of owners of this NFT | int / null +owners | Array of top owners of this NFT | see below +last_sale | Detail on the most recent sale involving this NFT | last_sale / null +first_created | First creation NFT details | see below +contract | Contract type info for this NFT | see below +collection | The associated collection information for this NFT | Collection model +rarity | The associated rarity information for this NFT | Rarity model +royalty | Array of royalty details, by source | see below +extra_metadata | JSON field containing additional custom metadata fields | see below + +**Previews**: +``` +{ +image_small_url:string / null, +image_medium_url:string / null, +image_large_url:string / null, +image_opengraph_url:string / null, +blurhash: string / null, +predominant_color: string / null +} +``` + +**Image Properties**: +``` +{ +width:int / null, +height: int / null, +size : int / null, +mime_type: str / null +} +``` + +**Video Properties**: +``` +{ +width: int / null, +height: int / null, +duration: float / null, +video_coding: str / null, +audio_coding: str / null, +size: int / null, +mime_type: str / null +} +``` + +**Audio Properties**: +``` +{ +duration: float / null, +audio_coding: str / null, +size: int / null, +mime_type: str / null +} +``` + +**Model Properties**: +``` +{ +size: int / null, +mime_type: str / null +} +``` + +**Other Properties**: +``` +{ +size: int / null, +mime_type: str / null +} +``` + +**Owners**: +``` +[{ +owner_address:string, +quantity: int, +first_acquired_date: string, +last_acquired_date: string +}] +``` + +**First Created**: +``` +{ +minted_to: string / null, +quantity: int / null, +timestamp: string / null, +block_number: int / null, +transaction: string / null, +transaction_initiator: string / null +} +``` + +**Contract**: +``` +{ +type:string, +name:string / null, +symbol:string / null, +deployed_by: string / null, +deployed_via_contract: string / null +} +``` + +**Royalty**: +``` +[{ +source: string, +total_creator_fee_basis_points: int, +recipients: [{ +address: string, +percentage: float, +basis_points: int +}] +}] +``` + +**Extra Metadata**: +``` +{ +attributes: [{ +trait_type:string, +value:string, +display_type:string / null +}], +..., +image_original_url:string / null, +animation_original_url:string / null, +metadata_original_url:string / null +} +``` \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Rarity.md b/src/pages/mirror/sources/nft-data/Rarity.md new file mode 100644 index 0000000..b335bf0 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Rarity.md @@ -0,0 +1,13 @@ +## Rarity Table + +The Goldsky platform uses the OpenRarity standard to calculate a consistent, mathematically-based rarity score for NFTs. + +Currently, the system supports ERC-721 and Metaplex non-fungible token standards. Support for ERC-1155 is expected soon. + +**Rarity Table**: + +Field | Description | Type(s) +--- | --- | --- +rank | Rarity rank, relative to the scores of all other NFTs in the collection | int / null +score | Raw rarity score | float / null +unique_attributes | The number of unique attributes, or traits, if any, that this NFT possesses | int / null \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Sales.md b/src/pages/mirror/sources/nft-data/Sales.md new file mode 100644 index 0000000..f33cff3 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Sales.md @@ -0,0 +1,42 @@ +## Sale Tables +The Goldsky platform provides details on the sale of NFTs within the bodies of both the NFT and transfer tables. Currently, information on NFT sales will be returned for sales that occurred on several marketplaces and chains as listed [here](https://www.goldsky.com/chains-marketplaces). + +On NFT responses, sale information is included in the field named last_sale, whereas in transfer responses, it is included in the field named sale_details. + +**last_sale Table** (included inline with the NFT Table): + +Field | Description | Type(s) +--- | --- | --- +from_address | Address selling the NFT | string / null +to_address | Address acquiring the NFT | string / null +quantity | The quantity of NFTs being sold. Null if is_bundle_sale is true | int / null +timestamp | Datetime of the NFT sale | string +transaction | Unique identifier of the NFT sale transaction | string +marketplace_id | ID of the marketplace the sale occurred on | string +marketplace_name | Name of the marketplace the sale occurred on | string +is_bundle_sale | Whether the sale was a bundle sale | boolean +payment_token | Detail on the token used to make the NFT sale. Null if is_bundle_sale is true | payment_token / null +unit_price | Individual unit price of an item within the NFT sale. Null if is_bundle_sale is true | int / null +total_price | Total price of the NFT sale. Null if is_bundle_sale is true | int / null +unit_price_usd_cents | Individual price of an item within the NFT sale, in USD cents, at the time of the transaction. Null if is_bundle_sale is true | int / null + +**sale_details Table** (included inline with the transfer Table): + +Field | Description | Type(s) +--- | --- | --- +marketplace_id | ID of the marketplace the sale occurred on | string / null +marketplace_name | Name of the marketplace the sale occurred on | string +is_bundle_sale | Whether the sale was a bundle sale | boolean +payment_token | Detail on the token used to make the NFT sale. Null if is_bundle_sale is true | payment_token / null +unit_price | Individual unit price of an item within the NFT sale. Null if is_bundle_sale is true | int / null +total_price | Total price of the NFT sale. Null if is_bundle_sale is true | int / null + +**payment_token Table**: + +Field | Description | Type(s) +--- | --- | --- +payment_token_id | Unique identifier of the token type used for the sale | string +name | Name of the token | string / null +symbol | Symbol of the token | string / null +address | Contract address of the token used to make the sale (null for the native ETH token) | string / null +decimals | Base number of decimals of the token value involved in the NFT sale | int \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Spam-Scores.md b/src/pages/mirror/sources/nft-data/Spam-Scores.md new file mode 100644 index 0000000..1653891 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Spam-Scores.md @@ -0,0 +1,24 @@ +## Spam Scores + +Check our [overview blog post](#) for a detailed understanding of how spam scores work. + +**Overview** + +With the increasing adoption of NFTs, spam NFTs have become a significant problem. This results in a poor user experience, especially in wallet and dapp use cases, where users often get confused or annoyed by unfamiliar, low-quality NFTs that appear. An even greater issue arises when these NFTs, typically mass-airdropped, contain malicious links to harmful external sites or resources. Spam NFTs have been growing faster on popular networks with lower transaction fees or costs, most notably Polygon and Solana. Currently, spam scores are available to enterprise plan customers on the main EVM chains and Solana. + +**Goals** + +The spam scoring implementation on Goldsky has two primary objectives: + +1. Make it easier to identify low-quality NFTs from unwanted airdrops ("spam NFTs"). +2. Make it easier to identify NFTs that have dangerous or malicious external links ("scam NFTs"). + +There is a blurred boundary between these two types of NFTs, and the current implementation may target those that fit into both categories. + +**Goldsky Spam Scoring - Current Implementation** + +Goldsky provides a spam score for most NFT collections to furnish end users with more tools to combat spam NFTs. This model is generated through a blend of models, heuristics, and external data sources. The score is a numeric value ranging from 0 to 100, with 0 being considered not spam and 100 being likely spam. + +The field `spam_score` is provided inline with API's NFT response bodies within the collection field. + +Currently, the spam scores are generated at the NFT collection level, meaning all NFTs within a given collection will have the same score. If the response is null, the collection either lacks enough information to be scored or has not yet been assessed. \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Transfer.md b/src/pages/mirror/sources/nft-data/Transfer.md new file mode 100644 index 0000000..c76f197 --- /dev/null +++ b/src/pages/mirror/sources/nft-data/Transfer.md @@ -0,0 +1,23 @@ +## Transfer Table + +The Goldsky platform provides transfer data in a consistent format. The fields included in the Transfer Table, which typically represent the transfer of an NFT between addresses, are as follows. + +Field | Description | Type(s) +--- | --- | --- +nft_id | Unique identifier for an NFT | string +chain | The blockchain name | string +contract_address | Contract address of the NFT involved | string +token_id | Token ID of the NFT on its contract. Null for Solana and Bitcoin NFTs | string / null +collection_id | The unique identifier of the collection | string/ null +event_type | The type of transfer, either: mint, sale, transfer, burn | string +from_address | Originating address for the transfer. If null, this symbolizes a minting event | string / null +to_address | Destination address for the transfer. If null, this symbolizes a burn event | string / null +quantity | Quantity of this NFT being transferred | int +timestamp | Block time of the event in timestamp format (e.g., 2021-07-03T23:45:00Z) | string +block_number | Numeric figure representing the block number of the transfer | int +block_hash | Hash of the specific block. Null for Solana NFTs | string / null +transaction | Unique identifier of the transaction | string +transaction_initiator | Wallet address that initiated the transaction. Null for Solana, Flow, and Bitcoin NFTs | string / null +log_index | Index of the log in the transaction event logs | int +batch_transfer_index | Index of the transfer in the log | int +sale_details | Details on the sale event in this transfer, if applicable | sale_details / null \ No newline at end of file From 8ba04f46cc98c46a5dbf8cc6dd323f285a6ee230 Mon Sep 17 00:00:00 2001 From: Conner Swann <2635475+yourbuddyconner@users.noreply.github.com> Date: Tue, 8 Aug 2023 18:04:23 -0700 Subject: [PATCH 2/3] moved nft pages to partials, included, re-worded --- markdoc/partials/nft-data/Bids.md | 25 +++ markdoc/partials/nft-data/Collections.md | 41 +++++ markdoc/partials/nft-data/Floor-Price.md | 34 ++++ markdoc/partials/nft-data/Listings.md | 55 ++++++ markdoc/partials/nft-data/NFT.md | 159 ++++++++++++++++++ markdoc/partials/nft-data/Rarity.md | 13 ++ markdoc/partials/nft-data/Sales.md | 43 +++++ markdoc/partials/nft-data/Spam-Scores.md | 22 +++ markdoc/partials/nft-data/Transfer.md | 23 +++ src/pages/mirror/sources/nft-data.md | 12 ++ src/pages/mirror/sources/nft-data/Bids.md | 27 --- .../mirror/sources/nft-data/Collections.md | 41 ----- .../mirror/sources/nft-data/Floor-Price.md | 39 ----- src/pages/mirror/sources/nft-data/Listings.md | 0 src/pages/mirror/sources/nft-data/NFT.md | 159 ------------------ src/pages/mirror/sources/nft-data/Rarity.md | 13 -- src/pages/mirror/sources/nft-data/Sales.md | 42 ----- .../mirror/sources/nft-data/Spam-Scores.md | 24 --- src/pages/mirror/sources/nft-data/Transfer.md | 23 --- 19 files changed, 427 insertions(+), 368 deletions(-) create mode 100644 markdoc/partials/nft-data/Bids.md create mode 100644 markdoc/partials/nft-data/Collections.md create mode 100644 markdoc/partials/nft-data/Floor-Price.md create mode 100644 markdoc/partials/nft-data/Listings.md create mode 100644 markdoc/partials/nft-data/NFT.md create mode 100644 markdoc/partials/nft-data/Rarity.md create mode 100644 markdoc/partials/nft-data/Sales.md create mode 100644 markdoc/partials/nft-data/Spam-Scores.md create mode 100644 markdoc/partials/nft-data/Transfer.md delete mode 100644 src/pages/mirror/sources/nft-data/Bids.md delete mode 100644 src/pages/mirror/sources/nft-data/Collections.md delete mode 100644 src/pages/mirror/sources/nft-data/Floor-Price.md delete mode 100644 src/pages/mirror/sources/nft-data/Listings.md delete mode 100644 src/pages/mirror/sources/nft-data/NFT.md delete mode 100644 src/pages/mirror/sources/nft-data/Rarity.md delete mode 100644 src/pages/mirror/sources/nft-data/Sales.md delete mode 100644 src/pages/mirror/sources/nft-data/Spam-Scores.md delete mode 100644 src/pages/mirror/sources/nft-data/Transfer.md diff --git a/markdoc/partials/nft-data/Bids.md b/markdoc/partials/nft-data/Bids.md new file mode 100644 index 0000000..42217a4 --- /dev/null +++ b/markdoc/partials/nft-data/Bids.md @@ -0,0 +1,25 @@ +## Bids + +On the Goldsky platform, users have the ability to view top bids -— these are the highest ongoing propositions for any NFT in a given collection. + +Currently, top bids from the Blur marketplace are incorporated into the platform. We are constantly looking to expand our marketplace coverage and include various bid types. + +The array containing the top bids can be located in the field `top_bids` in the Collection Table, available in the "NFT by..." queries, and also direct in the Collections by Wallet query. + +**Key Information on Bids**: + +Field | Description | Type(s) +--- | --- | --- +`marketplace_id` | Single, distinct identifier of the NFT marketplace where the top bid is placed | `string` +`value` | The top bid's monetary amount in the relevant currency | `int`/`null` +`payment_token` | Information about the currency used | `payment_token` + +**Payment Token Information**: + +Field | Description | Type(s) +--- | --- | --- +`payment_token_id` | Single, distinct identifier of the token type related to the collection | `string` +`name` | Title of the token | `string`/`null` +`symbol` | Short sign of the token | `string`/`null` +`address` | The contract address of the collection's associated ERC-20 token | `string`/`null` +`decimals` | The base number of decimals for the token value in the collection | `int` \ No newline at end of file diff --git a/markdoc/partials/nft-data/Collections.md b/markdoc/partials/nft-data/Collections.md new file mode 100644 index 0000000..2e8bd3f --- /dev/null +++ b/markdoc/partials/nft-data/Collections.md @@ -0,0 +1,41 @@ +## Collections + +The Goldsky platform offers comprehensive insights into the collection associated with a particular NFT. Notably, these collections are often tied to specific NFT marketplaces. The Collection Table, which is embedded within the NFT Table, includes a variety of fields. Presently, the Goldsky platform encompasses collections from a range of platforms like OpenSea, Trove, and MagicEden. + +Here are the details encapsulated in the Collection Table available within NFT responses and core Collection queries: + +Field | Description | Type(s) +--- | --- | --- +`collection_id` | Distinct identifier for a particular collection | `string` / `null` +`name` | Title of the collection | `string` / `null` +`description` | Brief about the collection | `string` / `null` +`image_url` | URL leading to the collection's logo or main image | `string` / `null` +`banner_image_url` | URL leading to the collection's banner image | `string` / `null` +`category` | Category of the collection, if available | `string` / `null` +`is_nsfw` | Flag indicating if the collection is marked as NSFW | `boolean` / `null` +`external_url` | URL of the external website or resource linked to the collection | `string` / `null` +`twitter_username` | The Twitter handle linked to the collection | `string` / `null` +`discord_url` | The Discord server linked to the collection | `string` / `null` +`instagram_url` | Instagram URL for the collection | `string` / `null` +`medium_username` | Medium.com username associated with the collection | `string` / `null` +`telegram_url` | Telegram URL for the collection | `string` / `null` +`marketplace_pages` | Array of objects referencing the collection's page(s) on a marketplace | see below +`metaplex_mint` | Unique metaplex mint ID, only for Solana NFTs that are part of a verified metaplex collection | `string` / `null` +`metaplex_first_verified_creator` | Identifier to group by the initial verified creator address when a verified metaplex collection is not available | `string` / `null` +`spam_score` | Spam rating of the NFT collection, ranges from 0-100 (100 signifies high likelihood of being spam) | `int` / `null` +`floor_prices` | Array of minimum prices for the collection, one for each marketplace | `[Floor price model]` +`top_bids` | Array of highest bids for the collection, one for each marketplace | `[Top bid model]` +`chains` | Array of chains included in the collection | `[chain:string]` +`top_contracts` | Array of contracts linked to this collection | `[contract_id:string]` + +**Marketplace Page Details**: +``` +[{ +`marketplace_id`: string, +`marketplace_name`: string, +`marketplace_collection_id`: string, +`nft_url`: string / null, +`collection_url`: string, +`verified`: boolean / null +}] +``` \ No newline at end of file diff --git a/markdoc/partials/nft-data/Floor-Price.md b/markdoc/partials/nft-data/Floor-Price.md new file mode 100644 index 0000000..f9b6187 --- /dev/null +++ b/markdoc/partials/nft-data/Floor-Price.md @@ -0,0 +1,34 @@ +## Floor Price + +A floor price is the minimum listed price for an NFT within a specific collection—this often applies to a specific NFT marketplace. + +The Goldsky platform provides insights into the floor price of NFT collections across various chains, currently including: + +- Ethereum: Live +- Polygon: Live + +The platform encompasses floor prices from multiple marketplaces such as CryptoPunks, Tensor, Blur, OpenSea, X2Y2, LooksRare, and Magic Eden. + +Please note, marketplaces like LooksRare and Blur might display the "global floor price", representing the lowest price across several marketplaces. + +We are continually working to cover more chains and marketplaces. + +You can locate the `floor_prices` array in the `floor_prices` field within the Collection Table for "NFT by..." queries, and it is also accessible directly in the Collections by Wallet query. + +**Comprehensive Floor Price Details**: + +Field | Description | Type(s) +--- | --- | --- +`marketplace_id` | Distinct identifier of the NFT marketplace tied to the floor price | `string` +`value` | The floor price's monetary amount in the relevant currency | `int`/`null` +`payment_token` | Details about the applicable currency | `payment_token` + +**Payment Token Information**: + +Field | Description | Type(s) +--- | --- | --- +`payment_token_id` | Distinct identifier of the token type associated with the collection | `string` +`name` | Title of the token | `string` / `null` +`symbol` | Short representation of the token | `string` / `null` +`address` | The contract address of the ERC-20 token related to the collection | `string` / `null` +`decimals` | The base number of decimals for the token value associated with the collection | `int` \ No newline at end of file diff --git a/markdoc/partials/nft-data/Listings.md b/markdoc/partials/nft-data/Listings.md new file mode 100644 index 0000000..dde4871 --- /dev/null +++ b/markdoc/partials/nft-data/Listings.md @@ -0,0 +1,55 @@ +## Listings + +The Goldsky platform includes details of active and historical listings on NFT marketplaces. + +Currently supported live marketplaces: + +- MagicEden: Live +- CryptoPunks: Live +- Tensor: Live +- Blur: Live +- OpenSea: Live +- LooksRare: Live +- X2Y2: Live + +More marketplaces will be covered in the near future. + +**Listing Table**: + +Field | Description | Type(s) +--- | --- | --- +id | Unique identifier of the listing | string +permalink | Link to the marketplace listing | string +bundle_item_number | If the listing is part of a bundle, the NFT's position in the bundle | int / null +listing_timestamp | Datetime of the listing | string +expiration_timestamp | Expiration datetime of the listing | string / null +seller_address | Owner wallet address | string +auction_type | Auction type, if applicable. Possible values are: dutch (AKA decreasing price auction) | string / null +quantity | Original listing quantity | int +quantity_remaining | Remaining listing quantity | int +price | Total price of the listing | int +marketplace_id | Unique identifier of the NFT marketplace associated with the listing | string +collection_id | Unique identifier for a specific collection | string / null +nft_id | Unique identifier for an NFT | string +payment_token | Detail on the token used for the listing | payment_token / null + +**Listing Event Table**: + +Field | Description | Type(s) +--- | --- | --- +id | Unique identifier of the listing event | string +event_type | Generic type of event, one of: listing_added, listing_modified, listing_removed | string +event_reason | More detailed reason (if available); one of: listing_cancelled, listing_expired, ownership_changed, quantity_changed, price_changed | string / null +event_timestamp | Datetime of the event as processed | string +listing_id | Unique identifier of the listing from the Listing Table | string +... | (Additional fields from the Listing Table) | + +**Payment Token Table**: + +Field | Description | Type(s) +--- | --- | --- +payment_token_id | Unique identifier of the token type relevant to the collection | string +name | Name of the token | string / null +symbol | Symbol of the token | string / null +address | Contract address of the ERC-20 token associated with the collection | string / null +decimals | Base number of decimals of the token value associated with the collection | int \ No newline at end of file diff --git a/markdoc/partials/nft-data/NFT.md b/markdoc/partials/nft-data/NFT.md new file mode 100644 index 0000000..f803d9e --- /dev/null +++ b/markdoc/partials/nft-data/NFT.md @@ -0,0 +1,159 @@ +## NFT + +The Goldsky platform presents detailed, normalized data related to NFTs in the form of the NFT Table. This table consists of the following fields: + +Field | Description | Type(s) +--- | --- | --- +`nft_id` | Distinct identifier for an NFT | `string` +`chain` | The blockchain's name where the NFT exists | `string` +`contract_address` | Address of the contract related to the NFT | `string` +`token_id` | ID of the NFT's token on its contract. Null for Solana and Bitcoin NFTs | `string` / `null` +`name` | The name of the NFT, obtained from its metadata | `string` / `null` +`description` | Description of the NFT, derived from its metadata | `string` / `null` +`previews` | Set of URLs leading to resized preview images of the media | see below +`image_url` | URL leading to the cached image file | `string` / `null` +`image_properties` | Properties of the image, if available | see below +`video_url` | URL leading to the cached video file | `string` / `null` +`video_properties` | Properties of the video, if available | see below +`audio_url` | URL leading to the cached audio file | `string` / `null` +`audio_properties` | Properties of the audio, if available | see below +`model_url` | URL leading to the cached 3D model file | `string` / `null` +`model_properties` | Properties of the model, if available | see below +`other_url` | URL leading to the cached file for other media types such as PDFs | `string` / `null` +`other_properties` | Properties of the file, if available | see below +`background_color` | Background color of the NFT, as per its metadata | `string` / `null` +`external_url` | External URL, as per the NFT’s metadata | `string` / `null` +`created_date` | Date and time of NFT minting in timestamp format (e.g., 2021-07-03T23:45:00) | `string` / `null` +`status` | Status of the NFT, either 'minted', or 'burned' | `string` +`token_count` | Known quantity of this NFT | `int` / `null` +`owner_count` | Known number of owners of this NFT | `int` / `null` +`owners` | Array of top owners of this NFT | see below +`last_sale` | Details on the most recent sale involving this NFT | `last_sale` / `null` +`first_created` | Details of the first creation of this NFT | see below +`contract` | Type of contract information for this NFT | see below +`collection` | Information associated with this NFT's collection | `Collection model` +`rarity` | Information on this NFT's rarity | `Rarity model` +`royalty` | Array of royalty details, by source | see below +`extra_metadata` | JSON field containing additional custom metadata fields | see below + +**Previews**: +``` +{ +`image_small_url`: string / null, +`image_medium_url`: string / null, +`image_large_url`: string / null, +`image_opengraph_url`: string / null, +`blurhash`: string / null, +`predominant_color`: string / null +} +``` + +**Image Properties**: +``` +{ +`width`: int / null, +`height`: int / null, +`size` : int / null, +`mime_type`: str / null +} +``` + +**Video Properties**: +``` +{ +`width`: int / null, +`height`: int / null, +`duration`: float / null, +`video_coding`: str / null, +`audio_coding`: str / null, +`size`: int / null, +`mime_type`: str / null +} +``` + +**Audio Properties**: +``` +{ +`duration`: float / null, +`audio_coding`: str / null, +`size`: int / null, +`mime_type`: str / null +} +``` + +**Model Properties**: +``` +{ +`size`: int / null, +`mime_type`: str / null +} +``` + +**Other Properties**: +``` +{ +`size`: int / null, +`mime_type`: str / null +} +``` + +**Owners**: +``` +[{ +`owner_address`: string, +`quantity`: int, +`first_acquired_date`: string, +`last_acquired_date`: string +}] +``` + +**First Created**: +``` +{ +`minted_to: string / null, +quantity: int / null, +timestamp: string / null, +block_number: int / null, +transaction: string / null, +transaction_initiator: string / null +} +``` + +**Contract**: +``` +{ +type:string, +name:string / null, +symbol:string / null, +deployed_by: string / null, +deployed_via_contract: string / null +} +``` + +**Royalty**: +``` +[{ +source: string, +total_creator_fee_basis_points: int, +recipients: [{ +address: string, +percentage: float, +basis_points: int +}] +}] +``` + +**Extra Metadata**: +``` +{ +attributes: [{ +trait_type:string, +value:string, +display_type:string / null +}], +..., +image_original_url:string / null, +animation_original_url:string / null, +metadata_original_url:string / null +} +``` \ No newline at end of file diff --git a/markdoc/partials/nft-data/Rarity.md b/markdoc/partials/nft-data/Rarity.md new file mode 100644 index 0000000..816ed9d --- /dev/null +++ b/markdoc/partials/nft-data/Rarity.md @@ -0,0 +1,13 @@ +## Rarity + +The Goldsky platform adopts the OpenRarity standard to derive a consistent and mathematically-based rarity score for NFTs. + +Currently, our system lends support to ERC-721 and Metaplex non-fungible token standards. We are working towards providing support for ERC-1155 in the near future. + +**Rarity Score Details**: + +Field | Description | Type(s) +--- | --- | --- +`rank` | Rarity rank—determined in relation to the scores of all other NFTs within the same collection | `int` / `null` +`score` | The calculated raw rarity score | `float` / `null` +`unique_attributes` | The count of unique attributes or traits, if any, possessed by this NFT | `int` / `null` \ No newline at end of file diff --git a/markdoc/partials/nft-data/Sales.md b/markdoc/partials/nft-data/Sales.md new file mode 100644 index 0000000..883458c --- /dev/null +++ b/markdoc/partials/nft-data/Sales.md @@ -0,0 +1,43 @@ +## Sales + +The Goldsky platform offers in-depth details on the sale of NFTs, which are included within the NFT and transfer tables. + +In NFT responses, sale information can be found in the `last_sale` field, and transfer responses are included in the `sale_details` field. + +**NFT Sale Table** (embedded within the NFT Table): + +Field | Description | Type(s) +--- | --- | --- +`from_address` | Address from where the NFT was sold | `string` / `null` +`to_address` | Address where the NFT was acquired | `string` / `null` +`quantity` | Quantity of NFTs transacted. Null if `is_bundle_sale` is `true` | `int` / `null` +`timestamp` | Date and time of the NFT sale | `string` +`transaction` | Unique identifier of the transaction involving the NFT sale | `string` +`marketplace_id` | Identifier of the marketplace where the sale happened | `string` +`marketplace_name` | Name of the marketplace where the sale happened | `string` +`is_bundle_sale` | Indicates whether the sale was a bundle sale | `boolean` +`payment_token` | Details about the token used in the NFT sale. Null if `is_bundle_sale` is `true` | `payment_token` / `null` +`unit_price` | Individual unit price of an item within the NFT sale. Null if `is_bundle_sale` is `true` | `int` / `null` +`total_price` | Total price of the NFT sale. Null if `is_bundle_sale` is `true` | `int` / `null` +`unit_price_usd_cents` | Price of an individual item within the NFT sale, in USD cents, at the time of the transaction. Null if `is_bundle_sale` is `true` | `int` / `null` + +**Transfer Sale Details Table** (embedded within the transfer Table): + +Field | Description | Type(s) +--- | --- | --- +`marketplace_id` | Identifier of the marketplace where the sale happened | `string` / `null` +`marketplace_name` | Name of the marketplace where the sale took place | `string` +`is_bundle_sale` | Indicates whether the sale was a bundle sale | `boolean` +`payment_token` | Details about the token used in the NFT sale. Null if `is_bundle_sale` is `true` | `payment_token` / `null` +`unit_price` | Individual unit price of an item within the NFT sale. Null if `is_bundle_sale` is `true` | `int` / `null` +`total_price` | Total price of the NFT sale. Null if `is_bundle_sale` is `true` | `int` / `null` + +**Payment Token Details**: + +Field | Description | Type(s) +--- | --- | --- +`payment_token_id` | Unique identifier of the token type utilized in the sale | `string` +`name` | Name of the token | `string` / `null` +`symbol` | Symbol of the token | `string` / `null` +`address` | Contract address of the token used in the sale (null for the native ETH token) | `string` / `null` +`decimals` | Base number of decimals of the token value involved in the NFT sale | `int` \ No newline at end of file diff --git a/markdoc/partials/nft-data/Spam-Scores.md b/markdoc/partials/nft-data/Spam-Scores.md new file mode 100644 index 0000000..f19c4b6 --- /dev/null +++ b/markdoc/partials/nft-data/Spam-Scores.md @@ -0,0 +1,22 @@ +## Understanding Spam Scores + +**Background** + +The rising popularity of NFTs has led to an upsurge in spam NFTs, degrading user experience significantly. Users often find themselves puzzled or irritated by unfamiliar, low-quality NFTs appearing in their wallets and dapp use cases. More ominously, these NFTs—usually mass-airdropped—may contain harmful links to external sites or resources. Spam NFTs are proliferating rapidly on popular networks with lower transaction fees or costs, notably Polygon and Solana. Presently, spam scores are accessible to enterprise plan customers on the main EVM chains and Solana. + +**Objectives** + +Goldsky's implementation of spam scoring pursues two primary goals: + +1. Facilitate the identification of low-quality, unwanted airdropped NFTs, referred to as "spam NFTs." +2. Aid in recognizing NFTs that carry dangerous or malicious external links—"scam NFTs." + +There's a somewhat blurred line separating these two types of NFTs, and the current implementation may target those falling under both categories. + +**Goldsky Spam Scoring - Current Approach** + +Goldsky offers a spam score for most NFT collections, equipping end users with additional tools to tackle spam NFTs. This score is calculated using a blend of models, heuristics, and external data sources. The resulting score is a numerical value that ranges from 0 to 100—0 being considered non-spam and 100 indicating likely spam. + +The `spam_score` field is provided inline with the API's NFT response bodies within the `collection` field. + +Currently, the spam scores are generated at the NFT collection level. This means all NFTs within a specific collection will share the same score. If the response is null, it indicates that the collection either lacks sufficient information for scoring or has not yet been evaluated. \ No newline at end of file diff --git a/markdoc/partials/nft-data/Transfer.md b/markdoc/partials/nft-data/Transfer.md new file mode 100644 index 0000000..e1f4f0b --- /dev/null +++ b/markdoc/partials/nft-data/Transfer.md @@ -0,0 +1,23 @@ +## Transfers + +The Goldsky platform delivers transfer data in a standardized format. The Transfer Table encompasses fields that usually signify the transfer of an NFT between addresses. Here are the included fields: + +Field | Description | Type(s) +--- | --- | --- +`nft_id` | Single, distinct identifier for an NFT | `string` +`chain` | Name of the blockchain | `string` +`contract_address` | Contract address associated with the NFT | `string` +`token_id` | Token ID of the NFT on its contract. Null for Solana and Bitcoin NFTs | `string` / `null` +`collection_id` | Unique identifier of the collection | `string`/ `null` +`event_type` | Type of transfer, which may be: `mint`, `sale`, `transfer`, or `burn` | `string` +`from_address` | Source address for the transfer. If null, this signifies a minting event | `string` / `null` +`to_address` | Destination address for the transfer. If null, this signifies a burn event | `string` / `null` +`quantity` | Quantity of this NFT being transferred | `int` +`timestamp` | Block time of the event in timestamp format (e.g., 2021-07-03T23:45:00Z) | `string` +`block_number` | Numerical representation of the block number of the transfer | `int` +`block_hash` | Hash of the specific block. Null for Solana NFTs | `string` / `null` +`transaction` | Distinct identifier of the transaction | `string` +`transaction_initiator` | Wallet address that initiated the transaction. Null for Solana, Flow, and Bitcoin NFTs | `string` / `null` +`log_index` | Index of the log in the transaction event logs | `int` +`batch_transfer_index` | Index of the transfer in the log | `int` +`sale_details` | Details on the sale event in this transfer, if applicable | `sale_details` / `null` \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data.md b/src/pages/mirror/sources/nft-data.md index 4a0c9e1..6f44d70 100644 --- a/src/pages/mirror/sources/nft-data.md +++ b/src/pages/mirror/sources/nft-data.md @@ -19,3 +19,15 @@ As a mirror source, you'd be able to sink it into any of our supported sinks, as This dataset is in technical preview - it's in production with pilot customers, but subject to change. [Email us](mailto:support@goldsky.com) if you'd like to join our technical preview program. + +## NFT Table Schemas + +{% partial file="nft-data/Collections.md" /%} +{% partial file="nft-data/NFT.md" /%} +{% partial file="nft-data/Listings.md" /%} +{% partial file="nft-data/Bids.md" /%} +{% partial file="nft-data/Sales.md" /%} +{% partial file="nft-data/Floor-Price.md" /%} +{% partial file="nft-data/Transfer.md" /%} +{% partial file="nft-data/Rarity.md" /%} +{% partial file="nft-data/Spam-Scores.md" /%} diff --git a/src/pages/mirror/sources/nft-data/Bids.md b/src/pages/mirror/sources/nft-data/Bids.md deleted file mode 100644 index c956bf2..0000000 --- a/src/pages/mirror/sources/nft-data/Bids.md +++ /dev/null @@ -1,27 +0,0 @@ -## Bid Tables - -Currently, the Goldsky platform provides access to top bids, which represent the highest current offer for any NFT within a collection. - -Top bids from the following marketplaces are included: Blur - -Additional marketplace coverage and bid types will be incorporated soon. - -The top bids array can be found on the field named top_bids on the Collection Table from the "NFT by..." queries, and directly on the Collections by Wallet query. - -**Top Bids Table**: - -Field | Description | Type(s) ---- | --- | --- -marketplace_id | Unique identifier of the NFT marketplace associated with the top bid | string -value | Value of the top bid in the relevant currency | int/null -payment_token | Detail on the relevant currency | payment_token - -**Payment Token Table**: - -Field | Description | Type(s) ---- | --- | --- -payment_token_id | Unique identifier of the token type relevant to the collection | string -name | Name of the token | string / null -symbol | Symbol of the token | string / null -address | Contract address of the ERC-20 token associated with the collection | string / null -decimals | Base number of decimals of the token value associated with the collection | int \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Collections.md b/src/pages/mirror/sources/nft-data/Collections.md deleted file mode 100644 index a2b9bb6..0000000 --- a/src/pages/mirror/sources/nft-data/Collections.md +++ /dev/null @@ -1,41 +0,0 @@ -## Collection Table - -The Goldsky platform provides details about the collection associated with an NFT. Typically, these collections are specific to certain NFT marketplaces. The following are the fields included for the Collection Table, which appears inline as a field on the NFT Table. Currently, the Goldsky platform includes collections found on various platforms such as OpenSea, Trove, and MagicEden. - -For the Collection Table found on NFT responses and core Collection queries: - -Field | Description | Type(s) ---- | --- | --- -collection_id | Unique identifier for a specific collection | string / null -name | Name of the collection | string / null -description | Description of the collection | string / null -image_url | URL to the collection logo/main image | string / null -banner_image_url | URL to the collection banner image | string / null -category | Collection category if available | string / null -is_nsfw | Collection flagged as NSFW | boolean / null -external_url | URL to the external website or resource associated with the collection | string / null -twitter_username | Twitter handle of the account associated with the collection | string / null -discord_url | Discord server associated with the collection | string / null -instagram_url | Instagram URL for the collection | string / null -medium_username | Medium.com username for the collection | string / null -telegram_url | Telegram URL for the collection | string / null -marketplace_pages | Array of objects referencing the collection's page(s) on a marketplace | see below -metaplex_mint | Unique metaplex mint ID, only for Solana NFTs with a verified metaplex collection | string / null -metaplex_first_verified_creator | Identifier to group by the first verified creator address when a verified metaplex collection is not available | string / null -spam_score | NFT collection's spam rating, ranging between 0-100 (100 being most likely spam) | int / null -floor_prices | Array of floor prices for the collection, one for each marketplace | [Floor price model] -top_bids | Array of top bids for the collection, one for each marketplace | [Top bid model] -chains | Array of chains in the collection | [chain:string] -top_contracts | Array of contracts associated with this collection | [contract_id:string] - -**Marketplace Pages**: -``` -[{ -marketplace_id: string, -marketplace_name:string, -marketplace_collection_id:string, -nft_url:string / null, -collection_url:string, -verified:boolean / null -}] -``` \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Floor-Price.md b/src/pages/mirror/sources/nft-data/Floor-Price.md deleted file mode 100644 index 57aff89..0000000 --- a/src/pages/mirror/sources/nft-data/Floor-Price.md +++ /dev/null @@ -1,39 +0,0 @@ -## Floor Price Tables - -A floor price refers to the lowest listed price of an NFT for a specific collection (often specific to an NFT marketplace). - -The Goldsky platform provides details on the floor price of NFT collections on the following chains: - -- Ethereum: Live -- Solana: Live -- Polygon: Live -- Arbitrum: Live -- Optimism: Live -- Avalanche: Live -- BSC: Live - -Floor prices from the following marketplaces are included: CryptoPunks, Tensor, Blur, OpenSea, X2Y2, LooksRare, and Magic Eden. - -Note: Marketplaces like LooksRare and Blur may show the "global floor price", which is the floor price across several marketplaces. To see the marketplace-specific floor price, you may need to hover over the value or click into the collection. - -More chains and marketplaces will be covered in the near future. - -The `floor_prices` array can be found on the field named `floor_prices` on the Collection Table for "NFT by..." queries, and directly on the Collections by Wallet query. - -**Floor Price Table**: - -Field | Description | Type(s) ---- | --- | --- -marketplace_id | Unique identifier of the NFT marketplace associated with the floor price | string -value | The value of the floor price in the relevant currency | int/null -payment_token | Detail on the relevant currency | payment_token - -**Payment Token Table**: - -Field | Description | Type(s) ---- | --- | --- -payment_token_id | Unique identifier of the token type relevant to the collection | string -name | Name of the token | string / null -symbol | Symbol of the token | string / null -address | Contract address of the ERC-20 token associated with the collection | string / null -decimals | Base number of decimals of the token value | int \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Listings.md b/src/pages/mirror/sources/nft-data/Listings.md deleted file mode 100644 index e69de29..0000000 diff --git a/src/pages/mirror/sources/nft-data/NFT.md b/src/pages/mirror/sources/nft-data/NFT.md deleted file mode 100644 index 001f6cc..0000000 --- a/src/pages/mirror/sources/nft-data/NFT.md +++ /dev/null @@ -1,159 +0,0 @@ -## NFT Table - -The Goldsky platform presents NFT data in a normalized manner. The following are the fields included in the NFT Table. - -Field | Description | Type(s) ---- | --- | --- -nft_id | Unique identifier for an NFT | string -chain | The blockchain name | string -contract_address | Address of the NFT's contract | string -token_id | Token ID of the NFT on its contract. Null for Solana and Bitcoin NFTs | string / null -name | NFT's name derived from its metadata | string / null -description | NFT's description derived from its metadata | string / null -previews | Set of URLs to resized preview images of the media | see below -image_url | URL to cached image file | string / null -image_properties | Image properties if available | see below -video_url | URL to cached video file | string / null -video_properties | Video properties if available | see below -audio_url | URL to cached audio file | string / null -audio_properties | Audio properties if available | see below -model_url | URL to cached 3D model file | string / null -model_properties | Model properties if available | see below -other_url | URL to cached file for other media types such as PDFs | string / null -other_properties | File properties if available | see below -background_color | Background color of the NFT derived from its metadata | string / null -external_url | External URL derived from the NFT's metadata | string / null -created_date | NFT minting datetime in timestamp format (e.g., 2021-07-03T23:45:00) | string / null -status | NFT status, either 'minted', or 'burned' | string -token_count | Known quantity of this NFT | int / null -owner_count | Known number of owners of this NFT | int / null -owners | Array of top owners of this NFT | see below -last_sale | Detail on the most recent sale involving this NFT | last_sale / null -first_created | First creation NFT details | see below -contract | Contract type info for this NFT | see below -collection | The associated collection information for this NFT | Collection model -rarity | The associated rarity information for this NFT | Rarity model -royalty | Array of royalty details, by source | see below -extra_metadata | JSON field containing additional custom metadata fields | see below - -**Previews**: -``` -{ -image_small_url:string / null, -image_medium_url:string / null, -image_large_url:string / null, -image_opengraph_url:string / null, -blurhash: string / null, -predominant_color: string / null -} -``` - -**Image Properties**: -``` -{ -width:int / null, -height: int / null, -size : int / null, -mime_type: str / null -} -``` - -**Video Properties**: -``` -{ -width: int / null, -height: int / null, -duration: float / null, -video_coding: str / null, -audio_coding: str / null, -size: int / null, -mime_type: str / null -} -``` - -**Audio Properties**: -``` -{ -duration: float / null, -audio_coding: str / null, -size: int / null, -mime_type: str / null -} -``` - -**Model Properties**: -``` -{ -size: int / null, -mime_type: str / null -} -``` - -**Other Properties**: -``` -{ -size: int / null, -mime_type: str / null -} -``` - -**Owners**: -``` -[{ -owner_address:string, -quantity: int, -first_acquired_date: string, -last_acquired_date: string -}] -``` - -**First Created**: -``` -{ -minted_to: string / null, -quantity: int / null, -timestamp: string / null, -block_number: int / null, -transaction: string / null, -transaction_initiator: string / null -} -``` - -**Contract**: -``` -{ -type:string, -name:string / null, -symbol:string / null, -deployed_by: string / null, -deployed_via_contract: string / null -} -``` - -**Royalty**: -``` -[{ -source: string, -total_creator_fee_basis_points: int, -recipients: [{ -address: string, -percentage: float, -basis_points: int -}] -}] -``` - -**Extra Metadata**: -``` -{ -attributes: [{ -trait_type:string, -value:string, -display_type:string / null -}], -..., -image_original_url:string / null, -animation_original_url:string / null, -metadata_original_url:string / null -} -``` \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Rarity.md b/src/pages/mirror/sources/nft-data/Rarity.md deleted file mode 100644 index b335bf0..0000000 --- a/src/pages/mirror/sources/nft-data/Rarity.md +++ /dev/null @@ -1,13 +0,0 @@ -## Rarity Table - -The Goldsky platform uses the OpenRarity standard to calculate a consistent, mathematically-based rarity score for NFTs. - -Currently, the system supports ERC-721 and Metaplex non-fungible token standards. Support for ERC-1155 is expected soon. - -**Rarity Table**: - -Field | Description | Type(s) ---- | --- | --- -rank | Rarity rank, relative to the scores of all other NFTs in the collection | int / null -score | Raw rarity score | float / null -unique_attributes | The number of unique attributes, or traits, if any, that this NFT possesses | int / null \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Sales.md b/src/pages/mirror/sources/nft-data/Sales.md deleted file mode 100644 index f33cff3..0000000 --- a/src/pages/mirror/sources/nft-data/Sales.md +++ /dev/null @@ -1,42 +0,0 @@ -## Sale Tables -The Goldsky platform provides details on the sale of NFTs within the bodies of both the NFT and transfer tables. Currently, information on NFT sales will be returned for sales that occurred on several marketplaces and chains as listed [here](https://www.goldsky.com/chains-marketplaces). - -On NFT responses, sale information is included in the field named last_sale, whereas in transfer responses, it is included in the field named sale_details. - -**last_sale Table** (included inline with the NFT Table): - -Field | Description | Type(s) ---- | --- | --- -from_address | Address selling the NFT | string / null -to_address | Address acquiring the NFT | string / null -quantity | The quantity of NFTs being sold. Null if is_bundle_sale is true | int / null -timestamp | Datetime of the NFT sale | string -transaction | Unique identifier of the NFT sale transaction | string -marketplace_id | ID of the marketplace the sale occurred on | string -marketplace_name | Name of the marketplace the sale occurred on | string -is_bundle_sale | Whether the sale was a bundle sale | boolean -payment_token | Detail on the token used to make the NFT sale. Null if is_bundle_sale is true | payment_token / null -unit_price | Individual unit price of an item within the NFT sale. Null if is_bundle_sale is true | int / null -total_price | Total price of the NFT sale. Null if is_bundle_sale is true | int / null -unit_price_usd_cents | Individual price of an item within the NFT sale, in USD cents, at the time of the transaction. Null if is_bundle_sale is true | int / null - -**sale_details Table** (included inline with the transfer Table): - -Field | Description | Type(s) ---- | --- | --- -marketplace_id | ID of the marketplace the sale occurred on | string / null -marketplace_name | Name of the marketplace the sale occurred on | string -is_bundle_sale | Whether the sale was a bundle sale | boolean -payment_token | Detail on the token used to make the NFT sale. Null if is_bundle_sale is true | payment_token / null -unit_price | Individual unit price of an item within the NFT sale. Null if is_bundle_sale is true | int / null -total_price | Total price of the NFT sale. Null if is_bundle_sale is true | int / null - -**payment_token Table**: - -Field | Description | Type(s) ---- | --- | --- -payment_token_id | Unique identifier of the token type used for the sale | string -name | Name of the token | string / null -symbol | Symbol of the token | string / null -address | Contract address of the token used to make the sale (null for the native ETH token) | string / null -decimals | Base number of decimals of the token value involved in the NFT sale | int \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Spam-Scores.md b/src/pages/mirror/sources/nft-data/Spam-Scores.md deleted file mode 100644 index 1653891..0000000 --- a/src/pages/mirror/sources/nft-data/Spam-Scores.md +++ /dev/null @@ -1,24 +0,0 @@ -## Spam Scores - -Check our [overview blog post](#) for a detailed understanding of how spam scores work. - -**Overview** - -With the increasing adoption of NFTs, spam NFTs have become a significant problem. This results in a poor user experience, especially in wallet and dapp use cases, where users often get confused or annoyed by unfamiliar, low-quality NFTs that appear. An even greater issue arises when these NFTs, typically mass-airdropped, contain malicious links to harmful external sites or resources. Spam NFTs have been growing faster on popular networks with lower transaction fees or costs, most notably Polygon and Solana. Currently, spam scores are available to enterprise plan customers on the main EVM chains and Solana. - -**Goals** - -The spam scoring implementation on Goldsky has two primary objectives: - -1. Make it easier to identify low-quality NFTs from unwanted airdrops ("spam NFTs"). -2. Make it easier to identify NFTs that have dangerous or malicious external links ("scam NFTs"). - -There is a blurred boundary between these two types of NFTs, and the current implementation may target those that fit into both categories. - -**Goldsky Spam Scoring - Current Implementation** - -Goldsky provides a spam score for most NFT collections to furnish end users with more tools to combat spam NFTs. This model is generated through a blend of models, heuristics, and external data sources. The score is a numeric value ranging from 0 to 100, with 0 being considered not spam and 100 being likely spam. - -The field `spam_score` is provided inline with API's NFT response bodies within the collection field. - -Currently, the spam scores are generated at the NFT collection level, meaning all NFTs within a given collection will have the same score. If the response is null, the collection either lacks enough information to be scored or has not yet been assessed. \ No newline at end of file diff --git a/src/pages/mirror/sources/nft-data/Transfer.md b/src/pages/mirror/sources/nft-data/Transfer.md deleted file mode 100644 index c76f197..0000000 --- a/src/pages/mirror/sources/nft-data/Transfer.md +++ /dev/null @@ -1,23 +0,0 @@ -## Transfer Table - -The Goldsky platform provides transfer data in a consistent format. The fields included in the Transfer Table, which typically represent the transfer of an NFT between addresses, are as follows. - -Field | Description | Type(s) ---- | --- | --- -nft_id | Unique identifier for an NFT | string -chain | The blockchain name | string -contract_address | Contract address of the NFT involved | string -token_id | Token ID of the NFT on its contract. Null for Solana and Bitcoin NFTs | string / null -collection_id | The unique identifier of the collection | string/ null -event_type | The type of transfer, either: mint, sale, transfer, burn | string -from_address | Originating address for the transfer. If null, this symbolizes a minting event | string / null -to_address | Destination address for the transfer. If null, this symbolizes a burn event | string / null -quantity | Quantity of this NFT being transferred | int -timestamp | Block time of the event in timestamp format (e.g., 2021-07-03T23:45:00Z) | string -block_number | Numeric figure representing the block number of the transfer | int -block_hash | Hash of the specific block. Null for Solana NFTs | string / null -transaction | Unique identifier of the transaction | string -transaction_initiator | Wallet address that initiated the transaction. Null for Solana, Flow, and Bitcoin NFTs | string / null -log_index | Index of the log in the transaction event logs | int -batch_transfer_index | Index of the transfer in the log | int -sale_details | Details on the sale event in this transfer, if applicable | sale_details / null \ No newline at end of file From f901d0ceb23bce2d5f5d60ae8b0c123a6ca5ad7a Mon Sep 17 00:00:00 2001 From: Conner Swann <2635475+yourbuddyconner@users.noreply.github.com> Date: Tue, 8 Aug 2023 18:09:49 -0700 Subject: [PATCH 3/3] fixed titles for supported-subgraphs --- src/pages/mirror/supported-tables/cryptopunks.md | 4 ++++ src/pages/mirror/supported-tables/opensea-seaport.md | 5 +++++ src/pages/mirror/supported-tables/x2y2.md | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/src/pages/mirror/supported-tables/cryptopunks.md b/src/pages/mirror/supported-tables/cryptopunks.md index 1694c69..047f494 100644 --- a/src/pages/mirror/supported-tables/cryptopunks.md +++ b/src/pages/mirror/supported-tables/cryptopunks.md @@ -1,3 +1,7 @@ +--- +title: Cryptopunks Source +description: Goldsky Mirror subgraph source - Cryptopunks +--- #### Cryptopunks - account diff --git a/src/pages/mirror/supported-tables/opensea-seaport.md b/src/pages/mirror/supported-tables/opensea-seaport.md index 5a0cf05..9acf727 100644 --- a/src/pages/mirror/supported-tables/opensea-seaport.md +++ b/src/pages/mirror/supported-tables/opensea-seaport.md @@ -1,3 +1,8 @@ +--- +title: OpenSea Seaport Source +description: Goldsky Mirror subgraph source - OpenSea Seaport +--- + #### OpenSea Seaport - collection diff --git a/src/pages/mirror/supported-tables/x2y2.md b/src/pages/mirror/supported-tables/x2y2.md index f46d30d..905d3e8 100644 --- a/src/pages/mirror/supported-tables/x2y2.md +++ b/src/pages/mirror/supported-tables/x2y2.md @@ -1,3 +1,8 @@ +--- +title: X2Y2 Source +description: Goldsky Mirror subgraph source - X2Y2 +--- + #### X2Y2 Exchange - collection