Niftory Docs
Niftory Web3 API

API Cheat Sheet

The Niftory API is built in GraphQL. We also plan to support REST endpoints in the future. Our GraphQL Endpoint can be found here:

Why start with GraphQL?

GraphQL has become a well-established standard for building performant web applications, giving the power of what to query and how much to query to the app developer (with strong typing!). This is consistent with our philosophy of making it as easy as possible for you to quickly launch high-performing experiences.
If you have a strong need for REST endpoints for your application, please reach out to us.

Niftory Data Model

Here are the core concepts in the Niftory data model.
For more details, see the Data Model guide​

API Endpoints

Always test your application against the Staging environment. The production endpoint will affect the blockchain for real, so that should only be used when you are ready to ship your app.

Production (targets blockchain prod)


Remember to get your API keys to set up your application!
More details in the Authentication guide:

APIs at a Glance

​See Niftory API Reference here
  • Representation of your application in Niftory ecosystem.
  • Queries:
    • ​app - returns the current App context.
  • Representation of a user logged in to your application via Niftory's authentication service.
  • Queries:
    • ​appUser - returns the currently logged-in AppUser context.
  • Representation of a user's blockchain wallet scoped to your application. For more information, see Wallet Setup.
  • ​Queries:
    • ​wallet - returns the currently logged-in user's Wallet.
  • ​Mutations:
    • ​createNiftoryWallet - creates a custodial Niftory wallet
    • ​registerWallet - registers the given wallet address to the currently logged-in user.
    • ​verifyWallet - verifies that the user actually owns the Wallet by asking them to sign a secret.
    • ​readyWallet - marks a Wallet as ready for usage for the application.
Your application needs to registerWallet --> verifyWallet --> readyWallet for any given user in order to set up the wallet to receive NFTs. Read more here.
  • A representation of an NFT (it doesn't have to be minted yet).
  • Queries:
    • ​nfts - returns all NFTs belonging to the currently logged-in AppUser.
    • ​nft - returns an NFT by its Niftory database ID.
  • Mutations:
    • ​transfer - initiates the transfer of a specified NFT to a specified user. This API may mint the NFT if it isn't yet minted.
A blueprint for an NFT, containing everything needed to mint one -- file content, blockchain metadata, etc.
  • Queries:
    • ​nftModels - returns the NFTModels belonging to the current App context.
    • ​nftModel - returns an NFTModel by its Niftory database ID.
  • Mutations:
  • A bag of NFTModels, to help you organize your NFTs
  • Queries:
    • ​sets - returns the NFTSets belonging to the current App context.
    • ​set - returns an NFTSet by its Niftory database ID.
  • Mutations:
An NFTSet is a bag of NFTModels
An NFTModel is a bag ofNFTs
An NFT is the thing that a user actually owns.
You can also use the Admin Portal to create and manage NFTSets and NFTModels for your application.
Happy Coding!