Niftory GraphQL API Reference

Launch your NFT experience. Learn more at niftory.com!

Contact

Niftory Engineering

support@niftory.com

API Endpoints
https://api.niftory.com/v1/graphql

Developer Documentation

Detailed API documentation is available at docs.niftory.com.

Queries

app

Description

Gets the App for the current application context. Read more here.

Response

Returns an App

Example

Query
query app {
  app {
    blockchain
    concurrency
    contract {
      ...ContractFragment
    }
    credentials {
      ...KeysFragment
    }
    dapperMerchantAccountAddress
    id
    keyPoolSize
    keys {
      ...KeysFragment
    }
    name
    organization {
      ...OrganizationFragment
    }
    storageAddress
  }
}
Response
{
  "data": {
    "app": {
      "blockchain": "ETHEREUM",
      "concurrency": 123,
      "contract": Contract,
      "credentials": [Keys],
      "dapperMerchantAccountAddress": "xyz789",
      "id": 4,
      "keyPoolSize": 123,
      "keys": Keys,
      "name": "xyz789",
      "organization": Organization,
      "storageAddress": "abc123"
    }
  }
}

appById

Description

Gets an App by its ID. Read more here.

Response

Returns an App

Arguments
Name Description
id - ID! The ID of the App to retrieve

Example

Query
query appById($id: ID!) {
  appById(id: $id) {
    blockchain
    concurrency
    contract {
      ...ContractFragment
    }
    credentials {
      ...KeysFragment
    }
    dapperMerchantAccountAddress
    id
    keyPoolSize
    keys {
      ...KeysFragment
    }
    name
    organization {
      ...OrganizationFragment
    }
    storageAddress
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "appById": {
      "blockchain": "ETHEREUM",
      "concurrency": 123,
      "contract": Contract,
      "credentials": [Keys],
      "dapperMerchantAccountAddress": "xyz789",
      "id": 4,
      "keyPoolSize": 123,
      "keys": Keys,
      "name": "abc123",
      "organization": Organization,
      "storageAddress": "abc123"
    }
  }
}

appUser

Description

Gets the currently logged-in AppUser context. Read more here.

Response

Returns an AppUser

Example

Query
query appUser {
  appUser {
    app {
      ...AppFragment
    }
    createdAt
    email
    id
    image
    name
    primaryWallet {
      ...WalletFragment
    }
    updatedAt
    wallet {
      ...WalletFragment
    }
    wallets {
      ...WalletFragment
    }
  }
}
Response
{
  "data": {
    "appUser": {
      "app": App,
      "createdAt": "2007-12-03T10:15:30Z",
      "email": "test@test.com",
      "id": 4,
      "image": "xyz789",
      "name": "abc123",
      "primaryWallet": Wallet,
      "updatedAt": "2007-12-03T10:15:30Z",
      "wallet": Wallet,
      "wallets": [Wallet]
    }
  }
}

appUserById

Description

Gets an AppUser by its ID. Read more here.

Response

Returns an AppUser

Arguments
Name Description
appId - ID The app ID of the appUser to fetch. Only supported if calling with admin credentials.
id - ID! The ID of the AppUser to retrieve.

Example

Query
query appUserById(
  $appId: ID,
  $id: ID!
) {
  appUserById(
    appId: $appId,
    id: $id
  ) {
    app {
      ...AppFragment
    }
    createdAt
    email
    id
    image
    name
    primaryWallet {
      ...WalletFragment
    }
    updatedAt
    wallet {
      ...WalletFragment
    }
    wallets {
      ...WalletFragment
    }
  }
}
Variables
{"appId": 4, "id": 4}
Response
{
  "data": {
    "appUserById": {
      "app": App,
      "createdAt": "2007-12-03T10:15:30Z",
      "email": "test@test.com",
      "id": "4",
      "image": "abc123",
      "name": "xyz789",
      "primaryWallet": Wallet,
      "updatedAt": "2007-12-03T10:15:30Z",
      "wallet": Wallet,
      "wallets": [Wallet]
    }
  }
}

appUsers

Description

Gets the list of users for your app. Read more here.

Response

Returns an AppUserList

Arguments
Name Description
appId - ID The app ID of the appUsers to fetch. Only supported if calling with admin credentials.
cursor - String The pagination cursor returned by your last call to appUsers
filter - AppUsersFilterInput Properties to filter AppUsers by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query appUsers(
  $appId: ID,
  $cursor: String,
  $filter: AppUsersFilterInput,
  $maxResults: PositiveInt
) {
  appUsers(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...AppUserFragment
    }
  }
}
Variables
{
  "appId": "4",
  "cursor": "abc123",
  "filter": AppUsersFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "appUsers": {
      "cursor": "abc123",
      "items": [AppUser]
    }
  }
}

apps

Description

Gets the AppList for the niftory admins.

Response

Returns an AppList

Arguments
Name Description
cursor - String The pagination cursor
filter - AppsFilterInput Properties to filter Apps by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query apps(
  $cursor: String,
  $filter: AppsFilterInput,
  $maxResults: PositiveInt
) {
  apps(
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...AppFragment
    }
  }
}
Variables
{
  "cursor": "abc123",
  "filter": AppsFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "apps": {
      "cursor": "abc123",
      "items": [App]
    }
  }
}

contract

Description

Gets the Contract from the currently authenticated app. Read more here.

Response

Returns a Contract

Arguments
Name Description
appId - ID The app ID of the contract to fetch. Only supported if calling with admin credentials.

Example

Query
query contract($appId: ID) {
  contract(appId: $appId) {
    address
    blockchain
    id
    metadata
    name
    state
    version
  }
}
Variables
{"appId": "4"}
Response
{
  "data": {
    "contract": {
      "address": "xyz789",
      "blockchain": "ETHEREUM",
      "id": 4,
      "metadata": {},
      "name": "xyz789",
      "state": "CREATED",
      "version": "xyz789"
    }
  }
}

customTransaction

Description

Gets a custom blockchain transaction.

Response

Returns a CustomTransaction

Arguments
Name Description
id - ID The database ID of the transaction to retrieve

Example

Query
query customTransaction($id: ID) {
  customTransaction(id: $id) {
    appId
    approvalState
    code
    hash
    id
    metadataScript
    name
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "customTransaction": {
      "appId": "4",
      "approvalState": "ALLOWED",
      "code": "xyz789",
      "hash": "xyz789",
      "id": "4",
      "metadataScript": "xyz789",
      "name": "xyz789"
    }
  }
}

customTransactions

Description

Gets a list of custom blockchain transactions.

Response

Returns a CustomTransactionList

Arguments
Name Description
appId - ID the appId these CustomTransaction belong to. Can only be used with admin credentials.
cursor - String The pagination cursor returned by your last call to customTransactions.
maxResults - PositiveInt The maximum number of results to return. defaults to 50, max is 100
search - String The search query for full text search

Example

Query
query customTransactions(
  $appId: ID,
  $cursor: String,
  $maxResults: PositiveInt,
  $search: String
) {
  customTransactions(
    appId: $appId,
    cursor: $cursor,
    maxResults: $maxResults,
    search: $search
  ) {
    cursor
    items {
      ...CustomTransactionFragment
    }
  }
}
Variables
{
  "appId": "4",
  "cursor": "xyz789",
  "maxResults": 123,
  "search": "abc123"
}
Response
{
  "data": {
    "customTransactions": {
      "cursor": "abc123",
      "items": [CustomTransaction]
    }
  }
}

file

Description

Gets a File by its ID.

Response

Returns a File

Arguments
Name Description
id - ID! The database ID of the NFTFile to retrieve.

Example

Query
query file($id: ID!) {
  file(id: $id) {
    contentType
    id
    md5
    name
    state
    url
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "file": {
      "contentType": "abc123",
      "id": 4,
      "md5": "abc123",
      "name": "abc123",
      "state": "ERROR",
      "url": "http://www.test.com/"
    }
  }
}

invoices

Description

Gets the list of invoices for your app.

Response

Returns an InvoiceList

Arguments
Name Description
appId - ID The ID of the client app.
cursor - String The pagination cursor returned by your last call to appUsers
filter - InvoicesFilterInput Properties to filter Invoices by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query invoices(
  $appId: ID,
  $cursor: String,
  $filter: InvoicesFilterInput,
  $maxResults: PositiveInt
) {
  invoices(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...InvoiceFragment
    }
  }
}
Variables
{
  "appId": "4",
  "cursor": "abc123",
  "filter": InvoicesFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "invoices": {
      "cursor": "abc123",
      "items": [Invoice]
    }
  }
}

marketplaceListing

Description

Gets a MarketplaceListing by ID.

Response

Returns a MarketplaceListing

Arguments
Name Description
id - ID The ID of the Marketplace listing to retrieve.
nftId - ID The nftId of the Marketplace listing to retrieve.

Example

Query
query marketplaceListing(
  $id: ID,
  $nftId: ID
) {
  marketplaceListing(
    id: $id,
    nftId: $nftId
  ) {
    appId
    blockchainId
    id
    nft {
      ...NFTFragment
    }
    pricing {
      ...FixedPricingFragment
    }
    state
    transactionIds
    user {
      ...AppUserFragment
    }
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{"id": 4, "nftId": "4"}
Response
{
  "data": {
    "marketplaceListing": {
      "appId": 4,
      "blockchainId": "xyz789",
      "id": "4",
      "nft": NFT,
      "pricing": FixedPricing,
      "state": "AVAILABLE",
      "transactionIds": ["xyz789"],
      "user": AppUser,
      "wallet": Wallet
    }
  }
}

marketplaceListings

Description

Gets an MarketplaceListing by ID.

Response

Returns a MarketplaceListingList

Arguments
Name Description
appId - ID The app ID these NFT Models belong to. Only supported if calling with admin credentials.
cursor - String The pagination cursor returned by your last call to marketplaceListings
filter - MarketplaceListingFilterInput Properties to filter NFT Models by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query marketplaceListings(
  $appId: ID,
  $cursor: String,
  $filter: MarketplaceListingFilterInput,
  $maxResults: PositiveInt
) {
  marketplaceListings(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...MarketplaceListingFragment
    }
  }
}
Variables
{
  "appId": 4,
  "cursor": "xyz789",
  "filter": MarketplaceListingFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "marketplaceListings": {
      "cursor": "xyz789",
      "items": [MarketplaceListing]
    }
  }
}

nft

Description

Gets an NFT by database ID. Read more here.

Response

Returns an NFT

Arguments
Name Description
id - ID! The database ID of the NFT to retrieve.

Example

Query
query nft($id: ID!) {
  nft(id: $id) {
    blockchainId
    blockchainState
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    model {
      ...NFTModelFragment
    }
    modelId
    saleState
    serialNumber
    status
    transactions {
      ...BlockchainTransactionFragment
    }
    updatedAt
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "nft": {
      "blockchainId": "xyz789",
      "blockchainState": "ERROR",
      "id": "4",
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "model": NFTModel,
      "modelId": "4",
      "saleState": "AVAILABLE",
      "serialNumber": 987,
      "status": "AVAILABLE",
      "transactions": [BlockchainTransaction],
      "updatedAt": "2007-12-03T10:15:30Z",
      "wallet": Wallet
    }
  }
}

nftListing

Description

Gets an NFTListing by ID.

Response

Returns an NFTListing

Arguments
Name Description
id - ID! The ID of the NFTListing to retrieve.

Example

