NFT Endpoints

Description of endpoints used to get data related to posts on the DeSo blockchain

Please make sure you've read 3️⃣ Data: API so you are familiar with the following types referenced in this documentation:

Get NFTs For User

POST /api/v0/get-nfts-for-user

Get NFTs that a user owns, optionally filtering on for-sale status and pending (NFT transferred) status.

Endpoint implementation in backend.

Example usages in frontend: - Make request to Get NFTs For User - Use GetNFTsForUser to get NFTs to display in a gallery on a user's profile

Request Body

NameTypeDescription

UserPublicKeyBase58Check*

String

Public key for user who owns NFTs

ReaderPublicKeyBase58Check

String

Public key of the reader

IsForSale

Boolean

- If true, only return NFTs that are for sale.

- If false, only return NFTs that are not for sale.

- If not provided, return NFTs regardless of for sale status

IsPending

Boolean

- If IsForSale is provided, this value is ignored.

- Otherwise, if true, only return NFTs that are pending acceptance (NFTs that have been transferred but not accepted).

- If false, only return NFTs that are not pending acceptance. If not provided, return NFTs regardless of pending status

{
  "NFTsMap": { // Map of Post Hash Hex to an object containing a PostEntryResponse AND an NFTEntryResponse.
    "4bd205ec36bb13e76620b48ffc601340562c3ad7fa61b5343f0d9edc6ff6e2f8": {
      "PostEntryResponse": <PostEntryesponse>, // PostEntryResponse of the post that is an NFT owned by UserPublicKeyBase58Check
      "NFTEntryResponses": [<NFTEntryResponse>, <NFTEntryResponse>]// NFTEntryResponses describe the serial numbers of this NFT. There may be multiple for a given post if a user owns multiple NFTs
    },
  }
}

Get NFT Bids For User

POST /api/v0/get-nft-bids-for-user

Get active bids for a user.

Endpoint implementation in backend.

Example usages in frontend: - Make request to Get NFT Bids For User - Use GetNFTBidsForUser to show a user their outstanding bids when they view their own profile

Request Body

NameTypeDescription

UserPublicKeyBase58Check*

String

Public key for user whose bids we want to find

ReaderPublicKeyBase58Check

String

Public key of the reader

