/v2/app/nft/transfer
This API transfers (i.e., moves) an NFT token from one wallet to another wallet. This assumes that the from
wallet holds the token or else, the transaction will fail on the chain.
EVM NFT transfer
On EVM
based chains, the API only supports transferring tokens that have been minted using Mint an NFT API.
Solana NFT transfer
On Solana
, the API supports transferring any deployed NFT token on the chain whether it was minted using MetaKeep API or not.
Note that some marketplaces on Solana
co-sign the NFT transfer transaction. In such cases, transferring the NFT using this API will fail. Instead, you should get the partially signed transaction from the marketplace and use Sign Transaction from MetaKeep SDK to sign and broadcast the transaction.
Solana
compressed NFTs are supportedYou don't need to worry if your NFT is compressed or not. The API will invisibly handle it for you :)
Invoking without from
user
from
userIf you don't provide a from
user in the request body, the token will be transferred from your developer account and a transaction will be raised and submitted to the Queue on the blockchain. MetaKeep, behind the scenes, employs several strategies to make sure transactions succeed, and at the lowest cost.
You can get the status of this blockchain transaction by querying for transaction status by copying the transactionId
from this API response and querying it in Transaction Status API.
Replaying this API
Once you get a
status
response asQUEUED
, replaying this API doesn't give you the latest status; Replaying the same API with the sameIdempotency-Key
results in the same response, always with status-QUEUED
. You must query the Transaction Status API for the latest status.
As you would learn from the Transaction Status API docs, if a transaction failed, MetaKeep would have exhausted all feasible smart AI-based strategies to recover from failure, that would have been attempted by humans, and the "FAILED" status, if shown, is final.
Invoking with a from
user
from
userIf you provide a from
user in the request body, you will get a consentToken
back and you will have to use Get Consent flow to finish the transfer. Here, the developer is agreeing to pick up the gas fee on execution so that the user doesn't have to know/understand the concept of gas. MetaKeep, behind the scenes, employs several strategies to make sure transactions succeed, and at the lowest cost.
{
"status": "USER_CONSENT_NEEDED",
"consentToken": "CrgBAQIDAHgtrXLM7Takfd-ccn6FAthYppUrIuoEMsncIpxm4af4uUh4Cikr2YkEzasNQr9433Z-V73Hw=="
}
Priority Fee(aka Compute Price on Solana)
The API automatically takes care of setting the right priority fee
for the NFT transfer on both EVM and Solana.
Api Error Status
You can find error status returned by the api here.
Ā© Copyright 2024, Passbird Research Inc.