Query
query nftListing($id: ID!) {
  nftListing(id: $id) {
    appId
    attributes
    createdAt
    description
    id
    nftModel {
      ...NFTModelFragment
    }
    pricing {
      ...FixedPricingFragment
    }
    state
    title
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "nftListing": {
      "appId": "4",
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "description": "xyz789",
      "id": 4,
      "nftModel": NFTModel,
      "pricing": FixedPricing,
      "state": "ACTIVE",
      "title": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

nftListings

Description

Gets NFTListings for the current App context

Response

Returns an NFTListingList

Arguments
Name Description
appId - ID The app ID these NFTListings belong to. Only supported if calling with admin credentials.
cursor - String The pagination cursor returned by your last call to NFTListings
filter - NFTListingFilterInput Properties to filter NFTListings by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query nftListings(
  $appId: ID,
  $cursor: String,
  $filter: NFTListingFilterInput,
  $maxResults: PositiveInt
) {
  nftListings(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...NFTListingFragment
    }
  }
}
Variables
{
  "appId": "4",
  "cursor": "abc123",
  "filter": NFTListingFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "nftListings": {
      "cursor": "xyz789",
      "items": [NFTListing]
    }
  }
}

nftModel

Description

Gets an NFTModel by database ID. Read more here.

Response

Returns an NFTModel

Arguments
Name Description
id - ID! The database ID of the NFTModel to retrieve.

Example

Query
query nftModel($id: ID!) {
  nftModel(id: $id) {
    attributes
    blockchainId
    content {
      ...NFTContentFragment
    }
    createdAt
    description
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    nftListings {
      ...NFTListingFragment
    }
    nfts {
      ...NFTFragment
    }
    quantity
    quantityMinted
    rarity
    set {
      ...NFTSetFragment
    }
    state
    status
    title
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "nftModel": {
      "attributes": {},
      "blockchainId": "abc123",
      "content": NFTContent,
      "createdAt": "2007-12-03T10:15:30Z",
      "description": "abc123",
      "id": "4",
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "nftListings": [NFTListing],
      "nfts": [NFT],
      "quantity": 123,
      "quantityMinted": 123,
      "rarity": "COMMON",
      "set": NFTSet,
      "state": "COMPLETED",
      "status": "DONE",
      "title": "abc123",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

nftModels

Description

Gets NFTModels for the current App context. Read more here.

Response

Returns an NFTModelList

Arguments
Name Description
appId - ID The app ID these NFT Models belong to. Only supported if calling with admin credentials.
cursor - String The pagination cursor returned by your last call to nftModels
filter - NFTModelFilterInput Properties to filter NFT Models by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query nftModels(
  $appId: ID,
  $cursor: String,
  $filter: NFTModelFilterInput,
  $maxResults: PositiveInt
) {
  nftModels(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...NFTModelFragment
    }
  }
}
Variables
{
  "appId": 4,
  "cursor": "xyz789",
  "filter": NFTModelFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "nftModels": {
      "cursor": "abc123",
      "items": [NFTModel]
    }
  }
}

nftSet

Description

Gets an NFTSet by database ID.

Response

Returns an NFTSet

Arguments
Name Description
id - ID! The database ID of the NFTSet to retrieve.

Example

Query
query nftSet($id: ID!) {
  nftSet(id: $id) {
    app {
      ...AppFragment
    }
    attributes
    blockchainId
    createdAt
    id
    image
    metadata
    models {
      ...NFTModelFragment
    }
    state
    status
    tags
    title
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "nftSet": {
      "app": App,
      "attributes": {},
      "blockchainId": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "image": "http://www.test.com/",
      "metadata": {},
      "models": [NFTModel],
      "state": "ERROR",
      "status": "DONE",
      "tags": ["xyz789"],
      "title": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

nftSets

Description

Gets NFTSets for the current App context.

Response

Returns an NFTSetList

Arguments
Name Description
appId - ID The app ID this set belongs to. Only supported if calling with admin credentials.
cursor - String The pagination cursor returned by your last call to nftSetList
filter - NFTSetFilterInput Properties to filter NFTSets by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query nftSets(
  $appId: ID,
  $cursor: String,
  $filter: NFTSetFilterInput,
  $maxResults: PositiveInt
) {
  nftSets(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...NFTSetFragment
    }
  }
}
Variables
{
  "appId": 4,
  "cursor": "abc123",
  "filter": NFTSetFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "nftSets": {
      "cursor": "abc123",
      "items": [NFTSet]
    }
  }
}

nfts

Description

Gets NFTs associated with the current AppUser context, including those that are transferring or failed to transfer. Read more here.

Response

Returns an NFTList

Arguments
Name Description
appId - ID The ID of the client app.
cursor - String The pagination cursor returned by your last call to nfts
filter - NFTFilterInput Properties to filter NFT's by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.
userId - ID The ID of the AppUser to filter by. Can only be the currently logged in user without privileged token.

Example

Query
query nfts(
  $appId: ID,
  $cursor: String,
  $filter: NFTFilterInput,
  $maxResults: PositiveInt,
  $userId: ID
) {
  nfts(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults,
    userId: $userId
  ) {
    cursor
    items {
      ...NFTFragment
    }
  }
}
Variables
{
  "appId": "4",
  "cursor": "xyz789",
  "filter": NFTFilterInput,
  "maxResults": 123,
  "userId": "4"
}
Response
{
  "data": {
    "nfts": {
      "cursor": "abc123",
      "items": [NFT]
    }
  }
}

nftsByWallet

Description

Gets NFTs associated with the current wallet, including those that are transferring or failed to transfer. Read more here.

Response

Returns an NFTList

Arguments
Name Description
address - String The address of the Wallet to filter by. This query requires the ID or the Wallet Address.
cursor - String The pagination cursor returned by your last call to nfts
filter - NFTFilterInput Properties to filter NFT's by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.
walletId - ID The database ID of the Wallet to filter by. This query requires the ID or the Wallet Address.

Example

Query
query nftsByWallet(
  $address: String,
  $cursor: String,
  $filter: NFTFilterInput,
  $maxResults: PositiveInt,
  $walletId: ID
) {
  nftsByWallet(
    address: $address,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults,
    walletId: $walletId
  ) {
    cursor
    items {
      ...NFTFragment
    }
  }
}
Variables
{
  "address": "xyz789",
  "cursor": "xyz789",
  "filter": NFTFilterInput,
  "maxResults": 123,
  "walletId": 4
}
Response
{
  "data": {
    "nftsByWallet": {
      "cursor": "xyz789",
      "items": [NFT]
    }
  }
}

set

Description

Gets an NFTSet by database ID.

Response

Returns an NFTSet

Arguments
Name Description
id - ID! The database ID of the NFTSet to retrieve.

Example

Query
query set($id: ID!) {
  set(id: $id) {
    app {
      ...AppFragment
    }
    attributes
    blockchainId
    createdAt
    id
    image
    metadata
    models {
      ...NFTModelFragment
    }
    state
    status
    tags
    title
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "set": {
      "app": App,
      "attributes": {},
      "blockchainId": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "image": "http://www.test.com/",
      "metadata": {},
      "models": [NFTModel],
      "state": "ERROR",
      "status": "DONE",
      "tags": ["abc123"],
      "title": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

sets

This operation is deprecated. Please use 'nftSetList' instead.
Description

Gets NFTSets for the current App context.

Response

Returns [NFTSet]

Arguments
Name Description
appId - ID The app ID this set belongs to. Only supported if calling with admin credentials.
filter - NFTSetFilterInput Properties to filter NFTSets by.

Example

Query
query sets(
  $appId: ID,
  $filter: NFTSetFilterInput
) {
  sets(
    appId: $appId,
    filter: $filter
  ) {
    app {
      ...AppFragment
    }
    attributes
    blockchainId
    createdAt
    id
    image
    metadata
    models {
      ...NFTModelFragment
    }
    state
    status
    tags
    title
    updatedAt
  }
}
Variables
{"appId": 4, "filter": NFTSetFilterInput}
Response
{
  "data": {
    "sets": [
      {
        "app": App,
        "attributes": {},
        "blockchainId": "xyz789",
        "createdAt": "2007-12-03T10:15:30Z",
        "id": 4,
        "image": "http://www.test.com/",
        "metadata": {},
        "models": [NFTModel],
        "state": "ERROR",
        "status": "DONE",
        "tags": ["xyz789"],
        "title": "xyz789",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

wallet

Description

Gets the primary Wallet belonging to the current AppUser context. Read more here.

Response

Returns a Wallet

Example

Query
query wallet {
  wallet {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Response
{
  "data": {
    "wallet": {
      "address": "abc123",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "xyz789",
      "walletType": "EXTERNAL"
    }
  }
}

walletByAddress

Description

Gets a Wallet by its blockchain address. Wallet must be registered using registerWallet before this request succeeds. Read more here.

Response

Returns a Wallet

Arguments
Name Description
address - String! The address of the Wallet to retrieve.
appId - ID The ID of the App to retrieve the wallet for. Only supported when calling with admin credentials.

Example

Query
query walletByAddress(
  $address: String!,
  $appId: ID
) {
  walletByAddress(
    address: $address,
    appId: $appId
  ) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{"address": "xyz789", "appId": 4}
Response
{
  "data": {
    "walletByAddress": {
      "address": "xyz789",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "xyz789",
      "walletType": "EXTERNAL"
    }
  }
}

walletById

Description

Gets a Wallet by its database ID. Read more here.

Response

Returns a Wallet

Arguments
Name Description
id - ID! The ID of the Wallet to retrieve.

Example

Query
query walletById($id: ID!) {
  walletById(id: $id) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "walletById": {
      "address": "xyz789",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "xyz789",
      "walletType": "EXTERNAL"
    }
  }
}

walletByUserId

Description

Gets the primary Wallet for a given AppUser. Read more here.

Response

Returns a Wallet

Arguments
Name Description
userId - ID! The ID of the AppUser to retrieve the wallet for.

Example

Query
query walletByUserId($userId: ID!) {
  walletByUserId(userId: $userId) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "walletByUserId": {
      "address": "abc123",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "xyz789",
      "walletType": "EXTERNAL"
    }
  }
}

wallets

Description

Gets all Wallets for a given app. Read more here.

Response

Returns a WalletList

Arguments
Name Description
appId - ID! The ID of the App to retrieve the wallet for.
cursor - String The pagination cursor returned by your last call to nftModels
filter - WalletsFilterInput Properties to filter Wallets by.
maxResults - PositiveInt The maximum number of results to return. Defaults to 50, max is 100.

Example

Query
query wallets(
  $appId: ID!,
  $cursor: String,
  $filter: WalletsFilterInput,
  $maxResults: PositiveInt
) {
  wallets(
    appId: $appId,
    cursor: $cursor,
    filter: $filter,
    maxResults: $maxResults
  ) {
    cursor
    items {
      ...WalletFragment
    }
  }
}
Variables
{
  "appId": 4,
  "cursor": "xyz789",
  "filter": WalletsFilterInput,
  "maxResults": 123
}
Response
{
  "data": {
    "wallets": {
      "cursor": "xyz789",
      "items": [Wallet]
    }
  }
}

Mutations

approveCustomTransaction

Description

Approves a custom blockchain transaction to execute it on the blockchain

Response

Returns a CustomTransaction

Arguments
Name Description
id - ID The database ID of the transaction to approve for execution on the blockchain

Example

Query
mutation approveCustomTransaction($id: ID) {
  approveCustomTransaction(id: $id) {
    appId
    approvalState
    code
    hash
    id
    metadataScript
    name
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "approveCustomTransaction": {
      "appId": 4,
      "approvalState": "ALLOWED",
      "code": "abc123",
      "hash": "xyz789",
      "id": "4",
      "metadataScript": "xyz789",
      "name": "abc123"
    }
  }
}

checkout

Description

Initiates checkout for a reserved NFT.

Response

Returns an InitiateCheckoutResponse

Arguments
Name Description
invoiceId - String! The ID of the Invoice representing the reserved NFT. This can be generated using reserve .
onError - String! The URL to redirect to on payment error.
onSuccess - String! The URL to redirect to on successful payment.

Example

Query
mutation checkout(
  $invoiceId: String!,
  $onError: String!,
  $onSuccess: String!
) {
  checkout(
    invoiceId: $invoiceId,
    onError: $onError,
    onSuccess: $onSuccess
  ) {
    redirectUrl
    status
    statusMessage
  }
}
Variables
{
  "invoiceId": "abc123",
  "onError": "xyz789",
  "onSuccess": "abc123"
}
Response
{
  "data": {
    "checkout": {
      "redirectUrl": "http://www.test.com/",
      "status": "abc123",
      "statusMessage": "xyz789"
    }
  }
}

checkoutWithDapperWallet

Description

Initiates checkout with Dapper Wallet of specified NFTModels, and returns a signed transaction to complete checkout with. Flow blockchain only.

Arguments
Name Description
address - String The address of the Wallet to transfer to. This mutation requires userId, walletId' or the wallet address` to be specified.
expiry - UnsignedInt The expiry of this checkout as a unix timestamp.
nftModelId - ID! NFTModel IDs to include in the checkout. One NFT will be randomly reserved from each NFTModel specified.
price - UnsignedFloat The price in DUC to apply to the checkout.
userId - ID The ID of the AppUser to send the NFT to.
walletId - ID The database ID of the Wallet to transfer to. This mutation requires userId, walletId' or the wallet address` to be specified.

Example

Query
mutation checkoutWithDapperWallet(
  $address: String,
  $expiry: UnsignedInt,
  $nftModelId: ID!,
  $price: UnsignedFloat,
  $userId: ID,
  $walletId: ID
) {
  checkoutWithDapperWallet(
    address: $address,
    expiry: $expiry,
    nftModelId: $nftModelId,
    price: $price,
    userId: $userId,
    walletId: $walletId
  ) {
    brand
    cadence
    expiry
    merchantAccountAddress
    nftDatabaseId
    nftId
    nftTypeRef
    price
    registryAddress
    setId
    signerAddress
    signerKeyId
    templateId
  }
}
Variables
{
  "address": "abc123",
  "expiry": 123,
  "nftModelId": "4",
  "price": 123.45,
  "userId": 4,
  "walletId": 4
}
Response
{
  "data": {
    "checkoutWithDapperWallet": {
      "brand": "xyz789",
      "cadence": "abc123",
      "expiry": "abc123",
      "merchantAccountAddress": "abc123",
      "nftDatabaseId": "xyz789",
      "nftId": "abc123",
      "nftTypeRef": "abc123",
      "price": "xyz789",
      "registryAddress": "abc123",
      "setId": "xyz789",
      "signerAddress": "xyz789",
      "signerKeyId": 123,
      "templateId": "xyz789"
    }
  }
}

completeCheckoutWithDapperWallet

Description

Marks the checkout with Dapper Wallet as complete, and updates the NFT as belonging to specified wallet. Called after checkoutWithDapperWallet once purchase is completed.

Response

Returns an NFT

Arguments
Name Description
nftDatabaseId - String Database ID of the NFT, returned from checkoutWithDapperWallet.
transactionId - String! The completed Dapper Wallet transaction ID.

Example

Query
mutation completeCheckoutWithDapperWallet(
  $nftDatabaseId: String,
  $transactionId: String!
) {
  completeCheckoutWithDapperWallet(
    nftDatabaseId: $nftDatabaseId,
    transactionId: $transactionId
  ) {
    blockchainId
    blockchainState
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    model {
      ...NFTModelFragment
    }
    modelId
    saleState
    serialNumber
    status
    transactions {
      ...BlockchainTransactionFragment
    }
    updatedAt
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{
  "nftDatabaseId": "xyz789",
  "transactionId": "xyz789"
}
Response
{
  "data": {
    "completeCheckoutWithDapperWallet": {
      "blockchainId": "xyz789",
      "blockchainState": "ERROR",
      "id": "4",
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "model": NFTModel,
      "modelId": "4",
      "saleState": "AVAILABLE",
      "serialNumber": 123,
      "status": "AVAILABLE",
      "transactions": [BlockchainTransaction],
      "updatedAt": "2007-12-03T10:15:30Z",
      "wallet": Wallet
    }
  }
}

completeMarketplaceCancel

Description

Completes a marketplace listing cancellation

Response

Returns a MarketplaceListing

Arguments
Name Description
id - ID! The id of the marketplace listing
transactionId - String! The blockchain transaction id for this transaction

Example

Query
mutation completeMarketplaceCancel(
  $id: ID!,
  $transactionId: String!
) {
  completeMarketplaceCancel(
    id: $id,
    transactionId: $transactionId
  ) {
    appId
    blockchainId
    id
    nft {
      ...NFTFragment
    }
    pricing {
      ...FixedPricingFragment
    }
    state
    transactionIds
    user {
      ...AppUserFragment
    }
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{"id": 4, "transactionId": "xyz789"}
Response
{
  "data": {
    "completeMarketplaceCancel": {
      "appId": "4",
      "blockchainId": "xyz789",
      "id": 4,
      "nft": NFT,
      "pricing": FixedPricing,
      "state": "AVAILABLE",
      "transactionIds": ["abc123"],
      "user": AppUser,
      "wallet": Wallet
    }
  }
}

completeMarketplaceList

Description

Completes a marketplace listing creation

Response

Returns a MarketplaceListing

Arguments
Name Description
nftId - ID! The NFT for which the marketplace listing is created
transactionId - String! The blockchain transaction id for this transaction

Example

Query
mutation completeMarketplaceList(
  $nftId: ID!,
  $transactionId: String!
) {
  completeMarketplaceList(
    nftId: $nftId,
    transactionId: $transactionId
  ) {
    appId
    blockchainId
    id
    nft {
      ...NFTFragment
    }
    pricing {
      ...FixedPricingFragment
    }
    state
    transactionIds
    user {
      ...AppUserFragment
    }
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{"nftId": 4, "transactionId": "xyz789"}
Response
{
  "data": {
    "completeMarketplaceList": {
      "appId": "4",
      "blockchainId": "abc123",
      "id": "4",
      "nft": NFT,
      "pricing": FixedPricing,
      "state": "AVAILABLE",
      "transactionIds": ["abc123"],
      "user": AppUser,
      "wallet": Wallet
    }
  }
}

completeMarketplacePurchase

Description

Completes a marketplace listing purchase

Response

Returns a MarketplaceListing

Arguments
Name Description
id - ID! The NFT for which the marketplace listing is created
transactionId - String! The blockchain transaction id for this transaction

Example

Query
mutation completeMarketplacePurchase(
  $id: ID!,
  $transactionId: String!
) {
  completeMarketplacePurchase(
    id: $id,
    transactionId: $transactionId
  ) {
    appId
    blockchainId
    id
    nft {
      ...NFTFragment
    }
    pricing {
      ...FixedPricingFragment
    }
    state
    transactionIds
    user {
      ...AppUserFragment
    }
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{"id": 4, "transactionId": "abc123"}
Response
{
  "data": {
    "completeMarketplacePurchase": {
      "appId": "4",
      "blockchainId": "abc123",
      "id": 4,
      "nft": NFT,
      "pricing": FixedPricing,
      "state": "AVAILABLE",
      "transactionIds": ["xyz789"],
      "user": AppUser,
      "wallet": Wallet
    }
  }
}

createCustomTransaction

Description

Creates a custom blockchain transaction. that can be later executed on the blockchain

Response

Returns a CustomTransaction

Arguments
Name Description
appId - ID The appId in which the custom transaction resides. Can only be used with admin credentials.
data - CustomTransactionCreateInput! The data to create the custom transaction

Example

Query
mutation createCustomTransaction(
  $appId: ID,
  $data: CustomTransactionCreateInput!
) {
  createCustomTransaction(
    appId: $appId,
    data: $data
  ) {
    appId
    approvalState
    code
    hash
    id
    metadataScript
    name
  }
}
Variables
{
  "appId": "4",
  "data": CustomTransactionCreateInput
}
Response
{
  "data": {
    "createCustomTransaction": {
      "appId": 4,
      "approvalState": "ALLOWED",
      "code": "xyz789",
      "hash": "xyz789",
      "id": 4,
      "metadataScript": "abc123",
      "name": "xyz789"
    }
  }
}

createFileUploadUrl

Description

Generates a pre-signed URL that can then be used to upload a file. Once the file has been uploaded to the URL, it will automatically be uploaded to IPFS (if desired). Use the returned File.state to track the upload.

Response

Returns a File

Arguments
Name Description
appId - ID The app ID this file should be uploaded to. Only supported if calling with admin credentials.
description - String Description about the file. If specified, and uploadToIpfs=true, this description will be added to the IPFS file metadata.
name - String! A friendly name for the file.
options - CreateFileOptionsInput File upload options, such as whether to upload to IPFS. Default = {uploadToIPFS: true}

Example

Query
mutation createFileUploadUrl(
  $appId: ID,
  $description: String,
  $name: String!,
  $options: CreateFileOptionsInput
) {
  createFileUploadUrl(
    appId: $appId,
    description: $description,
    name: $name,
    options: $options
  ) {
    contentType
    id
    md5
    name
    state
    url
  }
}
Variables
{
  "appId": 4,
  "description": "xyz789",
  "name": "xyz789",
  "options": {"uploadToIPFS": "true"}
}
Response
{
  "data": {
    "createFileUploadUrl": {
      "contentType": "abc123",
      "id": "4",
      "md5": "abc123",
      "name": "abc123",
      "state": "ERROR",
      "url": "http://www.test.com/"
    }
  }
}

createNFTModel

Description

Creates a new NFTModel.

Response

Returns an NFTModel

Arguments
Name Description
appId - ID The app ID this NFTModel should be belong to. Only supported if calling with admin credentials.
data - NFTModelCreateInput! The data to create the NFTModel.
setId - ID! The ID of the NFTSet that this model should belong to. This can be created using createNFTSet or retrieved using This can be created using sets.

Example

Query
mutation createNFTModel(
  $appId: ID,
  $data: NFTModelCreateInput!,
  $setId: ID!
) {
  createNFTModel(
    appId: $appId,
    data: $data,
    setId: $setId
  ) {
    attributes
    blockchainId
    content {
      ...NFTContentFragment
    }
    createdAt
    description
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    nftListings {
      ...NFTListingFragment
    }
    nfts {
      ...NFTFragment
    }
    quantity
    quantityMinted
    rarity
    set {
      ...NFTSetFragment
    }
    state
    status
    title
    updatedAt
  }
}
Variables
{
  "appId": "4",
  "data": NFTModelCreateInput,
  "setId": 4
}
Response
{
  "data": {
    "createNFTModel": {
      "attributes": {},
      "blockchainId": "xyz789",
      "content": NFTContent,
      "createdAt": "2007-12-03T10:15:30Z",
      "description": "xyz789",
      "id": 4,
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "nftListings": [NFTListing],
      "nfts": [NFT],
      "quantity": 123,
      "quantityMinted": 123,
      "rarity": "COMMON",
      "set": NFTSet,
      "state": "COMPLETED",
      "status": "DONE",
      "title": "abc123",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

createNFTSet

Description

Creates a new NFTSet.

Response

Returns an NFTSet

Arguments
Name Description
appId - ID The app ID this NFTSet should be created in. Only supported if calling with admin credentials.
data - NFTSetCreateInput! The input data for the NFTSet.

Example

Query
mutation createNFTSet(
  $appId: ID,
  $data: NFTSetCreateInput!
) {
  createNFTSet(
    appId: $appId,
    data: $data
  ) {
    app {
      ...AppFragment
    }
    attributes
    blockchainId
    createdAt
    id
    image
    metadata
    models {
      ...NFTModelFragment
    }
    state
    status
    tags
    title
    updatedAt
  }
}
Variables
{"appId": 4, "data": NFTSetCreateInput}
Response
{
  "data": {
    "createNFTSet": {
      "app": App,
      "attributes": {},
      "blockchainId": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "image": "http://www.test.com/",
      "metadata": {},
      "models": [NFTModel],
      "state": "ERROR",
      "status": "DONE",
      "tags": ["abc123"],
      "title": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

createNiftoryWallet

Description

Provisions a Niftory Wallet and, if specified, associates it with the given AppUser. Note: The call fails if the user already has a wallet.

Response

Returns a Wallet

Arguments
Name Description
appId - ID The app ID this wallet should belong to. Only supported if calling with admin credentials.
data - CreateNiftoryWalletInput
userId - ID The ID of the AppUser to associate with the created Wallet. If unspecified, the caller is responsible for mapping the Wallet to their user.

Example

Query
mutation createNiftoryWallet(
  $appId: ID,
  $data: CreateNiftoryWalletInput,
  $userId: ID
) {
  createNiftoryWallet(
    appId: $appId,
    data: $data,
    userId: $userId
  ) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{
  "appId": "4",
  "data": CreateNiftoryWalletInput,
  "userId": 4
}
Response
{
  "data": {
    "createNiftoryWallet": {
      "address": "xyz789",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "abc123",
      "walletType": "EXTERNAL"
    }
  }
}

deleteCustomTransaction

Description

Deletes a custom blockchain transaction from the database, This won't delete the transaction from the blockchain

Response

Returns a CustomTransaction

Arguments
Name Description
id - ID The database ID of the transaction to delete

Example

Query
mutation deleteCustomTransaction($id: ID) {
  deleteCustomTransaction(id: $id) {
    appId
    approvalState
    code
    hash
    id
    metadataScript
    name
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteCustomTransaction": {
      "appId": 4,
      "approvalState": "ALLOWED",
      "code": "abc123",
      "hash": "xyz789",
      "id": "4",
      "metadataScript": "xyz789",
      "name": "abc123"
    }
  }
}

executeTransaction

Description

Executes a transaction for a Niftory wallet.

Response

Returns a BlockchainTransaction

Arguments
Name Description
address - String The address of the wallet to sign on behalf of. One of walletId, userId, or address must be provided.
appId - ID The appId in which the wallet resides. Can only be used with admin credentials.
args - JSONObject Args to be passed to the transaction. These should be in a JSON Object of the form {name: value}.
name - String A user-friendly name for the transaction.
transaction - String The cadence code of the transaction to execute. One of transactionId or transaction must be provided.
transactionId - ID The ID of the CustomTransaction to execute on the blockchain. Can only be executed if the transaction is approved, One of transactionId or transaction must be provided.
userId - ID The ID of the user to sign on behalf of. One of walletId, userId, or address must be provided.
walletId - ID The database ID of the wallet to sign on behalf of. One of walletId, userId, or address must be provided.

Example

Query
mutation executeTransaction(
  $address: String,
  $appId: ID,
  $args: JSONObject,
  $name: String,
  $transaction: String,
  $transactionId: ID,
  $userId: ID,
  $walletId: ID
) {
  executeTransaction(
    address: $address,
    appId: $appId,
    args: $args,
    name: $name,
    transaction: $transaction,
    transactionId: $transactionId,
    userId: $userId,
    walletId: $walletId
  ) {
    blockchain
    hash
    id
    name
    result
    state
  }
}
Variables
{
  "address": "abc123",
  "appId": 4,
  "args": {},
  "name": "xyz789",
  "transaction": "xyz789",
  "transactionId": "4",
  "userId": 4,
  "walletId": "4"
}
Response
{
  "data": {
    "executeTransaction": {
      "blockchain": "ETHEREUM",
      "hash": "xyz789",
      "id": 4,
      "name": "xyz789",
      "result": {},
      "state": "PENDING"
    }
  }
}

mintNFTModel

Description

Initiates minting for a given NFTModel.

Response

Returns an NFTModel

Arguments
Name Description
appId - ID The app ID this NFTModel belongs/mints to. Only supported if calling with admin credentials.
id - ID! The ID of the NFTModel to mint NFTs from.
quantity - PositiveInt The number of NFTs to mint. Defaults to minting all NFTs in the model. If quantity exceeds the quantity defined in the model, the latter is used.

Example

Query
mutation mintNFTModel(
  $appId: ID,
  $id: ID!,
  $quantity: PositiveInt
) {
  mintNFTModel(
    appId: $appId,
    id: $id,
    quantity: $quantity
  ) {
    attributes
    blockchainId
    content {
      ...NFTContentFragment
    }
    createdAt
    description
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    nftListings {
      ...NFTListingFragment
    }
    nfts {
      ...NFTFragment
    }
    quantity
    quantityMinted
    rarity
    set {
      ...NFTSetFragment
    }
    state
    status
    title
    updatedAt
  }
}
Variables
{"appId": "4", "id": 4, "quantity": 123}
Response
{
  "data": {
    "mintNFTModel": {
      "attributes": {},
      "blockchainId": "xyz789",
      "content": NFTContent,
      "createdAt": "2007-12-03T10:15:30Z",
      "description": "abc123",
      "id": "4",
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "nftListings": [NFTListing],
      "nfts": [NFT],
      "quantity": 123,
      "quantityMinted": 123,
      "rarity": "COMMON",
      "set": NFTSet,
      "state": "COMPLETED",
      "status": "DONE",
      "title": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

mintNFTSet

Description

Initiates minting for a given NFTSet.

Response

Returns an NFTSet

Arguments
Name Description
appId - ID The app ID this NFTSet belongs/mints to. Only supported if calling with admin credentials.
id - ID! The ID of the NFTSet to mint.

Example

Query
mutation mintNFTSet(
  $appId: ID,
  $id: ID!
) {
  mintNFTSet(
    appId: $appId,
    id: $id
  ) {
    app {
      ...AppFragment
    }
    attributes
    blockchainId
    createdAt
    id
    image
    metadata
    models {
      ...NFTModelFragment
    }
    state
    status
    tags
    title
    updatedAt
  }
}
Variables
{
  "appId": "4",
  "id": "4"
}
Response
{
  "data": {
    "mintNFTSet": {
      "app": App,
      "attributes": {},
      "blockchainId": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "image": "http://www.test.com/",
      "metadata": {},
      "models": [NFTModel],
      "state": "ERROR",
      "status": "DONE",
      "tags": ["abc123"],
      "title": "abc123",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

readyWallet

Description

Marks a Wallet as ready, indicating that the wallet is ready to receive NFTs from the app's Contract. The wallet must be verified before this succeeds. Read more here.

Response

Returns a Wallet

Arguments
Name Description
address - String! The address of the wallet.

Example

Query
mutation readyWallet($address: String!) {
  readyWallet(address: $address) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{"address": "abc123"}
Response
{
  "data": {
    "readyWallet": {
      "address": "abc123",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "xyz789",
      "walletType": "EXTERNAL"
    }
  }
}

registerWallet

Description

Registers a Wallet, associating it with the currently signed-in AppUser if specified. Read more here.

Response

Returns a Wallet

Arguments
Name Description
address - String! The address of the wallet.
data - RegisterWalletInput

Example

Query
mutation registerWallet(
  $address: String!,
  $data: RegisterWalletInput
) {
  registerWallet(
    address: $address,
    data: $data
  ) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{
  "address": "abc123",
  "data": RegisterWalletInput
}
Response
{
  "data": {
    "registerWallet": {
      "address": "abc123",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "xyz789",
      "walletType": "EXTERNAL"
    }
  }
}

reserve

Description

Reserves an NFT for an AppUser and returns an Invoice for purchase.

Response

Returns an Invoice

Arguments
Name Description
listingId - ID! The ID of the listing to reserve an NFT from.

Example

Query
mutation reserve($listingId: ID!) {
  reserve(listingId: $listingId) {
    createdAt
    id
    listingId
    state
    total
    updatedAt
    userId
  }
}
Variables
{"listingId": 4}
Response
{
  "data": {
    "reserve": {
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "listingId": "xyz789",
      "state": "COMPLETED",
      "total": 123.45,
      "updatedAt": "2007-12-03T10:15:30Z",
      "userId": "xyz789"
    }
  }
}

signTransaction

Description

Signs a transaction for a Niftory wallet.

Response

Returns a String

Arguments
Name Description
address - String The address of the wallet to sign on behalf of. One of walletId, userId, or address must be provided.
appId - ID The appId in which the wallet resides. Can only be used with admin credentials.
transaction - String! The transaction to sign
userId - ID The ID of the user to sign on behalf of. One of walletId, userId, or address must be provided.
walletId - ID The database ID of the wallet to sign on behalf of. One of walletId, userId, or address must be provided.

Example

Query
mutation signTransaction(
  $address: String,
  $appId: ID,
  $transaction: String!,
  $userId: ID,
  $walletId: ID
) {
  signTransaction(
    address: $address,
    appId: $appId,
    transaction: $transaction,
    userId: $userId,
    walletId: $walletId
  )
}
Variables
{
  "address": "abc123",
  "appId": "4",
  "transaction": "abc123",
  "userId": "4",
  "walletId": "4"
}
Response
{"data": {"signTransaction": "abc123"}}

signTransactionForDapperWallet

Description

Signs a transaction for Dapper Wallet.

Response

Returns a String

Arguments
Name Description
transaction - String The transaction to sign.

Example

Query
mutation signTransactionForDapperWallet($transaction: String) {
  signTransactionForDapperWallet(transaction: $transaction)
}
Variables
{"transaction": "abc123"}
Response
{
  "data": {
    "signTransactionForDapperWallet": "xyz789"
  }
}

transfer

Description

Initiates the transfer of an NFT to the currently-logged in AppUser. The NFT is reserved for the user in database, and you can use the NFT.status field to check on the transfer progress.

Response

Returns an NFT

Arguments
Name Description
address - String The address of the Wallet to filter by. This mutation requires the userId, walletId' or the wallet address` to be specified.
appId - ID The appId of the App to which the NFT belongs.
force - Boolean Force transfer an NFT that has failed previously.
id - ID The ID of the NFT to send.
nftModelId - ID Used if NFT ID is unspecified to randomly select an NFT from the NFTModel
userId - ID The ID of the AppUser to send the NFT to. This mutation requires the userId, walletId' or the wallet address` to be specified.
walletId - ID The database ID of the Wallet to filter by. This mutation requires the userId, walletId' or the wallet address` to be specified.

Example

Query
mutation transfer(
  $address: String,
  $appId: ID,
  $force: Boolean,
  $id: ID,
  $nftModelId: ID,
  $userId: ID,
  $walletId: ID
) {
  transfer(
    address: $address,
    appId: $appId,
    force: $force,
    id: $id,
    nftModelId: $nftModelId,
    userId: $userId,
    walletId: $walletId
  ) {
    blockchainId
    blockchainState
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    model {
      ...NFTModelFragment
    }
    modelId
    saleState
    serialNumber
    status
    transactions {
      ...BlockchainTransactionFragment
    }
    updatedAt
    wallet {
      ...WalletFragment
    }
  }
}
Variables
{
  "address": "abc123",
  "appId": "4",
  "force": true,
  "id": "4",
  "nftModelId": 4,
  "userId": "4",
  "walletId": "4"
}
Response
{
  "data": {
    "transfer": {
      "blockchainId": "abc123",
      "blockchainState": "ERROR",
      "id": "4",
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "model": NFTModel,
      "modelId": 4,
      "saleState": "AVAILABLE",
      "serialNumber": 987,
      "status": "AVAILABLE",
      "transactions": [BlockchainTransaction],
      "updatedAt": "2007-12-03T10:15:30Z",
      "wallet": Wallet
    }
  }
}

updateNFTModel

Description

Updates an existing NFTModel. Note that if this NFTModel has already been used to mint an NFT, the update operation will fail for any properties that affect the blockchain (such as 'quantity', 'title', 'metadata', etc.), whereas updating 'attributes' will succeed.

Response

Returns an NFTModel

Arguments
Name Description
data - NFTModelUpdateInput! The data to update the NFTModel.
id - ID! The ID of the NFT model to update.

Example

Query
mutation updateNFTModel(
  $data: NFTModelUpdateInput!,
  $id: ID!
) {
  updateNFTModel(
    data: $data,
    id: $id
  ) {
    attributes
    blockchainId
    content {
      ...NFTContentFragment
    }
    createdAt
    description
    id
    marketplaceListings {
      ...MarketplaceListingFragment
    }
    metadata
    nftListings {
      ...NFTListingFragment
    }
    nfts {
      ...NFTFragment
    }
    quantity
    quantityMinted
    rarity
    set {
      ...NFTSetFragment
    }
    state
    status
    title
    updatedAt
  }
}
Variables
{
  "data": NFTModelUpdateInput,
  "id": "4"
}
Response
{
  "data": {
    "updateNFTModel": {
      "attributes": {},
      "blockchainId": "abc123",
      "content": NFTContent,
      "createdAt": "2007-12-03T10:15:30Z",
      "description": "abc123",
      "id": 4,
      "marketplaceListings": [MarketplaceListing],
      "metadata": {},
      "nftListings": [NFTListing],
      "nfts": [NFT],
      "quantity": 123,
      "quantityMinted": 123,
      "rarity": "COMMON",
      "set": NFTSet,
      "state": "COMPLETED",
      "status": "DONE",
      "title": "abc123",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateNFTSet

Description

Updates an existing NFTSet.

Response

Returns an NFTSet

Arguments
Name Description
appId - ID The app ID this NFTSet should belong to. Only supported if calling with admin credentials.
data - NFTSetUpdateInput! The input data for the NFTSet.
id - ID! The ID of the NFTSet to update.

Example

Query
mutation updateNFTSet(
  $appId: ID,
  $data: NFTSetUpdateInput!,
  $id: ID!
) {
  updateNFTSet(
    appId: $appId,
    data: $data,
    id: $id
  ) {
    app {
      ...AppFragment
    }
    attributes
    blockchainId
    createdAt
    id
    image
    metadata
    models {
      ...NFTModelFragment
    }
    state
    status
    tags
    title
    updatedAt
  }
}
Variables
{
  "appId": "4",
  "data": NFTSetUpdateInput,
  "id": 4
}
Response
{
  "data": {
    "updateNFTSet": {
      "app": App,
      "attributes": {},
      "blockchainId": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "image": "http://www.test.com/",
      "metadata": {},
      "models": [NFTModel],
      "state": "ERROR",
      "status": "DONE",
      "tags": ["abc123"],
      "title": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateWallet

Description

Update a Wallet of the currently signed-in user. Read more here.

Response

Returns a Wallet

Arguments
Name Description
address - String! The address of the wallet.
data - UpdateWalletInput

Example

Query
mutation updateWallet(
  $address: String!,
  $data: UpdateWalletInput
) {
  updateWallet(
    address: $address,
    data: $data
  ) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{
  "address": "xyz789",
  "data": UpdateWalletInput
}
Response
{
  "data": {
    "updateWallet": {
      "address": "xyz789",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "abc123",
      "walletType": "EXTERNAL"
    }
  }
}

uploadNFTContent

Description

Creates an NFTContent object containing pre-signed URLs that can then be used to upload a file and poster. The primary file will automatically be uploaded to IPFS once it's been uploaded to the pre-signed URL. Each returned File has a 'state' property to track the upload.

Response

Returns an NFTContent

Arguments
Name Description
contentType - String The Content-Type (MIME type) of the file to be uploaded. This must match the Content-Type header you will use to upload the file to the returned URL. If this is left empty, your Content-Type header must also be empty.
description - String Description about the file. If specified, this description will be added to the IPFS file metadata.
name - String A friendly name for the file.
posterContentType - String The Content-Type (MIME type) of the poster file to be uploaded. This must match the Content-Type header you will use to upload the poster to the returned URL. If this is left empty, your Content-Type header must also be empty.

Example

Query
mutation uploadNFTContent(
  $contentType: String,
  $description: String,
  $name: String,
  $posterContentType: String
) {
  uploadNFTContent(
    contentType: $contentType,
    description: $description,
    name: $name,
    posterContentType: $posterContentType
  ) {
    files {
      ...NFTFileFragment
    }
    id
    poster {
      ...SimpleFileFragment
    }
  }
}
Variables
{
  "contentType": "xyz789",
  "description": "xyz789",
  "name": "xyz789",
  "posterContentType": "abc123"
}
Response
{
  "data": {
    "uploadNFTContent": {
      "files": [NFTFile],
      "id": "4",
      "poster": SimpleFile
    }
  }
}

verifyWallet

Description

Verifies a Wallet to the currently signed-in user. If the signed verification code fails to decode with the wallet's public key or doesn't match the wallet's verification code, the request will fail. Read more here.

Response

Returns a Wallet

Arguments
Name Description
address - String! The address of the wallet.
signedVerificationCode - JSON! The verification code of the wallet signed by the wallet's private key.

Example

Query
mutation verifyWallet(
  $address: String!,
  $signedVerificationCode: JSON!
) {
  verifyWallet(
    address: $address,
    signedVerificationCode: $signedVerificationCode
  ) {
    address
    appUser {
      ...AppUserFragment
    }
    attributes
    createdAt
    id
    nftCount
    nfts {
      ...NFTFragment
    }
    state
    updatedAt
    verificationCode
    walletType
  }
}
Variables
{
  "address": "xyz789",
  "signedVerificationCode": {}
}
Response
{
  "data": {
    "verifyWallet": {
      "address": "xyz789",
      "appUser": AppUser,
      "attributes": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "id": 4,
      "nftCount": 123,
      "nfts": [NFT],
      "state": "CREATION_FAILED",
      "updatedAt": "2007-12-03T10:15:30Z",
      "verificationCode": "abc123",
      "walletType": "EXTERNAL"
    }
  }
}

Types

App

Description

An application in the Niftory ecosystem. Read more here.

Fields
Field Name Description
blockchain - Blockchain The blockchain in which this app is deployed.
concurrency - UnsignedInt The number of concurrent blockchain operations for app.
contract - Contract The contract associated with this app.
credentials - [Keys] The credentials for this app.
dapperMerchantAccountAddress - String The dapper merchant account for this app
id - ID! A unique identifier for this object in the Niftory API.
keyPoolSize - UnsignedInt The key pool size for creation of niftory custodial wallets.
keys - Keys The keys for this app. Use credentials instead
name - String The name for this app.
organization - Organization The organization this app belongs to
storageAddress - String Blockchain storage address for the app's NFTs after they are initially minted
Example
{
  "blockchain": "ETHEREUM",
  "concurrency": 123,
  "contract": Contract,
  "credentials": [Keys],
  "dapperMerchantAccountAddress": "xyz789",
  "id": "4",
  "keyPoolSize": 123,
  "keys": Keys,
  "name": "abc123",
  "organization": Organization,
  "storageAddress": "xyz789"
}

AppList

Description

A list of all apps.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [App] The Apps in this list.
Example
{
  "cursor": "abc123",
  "items": [App]
}

AppUser

Description

Represents a user of a particular Niftory App. Read more here.

Fields
Field Name Description
app - App The app this user is scoped to.
createdAt - DateTime! Creation date of this item
email - EmailAddress This user's email.
id - ID! A unique identifier for this object in the Niftory API.
image - String The URL for this user's image.
name - String The user's full name.
primaryWallet - Wallet The primary wallet used by this user.
updatedAt - DateTime Most recent updated date of this item, if any
wallet - Wallet The wallet owned by this user. Use primaryWallet or wallets instead.
wallets - [Wallet] All wallets owned by this user.
Example
{
  "app": App,
  "createdAt": "2007-12-03T10:15:30Z",
  "email": "test@test.com",
  "id": 4,
  "image": "xyz789",
  "name": "abc123",
  "primaryWallet": Wallet,
  "updatedAt": "2007-12-03T10:15:30Z",
  "wallet": Wallet,
  "wallets": [Wallet]
}

AppUserList

Description

Represents a list of AppUsers of a particular Niftory App. Read more here.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [AppUser] The AppUsers in this list.
Example
{
  "cursor": "xyz789",
  "items": [AppUser]
}

AppUsersFilterInput

Fields
Input Field Description
search - String The search query for full text search
Example
{"search": "xyz789"}

AppsFilterInput

Fields
Input Field Description
search - String The search query for full text search
Example
{"search": "xyz789"}

Attributable

Description

An interface representing objects that have attributes property for non-blockchain property storage.

Fields
Field Name Description
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
Possible Types
Attributable Types

NFTListing

NFTModel

NFTSet

Wallet

Example
{"attributes": {}}

Blockchain

Description

The blockchains supported by Niftory.

Values
Enum Value Description

ETHEREUM

The Ethereum blockchain. https://ethereum.org/en/

FLOW

The Flow blockchain. https://www.onflow.org/

POLYGON

The Polygon blockchain. https://polygon.technology/
Example
"ETHEREUM"

BlockchainEntity

Description

An interface representing properties common to all objects that exist on the blockchain

Fields
Field Name Description
blockchainId - String The ID of this resource on the blockchain.
metadata - JSONObject A mapping of properties that will be added to the blockchain.
Possible Types
BlockchainEntity Types

NFT

NFTModel

NFTSet

Example
{"blockchainId": "abc123", "metadata": {}}

BlockchainResource

Description

An interface representing properties common to all objects that exist on the blockchain

Fields
Field Name Description
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
blockchainId - String The ID of this resource on the blockchain.
createdAt - DateTime! Creation date of this item
id - ID! A unique identifier for this object in the Niftory API.
metadata - JSONObject A mapping of properties that will be added to the blockchain.
status - Status The status of this resource. Can be used to track progress in designing and creating resources.
updatedAt - DateTime Most recent updated date of this item, if any
Possible Types
BlockchainResource Types

NFTModel

NFTSet

Example
{
  "attributes": {},
  "blockchainId": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "metadata": {},
  "status": "DONE",
  "updatedAt": "2007-12-03T10:15:30Z"
}

BlockchainTransaction

Description

Transaction performed on a blockchain.

Fields
Field Name Description
blockchain - Blockchain! The blockchain where the transaction was perfomed.
hash - String! The hash of the blockchain transaction.
id - ID! The database ID of the transaction.
name - String Name of the transaction performed
result - JSON The output of the transaction.
state - blockchainTransactionState The state of the transaction.
Example
{
  "blockchain": "ETHEREUM",
  "hash": "abc123",
  "id": "4",
  "name": "abc123",
  "result": {},
  "state": "PENDING"
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

CheckoutWithDapperWalletResponse

Description

The response from initiating a checkout with Dapper Wallet.

Fields
Field Name Description
brand - String The brand for the transaction.
cadence - String The cadence code for the transaction.
expiry - String A time when this listing will expire.
merchantAccountAddress - String The address of the merchant account that will receive the payment.
nftDatabaseId - String The database ID representing the NFT. To be used for completeCheckoutWithDapperWallet
nftId - String The NFT blockchain hash if the NFT has already been minted.
nftTypeRef - String A reference to the cadence NFT type to be used in the transaction.
price - String The price to sell the NFT at.
registryAddress - String The registry address for the transaction.
setId - String The set ID from which to send an NFT.
signerAddress - String The address of the signer that must authorize this transaction.
signerKeyId - Int The key ID of the signer that must authorize this transaction
templateId - String The template ID from which to send an NFT.
Example
{
  "brand": "xyz789",
  "cadence": "xyz789",
  "expiry": "abc123",
  "merchantAccountAddress": "abc123",
  "nftDatabaseId": "xyz789",
  "nftId": "abc123",
  "nftTypeRef": "abc123",
  "price": "abc123",
  "registryAddress": "abc123",
  "setId": "abc123",
  "signerAddress": "xyz789",
  "signerKeyId": 987,
  "templateId": "xyz789"
}

Contract

Description

Properties common to all smart contracts.

Fields
Field Name Description
address - String The address at which this contract is deployed.
blockchain - Blockchain The blockchain in which this contract is deployed.
id - ID! A unique identifier for this object in the Niftory API.
metadata - JSONObject On-chain contract metadata.
name - String The name of this contract.
state - ContractState The state of this contract.
version - String The version of niftory contract
Possible Types
Contract Types

EvmContract

FlowContract

Example
{
  "address": "abc123",
  "blockchain": "ETHEREUM",
  "id": "4",
  "metadata": {},
  "name": "xyz789",
  "state": "CREATED",
  "version": "xyz789"
}

ContractState

Description

The state of a contract on the blockchain

Values
Enum Value Description

CREATED

The contract has been created but deployment hasn't started yet.

DEPLOYING

The contract is being deployed.

DEPLOY_FAILED

The contract deployment failed.

READY

The contract has been deployed.

UPDATE_FAILED

The contract update failed.

UPDATING

The contract is being updated.
Example
"CREATED"

CreateFileOptionsInput

Fields
Input Field Description
contentType - String The Content-Type (MIME type) of the file to be uploaded. This must match the Content-Type header you will use to upload the file to the returned URL. If this is left empty, your Content-Type header must also be empty.
posterFileId - ID Required if the file to be uploaded is a video, and uploadToIPFS=true. In that case a poster must have already been uploaded (so it can be used as the image on IPFS).
uploadToIPFS - Boolean Whether to asynchronously trigger an IPFS upload after the file has been uploaded to the returned cloud storage URL. Default = true
Example
{
  "contentType": "xyz789",
  "posterFileId": "4",
  "uploadToIPFS": false
}

CreateNiftoryWalletInput

Description

The input to create a custodial Niftory Wallet.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
Example
{"attributes": {}}

CredentialType

Description

The type of client for Niftory authentication.

Values
Enum Value Description

DEVICE

A client that can't keep secrets (e.g. TV or game console).

SERVER

A server-side client that can keep secrets.
Example
"DEVICE"

Currency

Description

A currency that can be accepted for payment.

Values
Enum Value Description

DUC

The dapper utility token

FLOW

The flow token

FUT

The flow utility token

USD

The United States dollar.
Example
"DUC"

CustomTransaction

Description

Custom Blockchain Transaction that can be peroformed on Wallet scoped to a specific app

Fields
Field Name Description
appId - ID! The appId of the app this Custom Transaction belongs to.
approvalState - CustomTransactionState The Approval state of the transaction. Transactions need to be approved by a Niftory Admin before execution
code - String! The code of the custom transaction written in Cadence
hash - String!
id - ID! A unique identifier for this object in the Niftory API.
metadataScript - String The metadata script for the transaction.
name - String! A user friendly name for the custom transaction
Example
{
  "appId": 4,
  "approvalState": "ALLOWED",
  "code": "abc123",
  "hash": "abc123",
  "id": 4,
  "metadataScript": "xyz789",
  "name": "abc123"
}

CustomTransactionCreateInput

Fields
Input Field Description
code - String! The code of the custom transaction written in cadence
metadataScript - String! The associated metadata script of the transaction, if it exists
name - String! a user friendly name for the transaction
Example
{
  "code": "xyz789",
  "metadataScript": "xyz789",
  "name": "abc123"
}

CustomTransactionList

Description

List of custom blokchain transactions.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [CustomTransaction] The custom blockchain Transactions in this list
Example
{
  "cursor": "abc123",
  "items": [CustomTransaction]
}

CustomTransactionState

Description

The state of a custom blockchain transaction.

Values
Enum Value Description

ALLOWED

The transaction has been allowed by an admin.

SUBMITTED

The transaction is pending.
Example
"ALLOWED"

DapperTransaction

Description

A transaction used for Dapper wallet.

Fields
Field Name Description
metadataScript - String The metadata script for the transaction.
transaction - String The transaction code.
Example
{
  "metadataScript": "abc123",
  "transaction": "xyz789"
}

DateTime

Description

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Example
"2007-12-03T10:15:30Z"

EmailAddress

Description

A field whose value conforms to the standard internet email address format as specified in RFC822: https://www.w3.org/Protocols/rfc822/.

Example
"test@test.com"

EvmContract

Description

A smart contract on an EVM blockchain. Read more here.

Fields
Field Name Description
address - String The address at which this contract is deployed.
blockchain - Blockchain The blockchain in which this contract is deployed.
id - ID! A unique identifier for this object in the Niftory API.
metadata - JSONObject On-chain contract metadata.
name - String The name of this contract.
state - ContractState The state of this contract.
version - String The version of niftory contract
Example
{
  "address": "xyz789",
  "blockchain": "ETHEREUM",
  "id": "4",
  "metadata": {},
  "name": "abc123",
  "state": "CREATED",
  "version": "abc123"
}

File

Description

An interface containing common data about files.

Fields
Field Name Description
contentType - String The MIME content type for this file.
id - ID! A unique identifier for this file in the Niftory API.
md5 - String The MD5 hash of this file.
name - String! A friendly name for the file.
state - FileState! The upload state of the file.
url - URL! The cloud storage URL for this file. If state is GENERATED_UPLOAD_URL, then this url is the presigned URL to upload to.
Possible Types
File Types

NFTFile

SimpleFile

Example
{
  "contentType": "xyz789",
  "id": 4,
  "md5": "xyz789",
  "name": "abc123",
  "state": "ERROR",
  "url": "http://www.test.com/"
}

FileState

Description

The upload state of a File.

Values
Enum Value Description

ERROR

The file failed to ready.

GENERATED_UPLOAD_URL

Niftory has created a pre-signed URL where the file can be uploaded.

PENDING

Niftory has created a file entry in the database table.

READY

The file is ready for use.

UPLOADED_TO_CLOUD_STORAGE

The file has been uploaded to a cloud storage for fast retrieval.

UPLOADED_TO_IPFS

The file (and potentially its corresponding metadata) have been uploaded to IPFS.
Example
"ERROR"

FixedPricing

Description

A simple pricing strategy for listings with fixed prices.

Fields
Field Name Description
currency - Currency! The currency at which this price is set.
price - PositiveFloat! The price in the specified currency at which this item is for sale.
Example
{"currency": "DUC", "price": 123.45}

FlowContract

Description

A smart contract on the Polygon blockchain. Read more here.

Fields
Field Name Description
address - String The address at which this contract is deployed.
blockchain - Blockchain The blockchain in which this contract is deployed.
id - ID! A unique identifier for this object in the Niftory API.
metadata - JSONObject On-chain contract metadata.
name - String The name of this contract.
paths - FlowContractPaths Storage paths for this contract.
state - ContractState The state of this contract.
transactions - FlowContractTransactions Transactions that need to be given to Dapper Wallet for use with their platform.
version - String The version of niftory contract
Example
{
  "address": "xyz789",
  "blockchain": "ETHEREUM",
  "id": 4,
  "metadata": {},
  "name": "xyz789",
  "paths": FlowContractPaths,
  "state": "CREATED",
  "transactions": FlowContractTransactions,
  "version": "xyz789"
}

FlowContractPaths

Description

Paths used by Flow contracts for storage.

Fields
Field Name Description
collectionPublicPath - String The Collection Public Path for the contract.
collectionStoragePath - String The Collection Storage Path for the contract.
Example
{
  "collectionPublicPath": "xyz789",
  "collectionStoragePath": "xyz789"
}

FlowContractTransactions

Description

Transactions used by a Flow contract.

Fields
Field Name Description
cancelMarketplaceListing - String A transaction that cancels any Marketplace Listing
createMarketplaceListing - MultiCurrencyTransaction A transaction that creates a listing of an NFT on the Marketplace with Dapper wallet
purchaseMarketplaceListing - MultiCurrencyDapperTransaction A transaction that creates a listing of an NFT on the Marketplace with Dapper wallet
purchaseWithUsd - DapperTransaction A transaction that purchases an NFT with Dapper wallet with USD.
setup - String A transaction that sets up a wallet to receive NFTs for this contract.
Example
{
  "cancelMarketplaceListing": "abc123",
  "createMarketplaceListing": MultiCurrencyTransaction,
  "purchaseMarketplaceListing": MultiCurrencyDapperTransaction,
  "purchaseWithUsd": DapperTransaction,
  "setup": "xyz789"
}

HasTimes

Description

An interface representing objects with a creation and update time

Fields
Field Name Description
createdAt - DateTime! Creation date of this item
updatedAt - DateTime Most recent updated date of this item, if any
Possible Types
HasTimes Types

AppUser

Invoice

NFTListing

NFTModel

NFTSet

Wallet

Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

Identifiable

Description

An interface representing objects with unique IDs

Fields
Field Name Description
id - ID! A unique identifier for this object in the Niftory API.
Example
{"id": "4"}

InitiateCheckoutResponse

Description

The response from initiating a purchase checkout.

Fields
Field Name Description
redirectUrl - URL The URL to redirect the user to.
status - String The status of the payment
statusMessage - String A message to display to the user which contains checkout information
Example
{
  "redirectUrl": "http://www.test.com/",
  "status": "xyz789",
  "statusMessage": "xyz789"
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

Invoice

Description

A purchase invoice for an NFT. The invoice is created when an NFT is reserved using reserve, and updated when a payment is initiated with checkout

Fields
Field Name Description
createdAt - DateTime! Creation date of this item
id - ID! The ID of the Niftory invoice for an NFT purchase
listingId - String The listing associated with this invoice
state - InvoiceState The state of this invoice
total - PositiveFloat The total spent in USD in this invoice
updatedAt - DateTime Most recent updated date of this item, if any
userId - String The user id associated with this invoice
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "listingId": "abc123",
  "state": "COMPLETED",
  "total": 123.45,
  "updatedAt": "2007-12-03T10:15:30Z",
  "userId": "abc123"
}

InvoiceList

Description

A list of completed invoices for this app

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [Invoice] The invoices in this list.
Example
{
  "cursor": "abc123",
  "items": [Invoice]
}

InvoiceState

Description

The state of an invoice.

Values
Enum Value Description

COMPLETED

This invoice is completed.

CREATED

This invoice was created and ready for payment.

ERROR

An error was encountered while performing this payment.

PENDING

This invoice is pending payment.
Example
"COMPLETED"

InvoicesFilterInput

Fields
Input Field Description
endDate - DateTime The end date of invoices to filter
startDate - DateTime The starting date of invoice to filter
Example
{
  "endDate": "2007-12-03T10:15:30Z",
  "startDate": "2007-12-03T10:15:30Z"
}

JSON

Description

The JSON scalar type represents JSON values as specified by ECMA-404.

Example
{}

JSONObject

Description

The JSONObject scalar type represents JSON objects as specified by ECMA-404.

Example
{}

Keys

Description

The keys for an application in the Niftory platform

Fields
Field Name Description
apiKey - String The public API key.
clientId - String The public Client ID.
clientSecret - String The public Client Secret.
redirectUris - [URL] The URIs that users can be redirected to after authenticating with this client.
type - CredentialType The type of credential.
Example
{
  "apiKey": "xyz789",
  "clientId": "abc123",
  "clientSecret": "abc123",
  "redirectUris": ["http://www.test.com/"],
  "type": "DEVICE"
}

ListingState

Description

The state of a listing.

Values
Enum Value Description

ACTIVE

The listing is active and available for sale. Use SHOW_IN_STORE instead

HIDE_FROM_STORE

The listing is inactive, so it's not open for sale.

INACTIVE

The listing is inactive, so it's not open for sale. Use HIDE_FROM_STORE instead

NOT_AVAILAIBLE_FOR_PURCHASE

All NFTs in this listing have been sold.

SHOW_IN_STORE

The listing is active and available for sale.

SOLD

All NFTs in this listing have been sold. Use NOT_AVAILAIBLE_FOR_PURCHASE instead
Example
"ACTIVE"

MarketplaceListing

Description

Listing of NFTs in marketplace

Fields
Field Name Description
appId - ID! The appId of the app this MarketplaceListing belongs to.
blockchainId - String The blockchain resource ID of the marketplace
id - ID! A unique identifier for this object in the Niftory API.
nft - NFT! The NFT belonging to this listing.
pricing - FixedPricing! The price in the specified currency at which this item is for sale.
state - MarketplaceListingState! The state of the marketplace listing
transactionIds - [String] The transactions ids belonging to this marketplace listing
user - AppUser The user to which the listing belongs to
wallet - Wallet The Wallet where the NFT belongs to
Example
{
  "appId": "4",
  "blockchainId": "xyz789",
  "id": "4",
  "nft": NFT,
  "pricing": FixedPricing,
  "state": "AVAILABLE",
  "transactionIds": ["xyz789"],
  "user": AppUser,
  "wallet": Wallet
}

MarketplaceListingFilterInput

Description

Properties to filter MarketplaceListings when querying them.

Fields
Input Field Description
ids - [ID] Database IDs of the MarketplaceListings to find.
nftModelIds - [ID] The IDs of the NFTModel to filter by
userIds - [ID] The IDs of the AppUser to filter by
walletIds - [ID] The IDs of the Wallets to filter by
Example
{
  "ids": [4],
  "nftModelIds": ["4"],
  "userIds": [4],
  "walletIds": ["4"]
}

MarketplaceListingList

Description

A list of MarketplaceListings.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [MarketplaceListing] The MarketplaceListings in this list.
Example
{
  "cursor": "xyz789",
  "items": [MarketplaceListing]
}

MarketplaceListingState

Description

The state of an Marketplace listing

Values
Enum Value Description

AVAILABLE

The marketplace listing is available for purchase

CANCELLED

The marketplace listing is cancelled

EXPIRED

The marketplace listing has expired

PURCHASED

The marketplace listing has already been purchased
Example
"AVAILABLE"

MultiCurrencyDapperTransaction

Description

Dapper transactions with multiple currencies.

Fields
Field Name Description
flow - DapperTransaction Dapper transaction using Flow Token
usd - DapperTransaction Dapper transaction using US Dollar
Example
{
  "flow": DapperTransaction,
  "usd": DapperTransaction
}

MultiCurrencyTransaction

Description

Transactions with multiple currencies.

Fields
Field Name Description
flow - String Transaction using the Flow Token
usd - String Transaction using the US Dollar
Example
{
  "flow": "abc123",
  "usd": "abc123"
}

NFT

Description

Respresentation of a non-fungible token in the Niftory ecosystem (it doesn't have to be minted on the blockchain yet). Read more here.

Fields
Field Name Description
blockchainId - String The ID of this resource on the blockchain.
blockchainState - NFTBlockchainState! The state of this NFT on the blockchain
id - ID! A unique identifier for this object in the Niftory API.
marketplaceListings - [MarketplaceListing] The marketplace listings where this NFT belongs to
metadata - JSONObject A mapping of properties that will be added to the blockchain.
model - NFTModel The NFTModel from which this NFT was created.
modelId - ID The ID of the NFTModel from which this NFT was created
saleState - SaleState This state of this object's sale.
serialNumber - Int The serial number for this NFT within its model.
status - TransferState The status of this NFT (e.g. if it is available or being transferred to a user Use blockchainState or saleState instead.
transactions - [BlockchainTransaction] Blockchain transcations for this NFT
updatedAt - DateTime Most recent updated date of this NFT, if any
wallet - Wallet The wallet containing this NFT, if it is owned by a user.
Example
{
  "blockchainId": "abc123",
  "blockchainState": "ERROR",
  "id": 4,
  "marketplaceListings": [MarketplaceListing],
  "metadata": {},
  "model": NFTModel,
  "modelId": "4",
  "saleState": "AVAILABLE",
  "serialNumber": 123,
  "status": "AVAILABLE",
  "transactions": [BlockchainTransaction],
  "updatedAt": "2007-12-03T10:15:30Z",
  "wallet": Wallet
}

NFTBlockchainState

Description

The state of an NFT on the blockchain.

Values
Enum Value Description

ERROR

An error occurred with this item's last blockchain operation.

MINTED

The item is minted, and are no pending operations on it.

MINTING

The item is being minted.

TRANSFERRED

The item has already been transferred to a user's wallet.

TRANSFERRING

The item is being transferred.

UNMINTED

The item hasn't been minted yet.
Example
"ERROR"

NFTContent

Description

The content for an NFT.

Fields
Field Name Description
files - [NFTFile] The file content in this NFT.
id - ID! A unique identifier for this object in the Niftory API.
poster - SimpleFile The poster file for this NFT's content
Example
{
  "files": [NFTFile],
  "id": "4",
  "poster": SimpleFile
}

NFTContentInput

Description

The input to create or update NFTContent.

Fields
Input Field Description
fileId - ID! The ID of the NFTFile content. This can be created using createFileUploadUrl.
posterId - ID The ID of the poster File. This can be created using createFileUploadUrl.
Example
{"fileId": "4", "posterId": 4}

NFTFile

Description

File (with ipfsContentUrl and ipfsMetadataUrl). A file to be included in an NFT. Extends File to includes the IPFS addresses for the content and metadata.

Fields
Field Name Description
contentType - String The MIME content type for this file.
id - ID! A unique identifier for this file in the Niftory API.
ipfsContentAddress - String! The IPFS address for the content of this file.
ipfsMetadataAddress - String! The IPFS address for the metadata of this file.
md5 - String The MD5 hash of this file.
name - String! A friendly name for the file.
state - FileState! The upload state of the file.
url - URL! The cloud storage URL for this file. If state is GENERATED_UPLOAD_URL, then this url is the presigned URL to upload to.
Example
{
  "contentType": "xyz789",
  "id": "4",
  "ipfsContentAddress": "xyz789",
  "ipfsMetadataAddress": "xyz789",
  "md5": "xyz789",
  "name": "abc123",
  "state": "ERROR",
  "url": "http://www.test.com/"
}

NFTFilterInput

Description

Properties to filter NFTs by when querying them.

Fields
Input Field Description
blockchainIds - [String] Blockchain IDs of the NFTs to find.
blockchainStates - [NFTBlockchainState] Blockchain states of the NFTs to find. Defaults to all.
ids - [ID] Database IDs of the NFTs to find.
nftModelIds - [ID] The IDs of the NFTModel that the NFT should belong to.
saleStates - [SaleState] Sale states of the NFTs to find. When querying within a user context, defaults to [PAID, FULFILLED]. Otherwise, defaults to all.
search - String The search query for full text search
transferStates - [TransferState] Transfer states of the NFTs to find. Defaults to all.
Example
{
  "blockchainIds": ["abc123"],
  "blockchainStates": ["ERROR"],
  "ids": ["4"],
  "nftModelIds": ["4"],
  "saleStates": ["AVAILABLE"],
  "search": "abc123",
  "transferStates": ["AVAILABLE"]
}

NFTList

Description

A list of NFTs.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [NFT] The NFTs in this list.
Example
{
  "cursor": "abc123",
  "items": [NFT]
}

NFTListing

Description

A listing of NFTs for sale.

Fields
Field Name Description
appId - ID! The appId of the app this NFTListing belongs to.
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
createdAt - DateTime! Creation date of this item
description - String The description of the listing.
id - ID! A unique identifier for this object in the Niftory API.
nftModel - NFTModel! The NFT Model for this listing, NFTs from this model will be sold when a user checks out with this listing
pricing - FixedPricing! The pricing for this listing
state - ListingState! The state of this listing.
title - String The title of the listing.
updatedAt - DateTime Most recent updated date of this item, if any
Example
{
  "appId": "4",
  "attributes": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "xyz789",
  "id": 4,
  "nftModel": NFTModel,
  "pricing": FixedPricing,
  "state": "ACTIVE",
  "title": "xyz789",
  "updatedAt": "2007-12-03T10:15:30Z"
}

NFTListingFilterInput

Fields
Input Field Description
ids - [ID] The IDs of the NFTListing.
state - ListingState The status of the NFTListing, example - HIDE_IN_STORE, SHOW_IN_STORE
title - String The title of the NFTListing.
Example
{
  "ids": ["4"],
  "state": "ACTIVE",
  "title": "xyz789"
}

NFTListingList

Description

A list of NFTListings.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [NFTListing] The NFTListings in this list.
Example
{
  "cursor": "xyz789",
  "items": [NFTListing]
}

NFTModel

Description

The blueprint for an NFT, containing everything needed to mint one -- file content, blockchain metadata, etc. Read more here.

Fields
Field Name Description
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
blockchainId - String The ID of this resource on the blockchain.
content - NFTContent This NFT model's content.
createdAt - DateTime! Creation date of this item
description - String! The user-friendly description for this model.
id - ID! A unique identifier for this object in the Niftory API.
marketplaceListings - [MarketplaceListing] The marketplace listings created with nfts from this model
metadata - JSONObject A mapping of properties that will be added to the blockchain.
nftListings - [NFTListing] The listings for this model. These can be used to sell the NFTs creating using this model
nfts - [NFT] The NFTs created using this model.
quantity - PositiveInt The total quantity of NFTs that will be available for this model.
quantityMinted - UnsignedInt The total quantity of NFTs that have been minted from this model.
rarity - SimpleRarityLevel The rarity of the NFTs in this model.
set - NFTSet! The NFT model set containing this model.
state - NFTModelBlockchainState! The state of this NFT Model on the blockchain
status - Status The status of this resource. Can be used to track progress in designing and creating resources.
title - String! The user-friendly title for this model.
updatedAt - DateTime Most recent updated date of this item, if any
Example
{
  "attributes": {},
  "blockchainId": "abc123",
  "content": NFTContent,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "id": "4",
  "marketplaceListings": [MarketplaceListing],
  "metadata": {},
  "nftListings": [NFTListing],
  "nfts": [NFT],
  "quantity": 123,
  "quantityMinted": 123,
  "rarity": "COMMON",
  "set": NFTSet,
  "state": "COMPLETED",
  "status": "DONE",
  "title": "xyz789",
  "updatedAt": "2007-12-03T10:15:30Z"
}

NFTModelBlockchainState

Description

The state of an NFT Model on the blockchain.

Values
Enum Value Description

COMPLETED

All NFTs in this model have been transferred to users.

ERROR

An error occurred with this item's last blockchain operation.

MINTED

The item is minted, and are no pending operations on it.

MINTING

The item is being minted.

UNMINTED

The item hasn't been minted yet.
Example
"COMPLETED"

NFTModelCreateInput

Description

The input to create an NFTModel.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
content - NFTContentInput The file content for this model. Either 'content' or 'contentId' must be specified.
contentId - ID The ID of the NFTContent for this model. Either 'content' or 'contentId' must be specified.
description - String The user-friendly details about this model. This will be added to the blockchain metadata when an NFT is minted.
metadata - JSONObject Metadata that will be added to the blockchain for any NFTs minted from this model.
quantity - PositiveInt The total supply of NFTs that can be available for this model. This should be at least 1. This can be updated until the NFTModel is minted.
status - Status The status of the model.
subtitle - String The user-friendly subtitle for this model. This will be added to the blockchain metadata when an NFT is minted.
tags - [String] String labels to tag this NFTModel with. These will be stored in the Niftory API but will not be added to the blockchain.
title - String! The user-friendly title for this model. This will be added to the blockchain metadata when an NFT is minted.
Example
{
  "attributes": {},
  "content": NFTContentInput,
  "contentId": 4,
  "description": "abc123",
  "metadata": {},
  "quantity": 123,
  "status": "DONE",
  "subtitle": "abc123",
  "tags": ["abc123"],
  "title": "abc123"
}

NFTModelFilterInput

Description

Properties to filter NFTModels when querying them.

Fields
Input Field Description
blockchainIds - [String] Blockchain IDs of the NFTModels to find.
hasMarketplaceListing - Boolean Filter nft models that have active listings in the marketplace
ids - [ID] Database IDs of the NFTModels to find.
search - String The search query for full text search
setIds - [ID] The IDs of the NFTSets that the NFTModel should belong to.
status - Status Filter by NFTModel status.
tags - [String] The tags in the NFTModel to find. The models returned will contain every tag specified.
Example
{
  "blockchainIds": ["abc123"],
  "hasMarketplaceListing": true,
  "ids": [4],
  "search": "xyz789",
  "setIds": ["4"],
  "status": "DONE",
  "tags": ["xyz789"]
}

NFTModelList

Description

A list of NFTModels.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [NFTModel] The NFTModels in this list.
Example
{
  "cursor": "abc123",
  "items": [NFTModel]
}

NFTModelUpdateInput

Description

The input to update an NFT model.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
content - NFTContentInput The file content for this model. This can be updated until the NFTModel is minted.
contentId - ID The ID of the NFTContent for this model.
description - String The user-friendly details about this model. This will be added to the blockchain metadata when an NFT is minted.
metadata - JSONObject Metadata that will be added to the blockchain for any NFTs minted from this model. This can be updated until the NFTModel is minted
quantity - PositiveInt The total supply of NFTs that can be available for this model. This can be updated until the NFTModel is minted.
status - Status The status of the model.
subtitle - String The user-friendly subtitle for this model. This will be added to the blockchain metadata when an NFT is minted.
tags - [String] String labels to tag this NFTModel with. These will be stored in the Niftory API but will not be added to the blockchain. Updating this will replace the existing tags.
title - String The user-friendly title for this model. This will be added to the blockchain metadata when an NFT is minted.
Example
{
  "attributes": {},
  "content": NFTContentInput,
  "contentId": "4",
  "description": "xyz789",
  "metadata": {},
  "quantity": 123,
  "status": "DONE",
  "subtitle": "xyz789",
  "tags": ["abc123"],
  "title": "xyz789"
}

NFTSet

Description

A set of NFTModels, to help you organize your NFTs. Read more here.

Fields
Field Name Description
app - App The app this set belongs to.
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
blockchainId - String The ID of this resource on the blockchain.
createdAt - DateTime! Creation date of this item
id - ID! A unique identifier for this object in the Niftory API.
image - URL The image to represent this set.
metadata - JSONObject A mapping of properties that will be added to the blockchain.
models - [NFTModel] Models contained in this set.
state - NFTSetBlockchainState! The state of this NFT Set on the blockchain
status - Status The status of this resource. Can be used to track progress in designing and creating resources.
tags - [String] String labels to tag this NFTSet with. These will be stored in the Niftory API but will not be added to the blockchain.
title - String! The display image for this set.
updatedAt - DateTime Most recent updated date of this item, if any
Example
{
  "app": App,
  "attributes": {},
  "blockchainId": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "image": "http://www.test.com/",
  "metadata": {},
  "models": [NFTModel],
  "state": "ERROR",
  "status": "DONE",
  "tags": ["abc123"],
  "title": "abc123",
  "updatedAt": "2007-12-03T10:15:30Z"
}

NFTSetBlockchainState

Description

The state of an NFT Set on the blockchain.

Values
Enum Value Description

ERROR

An error occurred with this item's last blockchain operation.

MINTED

The item is minted, and are no pending operations on it.

MINTING

The item is being minted.

UNMINTED

The item hasn't been minted yet.
Example
"ERROR"

NFTSetCreateInput

Description

The input to create an NFTSet.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
fileIds - [String] The list of ids of the uploaded metadata File. This can be created using createFileUploadUrl.
metadata - JSONObject Metadata that will be added to the blockchain
tags - [String] String labels to tag this NFTSet with. These will be stored in the Niftory API but will not be added to the blockchain.
title - String! The user-friendly title for this model.
Example
{
  "attributes": {},
  "fileIds": ["abc123"],
  "metadata": {},
  "tags": ["abc123"],
  "title": "abc123"
}

NFTSetFilterInput

Fields
Input Field Description
blockchainIds - [String] Blockchain IDs of the NFTSets to find.
ids - [ID] Database IDs of the NFTSets to find.
search - String The search query for full text search
tags - [String] The tags in the NFTSet to find. The sets returned will contain every tag specified.
title - String The title of the NFTSet to find.
Example
{
  "blockchainIds": ["abc123"],
  "ids": ["4"],
  "search": "xyz789",
  "tags": ["xyz789"],
  "title": "xyz789"
}

NFTSetList

Description

A list of NFTSets.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [NFTSet] The NFTSets in this list.
Example
{
  "cursor": "xyz789",
  "items": [NFTSet]
}

NFTSetUpdateInput

Description

The input to update an NFTSet.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
fileIds - [String] The list of ids of the uploaded metadata File. This can be created using createFileUploadUrl.
metadata - JSONObject Metadata that will be added to the blockchain
tags - [String] String labels to tag this NFTSet with. These will be stored in the Niftory API but will not be added to the blockchain. Updating this will replace the existing tags.
title - String The user-friendly title for this set.
Example
{
  "attributes": {},
  "fileIds": ["xyz789"],
  "metadata": {},
  "tags": ["abc123"],
  "title": "abc123"
}

Organization

Description

An organization within the Niftory ecosystem. Organization manages Apps. Read more here.

Fields
Field Name Description
apps - [App] The apps belonging to this Organization.
id - ID! A unique identifier for this object in the Niftory API.
members - [OrganizationMember] This organization's members.
name - String
Example
{
  "apps": [App],
  "id": "4",
  "members": [OrganizationMember],
  "name": "abc123"
}

OrganizationMember

Description

Member of an organization

Fields
Field Name Description
apps - [App] The apps this user is an admin for.
email - EmailAddress This user's email.
id - ID! A unique identifier for this object in the Niftory API.
image - String The URL for this user's image.
name - String The user's full name.
organizationRole - OrganizationRole Role of the user in organization
Example
{
  "apps": [App],
  "email": "test@test.com",
  "id": 4,
  "image": "abc123",
  "name": "abc123",
  "organizationRole": "ADMIN"
}

OrganizationRole

Description

The role of an admin in an organization.

Values
Enum Value Description

ADMIN

MEMBER

Example
"ADMIN"

Pageable

Description

An interface representing lists that can be paginated with a cursor.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
Example
{"cursor": "xyz789"}

PositiveFloat

Description

Floats that will have a value greater than 0.

Example
123.45

PositiveInt

Description

Integers that will have a value greater than 0.

Example
123

RegisterWalletInput

Description

The input to register a Wallet.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
Example
{"attributes": {}}

Resource

Description

An interface representing properties common to all user-managed resources in the Niftory API.

Fields
Field Name Description
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
createdAt - DateTime! Creation date of this item
id - ID! A unique identifier for this object in the Niftory API.
status - Status The status of this resource. Can be used to track progress in designing and creating resources.
updatedAt - DateTime Most recent updated date of this item, if any
Possible Types
Resource Types

NFTModel

NFTSet

Example
{
  "attributes": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "status": "DONE",
  "updatedAt": "2007-12-03T10:15:30Z"
}

SaleState

Description

The state of an item being sold.

Values
Enum Value Description

AVAILABLE

The item has not been reserved or purchased yet.

FULFILLED

The item has been delivered.

PAID

The item has been paid for and is being fulfilled.

RESERVED

The item is reserved for a future purchase.
Example
"AVAILABLE"

SellableEntity

Description

An interface representing properties common to all objects that can be bought and sold

Fields
Field Name Description
saleState - SaleState This state of this object's sale.
Possible Types
SellableEntity Types

NFT

Example
{"saleState": "AVAILABLE"}

SimpleFile

Description

A file uploaded to the Niftory API.

Fields
Field Name Description
contentType - String The MIME content type for this file.
id - ID! A unique identifier for this file in the Niftory API.
md5 - String The MD5 hash of this file.
name - String! A friendly name for the file.
state - FileState! The upload state of the file.
url - URL! The cloud storage URL for this file. If state is GENERATED_UPLOAD_URL, then this url is the presigned URL to upload to.
Example
{
  "contentType": "abc123",
  "id": "4",
  "md5": "xyz789",
  "name": "abc123",
  "state": "ERROR",
  "url": "http://www.test.com/"
}

SimpleRarityLevel

Description

The default rarity levels in the Niftory API.

Values
Enum Value Description

COMMON

The most common NFTs.

LEGENDARY

The rarest of the rare NFTs, for the most dedicated collectors.

RARE

These are rarer, harder to get and more expensive.
Example
"COMMON"

Status

Description

Status of this resource for user workflows.

Values
Enum Value Description

DONE

"Here you go!"

DRAFT

"I'm just getting started."

IN_PROGRESS

"I'm working on it!"

TO_DO

"I'll get to it eventually..."
Example
"DONE"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

TransferState

Description

The state of an item being transferred.

Values
Enum Value Description

AVAILABLE

The item has been created, but not transferred.

ERROR

The item failed to transfer.

IN_PROGRESS

The item is being transferred.

RESERVED

The item is reserved for a future transfer.

SUCCESS

The item has been transferred.
Example
"AVAILABLE"

URL

Description

A field whose value conforms to the standard URL format as specified in RFC3986: https://www.ietf.org/rfc/rfc3986.txt.

Example
"http://www.test.com/"

UnsignedFloat

Description

Floats that will have a value of 0 or more.

Example
123.45

UnsignedInt

Description

Integers that will have a value of 0 or more.

Example
123

UpdateWalletInput

Description

The input to update Wallet data.

Fields
Input Field Description
attributes - JSONObject A mapping of attributes for this resource. These will be stored in the Niftory API but will not be added to the blockchain.
Example
{"attributes": {}}

UserData

Description

An interface containing common data about users.

Fields
Field Name Description
email - EmailAddress This user's email.
image - String The URL for this user's image.
name - String The user's full name.
Possible Types
UserData Types

AppUser

OrganizationMember

Example
{
  "email": "test@test.com",
  "image": "abc123",
  "name": "xyz789"
}

Wallet

Description

Represents a blockchain wallet scoped to a particular App and AppUser. Read more here.

Fields
Field Name Description
address - String This wallet's address on the blockchain. May be null until the wallet is actually created, in the case of custodial wallets.
appUser - AppUser The User who owns the wallet
attributes - JSONObject A mapping of attributes for this object. These will be stored in the Niftory API but will not be added to the blockchain.
createdAt - DateTime! Creation date of this item
id - ID! A unique identifier for this object in the Niftory API.
nftCount - UnsignedInt The number of nfts belonging to this wallet
nfts - [NFT] The NFTs from the current app that are in this wallet.
state - WalletState! The state of this wallet.
updatedAt - DateTime Most recent updated date of this item, if any
verificationCode - String The verification code that can be used to verify this wallet for this user.
walletType - WalletType The type of wallet. This represents if the wallet was linked externally or created by Niftory
Example
{
  "address": "xyz789",
  "appUser": AppUser,
  "attributes": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "nftCount": 123,
  "nfts": [NFT],
  "state": "CREATION_FAILED",
  "updatedAt": "2007-12-03T10:15:30Z",
  "verificationCode": "abc123",
  "walletType": "EXTERNAL"
}

WalletList

Description

A list of Wallets.

Fields
Field Name Description
cursor - String The cursor to use to fetch the next page of results, if any.
items - [Wallet] The Wallets in this list.
Example
{
  "cursor": "abc123",
  "items": [Wallet]
}

WalletState

Description

The state of a wallet.

Values
Enum Value Description

CREATION_FAILED

(Niftory Wallet Only) The Niftory wallet failed to be created on the blockchain.

PENDING_CREATION

(Niftory Wallet Only) The Niftory wallet is in the process of being created on-chain. The address and state of the Wallet object will be updated once complete.

READY

The wallet is ready to receive NFTs from this app's contract.

UNVERIFIED

The wallet has been registered with Niftory, but not yet verified to belong to the signed-in user.

VERIFIED

The wallet is verified to belong to the signed-in user, but not yet ready to receive NFTs from this app's contract.
Example
"CREATION_FAILED"

WalletType

Description

The type of wallet.

Values
Enum Value Description

EXTERNAL

An external wallet linked by the user.

NIFTORY

A wallet created by the niftory API.
Example
"EXTERNAL"

WalletsFilterInput

Fields
Input Field Description
search - String The search query for full text search
Example
{"search": "xyz789"}

blockchainTransactionState

Description

The state of a blockchain transaction.

Values
Enum Value Description

PENDING

The transaction hasn't been completed yet.

SEALED

The transaction has been completed.
Example
"PENDING"