{
   {
  "NFTBidEntries": [
    {
      "PublicKeyBase58Check": "BC1YLhtBTFXAsKZgoaoYNW8mWAJWdfQjycheAeYjaX46azVrnZfJ94s", // Public key of the user who submitted this bid
      "PostHashHex": "43b943880ff21f67b92941553233b9d0e6bcf7c56e9a533416873d4d0798d290", // Hex of Post hash of the post that is an NFT.
      "SerialNumber": 85, // Serial number on which this bid was submitted.
      "BidAmountNanos": 1000000000, // Amount of DeSo bid (in nanos)
      "HighestBidAmountNanos": 1000000000, // Highest bid amount currently on this serial number
      "LowestBidAmountNanos": 0, // Lowest bid amount currently on this serial number
      "BidderBalanceNanos": 5000000000 // DeSo balance of the bidder
    }
  ],
  "PostHashHexToPostEntryResponse": {
    "43b943880ff21f67b92941553233b9d0e6bcf7c56e9a533416873d4d0798d290": <PostEntryResponse>
  },
  "PublicKeyBase58CheckToProfileEntryResponse": {
    "BC1YLgF9Tt85ADrL4QiyX6xSGwGrqFWnLr9b5Mt8hfdk54Tg1JJzi9e": <ProfileEntryResponse>
  }
}

Get NFT Bids For NFT Post

POST /api/v0/get-nft-bids-for-nft-post

Get all bids for all serial numbers of a given NFT post.

Endpoint implementation in backend.

Example usages in frontend: - Make request to Get NFT Bids For NFT Post - Use GetNFTBidsForNFTPost to show all active bids on all serial numbers of an NFT collection

Request Body

NameTypeDescription

PostHashHex*

String

Hex of Post hash for which we want to fetch bids

ReaderPublicKeyBase58Check

String

Public key of the reader

{
  "BidEntryResponses": [ // Array of BidEntryResponses which represents all the bids on all serial numbers of NFTs with the provided PostHashHex.
    {
      "PublicKeyBase58Check": "BC1YLhtBTFXAsKZgoaoYNW8mWAJWdfQjycheAeYjaX46azVrnZfJ94s", // Public key of user who submitted bid
      "ProfileEntryResponse": <ProfileEntryResponse>,  // ProfileEntryResponse of user who submitted bid.
      "SerialNumber": 85, // Serial number on which this bid was submitted.
      "BidAmountNanos": 1000000000, // Amount of DeSo bid (in nanos).
      "BidderBalanceNanos": 5000000000 // DeSo balance of the bidder.
    }
  ],
  "NFTEntryResponses": [<NFTEntryResponse>, <NFTEntryResponse>, ...],// NFT entry responses for each serial number. There will be one for each serial number.
  "PostEntryResponse": <PostEntryResponse> // PostEntryResponse of the post that is an NFT.
}

Get NFT Showcase

POST /api/v0/get-nft-showcase

Get summaries of all NFTs included in the NFT showcase.

Endpoint implementation in backend.

Example usage in frontend: - Make request to Get NFT Showcase - Use GetNFTShowcase to fetch all the NFTs to display in the NFT showcase

Request Body

NameTypeDescription

ReaderPublicKeyBase58Check

String

Public key of the reader

{
  "NFTCollections": [<NFTCollectionResponse>, <NFTCollectionResponse>,...]
}

Get Next NFT Showcase

POST /api/v0/get-next-nft-showcase

Get the time the next NFT showcase drop so it can be advertised to users

Endpoint implementation in backend.

Example usages in frontend: - Make request to Get Next NFT Showcase - Use GetNextNFTShowcase to show users the time at which the next NFT showcase drops

{
  "NextNFTShowcaseTstamp": 109872497124 // Time the next NFT showcase will drop
}

Get NFT Collection Summary

POST /api/v0/get-nft-collection-summary

Endpoint implementation in backend.

Example usages in frontend: - Make request to Get NFT Collection Summary - Use GetNFTCollectionSummary to a summary of the current state of the NFT collection and each serial number

Request Body

NameTypeDescription

PostHashHex*

String

ReaderPublicKeyBase58Check

String

Public key of the reader

{
  "NFTCollectionResponse": {
    "ProfileEntryResponse": <ProfileEntryResponse>, // ProfileEntryResponse of the creator of the NFT
    "PostEntryResponse": <PostEntryResponse>, // PostEntryResponse of the post that is an NFT
    "HighestBidAmountNanos": 2000000000, // Highest bid amount currently on any serial number of this Post
    "LowestBidAmountNanos": 0, // Lowest bid amount currently on any serial number of this Post
    "HighestBidAmountNanos": 35000000000, // Highest buy now price currently on any serial number of this Post
    "LowestBidAmountNanos": 0, // Lowest buy now price currently on any serial number of this Post
    "NumCopiesForSale": 1, // Number of serial numbers currently for sale of this NFT post.
    "NumCopiesBuyNow": 1, // Number of serial numbers currently for sale as "Buy Now" NFTs - this means a user can purchase the NFT at the BuyNowPriceNanos without requiring an accept NFT bid transaction from the owner.
    "AvailableSerialNumbers": [15] // Array of integers representing the set of all serial numbers that are for sale of this NFT post.
  },
  SerialNumberToNFTEntryResponse: { // Map of serial number to NFT Entry Response
    1: <NFTEntryResponse>,
    2: <NFTEntryResponse>,
  }
}

Get NFT Entries For Post Hash

POST /api/v0/get-nft-entries-for-nft-post

Gets an NFTEntryResponse for each serial number of this NFT post.

Endpoint implementation in backend.

Example usages in frontend: - Make request to Get NFT Entries for Post Hash

Request Body

NameTypeDescription

PostHashHex*

String

ReaderPublicKeyBase58Check

String

Public key of the reader

{
  "NFTEntryResponses": [<NFTEntryResponse>, <NFTEntryResponse>, ...] // There will be one NFT Entry response for each serial number.
}

Last updated