Tokens

Operations to help you create and manage tokens.

📘

Please note: This is an introductory reference

For the most up-to-date information, refer to the GraphQL Playground and Apollo API Reference.

🚧 The information provided in this section cannot be programmatically updated and may be subject to inconsistencies over time.

👍

Core Endpoints

  • Testnet: http://platform.canary.enjin.io/graphql
  • Mainnet: http://platform.enjin.io/graphql

This is a detailed reference guide that explains the most commonly used operations.

Queries

Get Token

The GetToken query enables you to retrieve detailed information about a specific token from a collection. It requires the collectionId and tokenId parameters to access attributes, account details, and metadata related to the token.

query GetToken {
  GetToken(
    collectionId: 7153
    tokenId: {integer:10}
  ) {
    tokenId
    supply
    cap
    capSupply
    isFrozen
    minimumBalance
    unitPrice
    mintDeposit
    attributeCount
    nonFungible
    metadata
    collection {
      collectionId
    }
    attributes {
      key
      value
    }
    accounts {
      totalCount
      pageInfo {
        hasNextPage
        hasPreviousPage
        startCursor
        endCursor
      }
      edges {
        cursor
        node {
          balance
          reservedBalance
          isFrozen
          wallet {
            account {
              publicKey
              address
            }
          }
          approvals {
            amount
            expiration
            wallet {
              account {
                publicKey
                address
              }
            }
          }
          namedReserves {
            pallet
            amount
          }
        }
      }
    }
  }
}
{
  "data": {
    "GetToken": {
      "tokenId": "10",
      "supply": "1",
      "cap": "SINGLE_MINT",
      "capSupply": null,
      "isFrozen": false,
      "minimumBalance": "1",
      "unitPrice": "10000000000000000",
      "mintDeposit": "20000000000000000",
      "attributeCount": 0,
      "nonFungible": true,
      "metadata": null,
      "collection": {
        "collectionId": "7153"
      },
      "attributes": [],
      "accounts": {
        "totalCount": 1,
        "pageInfo": {
          "hasNextPage": false,
          "hasPreviousPage": false,
          "startCursor": "",
          "endCursor": ""
        },
        "edges": [
          {
            "cursor": "eyJpZCI6NzgxOCwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
            "node": {
              "balance": "1",
              "reservedBalance": "0",
              "isFrozen": false,
              "wallet": {
                "account": {
                  "publicKey": "0x985e66eaff2d50e6635942b20efb5690191c5da56adc3a2720e64b8bf534d050",
                  "address": "cxMsNPRk7Ek5V76NC4o2HTBrnxcUnxLA9btuKPcuPkmYi84Ts"
                }
              },
              "approvals": [],
              "namedReserves": []
            }
          }
        ]
      }
    }
  }
}
}

Use Case:

You can utilize the GetToken query for various purposes, including:

  • Retrieving Token Information: Get detailed information about a specific token, including supply, cap, and freeze status.
  • Exploring Accounts: Explore accounts that hold the token, check their balances, and freeze status.
  • Context of Collection: Obtain context about the collection to which the token belongs.
  • Retrieving Attributes: Access attributes associated with the collection.
  • Metadata Retrieval: Retrieve metadata associated with the token, such as name, color, or other descriptive information.

GetTokens

The GetTokens query allows you to retrieve an array of token data from a collection, making it suitable for batch retrieval and data analysis. You can specify filtering criteria to target specific tokens within the collection.

🚧

Reading Third-Party Tokens

Please note that the Enjin Platform Cloud is set up to show only the collections and tokens that were created via the auth-ed Enjin Platform Cloud account.

To get a token that was created elsewhere (via a different Enjin Platform Cloud account / NFT.io / Enjin Console / etc.) the collection must be "Tracked" first, or the query response will return an error.

Learn more about tracking a collection in the Tracking Collections section.

query GetTokens {
  GetTokens(
    collectionId: 7153
    tokenIds: [{integer:10}]    
  ) {
    edges {
      cursor
      node {
        tokenId
        supply
        cap
        capSupply
        isFrozen
        minimumBalance
        unitPrice
        mintDeposit
        attributeCount
        collection {
          collectionId
        }
        attributes {
          key
          value
        }
        accounts {
          totalCount
          pageInfo {
            hasNextPage
            hasPreviousPage
            startCursor
            endCursor
          }
          edges {
            cursor
            node {
              balance
              reservedBalance
              isFrozen
              wallet {
                account {
                  publicKey
                  address
                }
              }
              approvals {
                amount
                expiration
                wallet {
                  account {
                    publicKey
                    address
                  }
                }
              }
              namedReserves {
                pallet
                amount
              }
            }
          }
        }
        nonFungible
      }
    }
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
  }
}
{
  "data": {
    "GetTokens": {
      "edges": [
        {
          "cursor": "eyJjb2xsZWN0aW9uX2lkIjo0OTk4LCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
          "node": {
            "tokenId": "10",
            "supply": "1",
            "cap": "SINGLE_MINT",
            "capSupply": null,
            "isFrozen": false,
            "minimumBalance": "1",
            "unitPrice": "10000000000000000",
            "mintDeposit": "20000000000000000",
            "attributeCount": 0,
            "collection": {
              "collectionId": "7153"
            },
            "attributes": [],
            "accounts": {
              "totalCount": 1,
              "pageInfo": {
                "hasNextPage": false,
                "hasPreviousPage": false,
                "startCursor": "",
                "endCursor": ""
              },
              "edges": [
                {
                  "cursor": "eyJpZCI6NzgxOCwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
                  "node": {
                    "balance": "1",
                    "reservedBalance": "0",
                    "isFrozen": false,
                    "wallet": {
                      "account": {
                        "publicKey": "0x985e66eaff2d50e6635942b20efb5690191c5da56adc3a2720e64b8bf534d050",
                        "address": "cxMsNPRk7Ek5V76NC4o2HTBrnxcUnxLA9btuKPcuPkmYi84Ts"
                      }
                    },
                    "approvals": [],
                    "namedReserves": []
                  }
                }
              ]
            },
            "nonFungible": true
          }
        }
      ],
      "totalCount": 1,
      "pageInfo": {
        "hasNextPage": false,
        "hasPreviousPage": false,
        "startCursor": "",
        "endCursor": ""
      }
    }
  }
}

Use Case:

You can utilize the GetTokens query for various purposes, including:

  • Bulk Token Retrieval: Retrieve information about multiple tokens within a collection, making it efficient for displaying token lists or galleries.

  • Filtered Token Retrieval: Apply filters to obtain specific tokens based on criteria like token ID, collection, or attributes.

  • Marketplace Integration: Fetch token data for use in a marketplace or trading platform to display available tokens and their details.

  • Data Analysis: Analyze token data for insights, statistics, or reporting across a collection.

  • User Experience Enhancement: Enhance the user experience by providing a comprehensive view of tokens within a collection.