Niftory Docs
  • What is Niftory?
  • Get your API Keys
  • 👩‍💻API
    • Niftory Web3 API
    • SDK QuickStart
      • Using the SDK in React
      • Using the SDK from the Server
    • API Quickstart
      • Create your first Wallet
      • API calls with Sample Content
      • Mint your first NFT
    • API Cheat Sheet
    • Niftory Sample App
      • Explore the Sample App
      • Anatomy of a Niftory App
        • Getting Authenticated
        • GraphQL Client Setup
        • API Usage
        • Transfer an NFT
    • 💡Core Concepts
      • Niftory Data Model
      • Authentication
        • Using Your API Key
        • Configuring Your App
        • Privileged Authentication
      • App and AppUser
      • NFTs
        • Creating NFTs
        • Querying NFTs
        • Transferring NFTs
        • Minting NFTs
      • Wallets
        • Create a Niftory Wallet
        • Register External Wallets
        • Query Wallets
      • Contract
      • User Auth (Client-Side)
    • Your Niftory Account
  • 🧑‍💼Admin Portal
    • Niftory Admin Portal
    • 🚀Guides
      • Setting Up Your Org
      • Create Your First NFT
    • 🗺️Explore
      • Org and Apps
      • NFT Collection
        • Sets
        • Collectibles
        • NFTs
    • 💼Use Cases
      • For Engineers
      • For Designers
      • For Business Users
  • 📖Reference
    • GraphQL & Auth Endpoints
    • API Reference
    • SDK API Reference
Powered by GitBook
On this page

Was this helpful?

  1. API
  2. Core Concepts
  3. NFTs

Transferring NFTs

PreviousQuerying NFTsNextMinting NFTs

Last updated 1 year ago

Was this helpful?

The mutation is a privileged API that allows the application backend to transfer an NFT to a user. This API is designed to be securely used from a backend so you'll need to use a privileged token in order to use it.

For more details on invoking privileged APIs, see .

The transfer API kicks off the following operations:

  • Takes in the ID of the or to transfer. If an NFTModel is specified, the API selects an NFT from the NFTModel.

  • Mints the NFT if it hasn't already been minted, and

  • Transfers the minted NFT to the user's wallet

Since these can be time-consuming operations, the transfer API schedules the work to happen asynchronously, and returns back the NFT that will be transferred to the user. The NFT's field tells you what is going on.

mutation transferNFTToUser($nftModelId: ID!, $userId: ID!) {
  transfer(nftModelId: $nftModelId, userId: $userId) {
    id
    status
  }
}
const handler: NextApiHandler = async (req, res) => {
  const { nftModelId, userId } = req.query;

  if (req.method !== "POST") {
    res.status(405).end();
    return;
  }

  const signedIn = !!getToken({ req });
  if (!signedIn) {
    res.status(401).send("You must be signed in to transfer NFTs");
  }

  if (!nftModelId) {
    res.status(400).send("nftModelId is required");
    return;
  }

  const client = await getBackendGraphQLClient();
  const sdk = getSdk(client);

  const data = await sdk.transferNFTToUser({
    nftModelId: nftModelId as string,
    userId: userId as string,
  });

  res.status(200).json(data);
};

Follow the for an example on how to invoke the transfer mutation.

👩‍💻
💡
transfer
NFT
NFTModel
status
Transfer handler in application backend
sample app's structure
Niftory APIs in your backend