← Blog
10 min di lettura
|
28 ott 2026

Trasferire NFT tramite API: passaggi, parametri e insidie

Come funziona un'API per il trasferimento di NFT: controlli di proprietà, parametri della richiesta, gas, firma, conferma ed errori comuni su Ethereum e Solana, con una checklist pratica.

Capitoli
C
Chaingateway Team
Esperti di blockchain

Geometric token moving between two platforms

Un’API di trasferimento NFT consente al Suo backend di spostare un token da un wallet a un altro con una singola richiesta HTTP, invece di far scrivere al Suo team chiamate a contratti, firmare transazioni e gestire nodi manualmente. Sotto il cofano, ogni trasferimento rimane una transazione on-chain: il compito dell’API è verificare la proprietà, costruire la chiamata corretta per lo standard del token, stimare le commissioni, firmare, trasmettere e poi comunicarLe cosa è successo. Questa guida illustra ciascuno di questi passaggi, i parametri necessari per ogni richiesta e gli errori che fanno perdere più tempo agli sviluppatori.

TL;DR

  • Un trasferimento NFT modifica il proprietario registrato in un contratto token. Sulle chain in stile Ethereum è una chiamata a transferFrom o safeTransferFrom; su Solana è un’istruzione token o Metaplex.
  • Una richiesta richiede quattro elementi: il wallet mittente, l’indirizzo destinatario, l’indirizzo del contratto (o mint) e l’ID del token. ERC-1155 richiede anche un importo.
  • Verifichi la proprietà prima di inviare, stimi le commissioni prima di firmare e confermi il successo dalla chain (ricevuta ed evento Transfer), non solo dalla risposta HTTP.
  • I fallimenti più comuni sono: chain sbagliata, contratti destinatari che non possono ricevere NFT, gas nativo mancante e proprietà obsoleta.
  • Un’API unificata rimuove la configurazione per-chain. La nostra copre anche i webhook per la conferma, così non deve fare polling.

Indice

Cosa fa effettivamente un’API di trasferimento NFT

Un NFT è un registro in uno smart contract (o, su Solana, un token account) che indica quale indirizzo possiede quale token. Trasferirlo significa modificare quel registro, e solo il proprietario o qualcuno autorizzato dal proprietario può farlo.

Lo standard ERC-721 lo definisce a livello di contratto. Ogni token è identificato da un token ID, e un trasferimento sposta la proprietà da un indirizzo a un altro quando è avviato dal proprietario, da un indirizzo approvato o da un operatore. Il contratto emette quindi un evento Transfer, che è il segnale che la maggior parte degli indexer e dei sistemi di notifica ascoltano.

Un’API si posiziona sopra a questo. Una buona ne gestisce cinque per Lei:

  1. Verifica della proprietà: conferma che il wallet mittente possiede attualmente il token.
  2. Costruzione della chiamata: codifica la funzione corretta per lo standard e la chain.
  3. Stima delle commissioni: calcola il gas o le commissioni di rete e verifica che il wallet possa pagarle.
  4. Firma e trasmissione: firma con la chiave del wallet e invia la transazione.
  5. Reporting dello stato: restituisce un hash di transazione e Le comunica quando il trasferimento è definitivo.

L’alternativa è eseguire il proprio nodo, mantenere le librerie web3 per ogni catena e scrivere l’encoding da sé. Questo funziona per una catena e una collezione. Diventa costoso quando si aggiunge una seconda rete.

Quali standard e catene può coprire un’API di trasferimento

Non tutti gli NFT sono lo stesso tipo di oggetto, quindi un’API deve parlare più di un dialetto.

Standard / modelloCateneCome funziona il trasferimento
ERC-721Ethereum, Polygon, Arbitrum e altre catene EVMUn token ID per token; transferFrom o safeTransferFrom
ERC-1155Ethereum e catene EVMContratto multi-token; il trasferimento include un importo per token ID, con trasferimenti batch
Token SPL con supply uno + metadati MetaplexSolanaTrasferimento tramite Token Program; metadati memorizzati separatamente

ERC-1155 merita un’analisi più approfondita se gestisce oggetti di gioco o biglietti. Un contratto contiene sia tipi fungibili che non fungibili, la sua interfaccia include trasferimenti singoli e batch sicuri, e ogni trasferimento riporta un importo per il token ID. Un token con supply di uno si comporta come un NFT classico, ma un’edizione con supply di 500 è un caso diverso: deve inviare un importo, non solo un ID.

Solana funziona in modo diverso. In genere non distribuisce un contratto separato per collezione. Il suo Token Program viene utilizzato con un mint supply di uno, mentre i Metadati Token Metaplex contengono i dettagli dell’NFT. Quindi su Solana si trasferisce tramite indirizzo mint, non tramite contratto più token ID, e ci si deve aspettare che il destinatario necessiti di un token account per quel mint.

Quando valuta un qualsiasi provider, chieda quali di questi tre modelli supporta su quali catene. La Blockchain API di Chaingateway copre Ethereum, Bitcoin, Tron, Solana, Polygon, BNB Chain e Arbitrum, e supporta i principali standard token inclusi ERC-721, quindi lo stesso schema di integrazione si applica alle reti che aggiungerà in seguito.

Come trasferire un NFT tramite un’API, passo dopo passo

Il flusso è lo stesso indipendentemente dal provider. Ciò che differisce è quanto di esso deve scrivere da sé.

1. Verificare la proprietà

Prima di costruire una transazione, confermi che il mittente possieda effettivamente il token. Per ERC-721 questo significa interrogare il contratto su chi possiede il token ID. Per ERC-1155 significa controllare il saldo di quell’ID per l’indirizzo. Per Solana, controllare il token account che detiene il mint.

Faccia questo immediatamente prima dell’invio, non da una riga di database in cache. Gli NFT possono essere venduti o spostati nei secondi tra l’ultimo sync e la sua richiesta, e un trasferimento da un wallet che non possiede più il token fallirà semplicemente e costerà comunque commissioni in alcune modalità di fallimento.

2. Controllare l’autorizzazione

Lo standard permette al proprietario, a un indirizzo approvato o a un operatore di avviare un trasferimento. Se il suo servizio sposta NFT da wallet di utenti che non controlla, necessita prima di un’approvazione. Se il suo servizio detiene le chiavi per wallet che ha creato (come nei flussi custodial), il wallet mittente è il proprietario e nessuna approvazione è necessaria.

3. Costruire e stimare

Scelga la funzione e codifichi gli argomenti. Quindi stimi la commissione. Sulle catene EVM questo significa un gas limit moltiplicato per un gas price; su Solana è una piccola commissione per firma più, eventualmente, rent per un nuovo token account. Un’API con stima automatica del gas fa questo per lei, così non deve hard-codare un gas limit che fallisce quando il destinatario è un contratto con logica extra.

Verifichi anche che il wallet disponga di una quantità sufficiente della moneta nativa. Un indirizzo con dieci NFT e zero ETH non può spostarne nessuno.

4. Firma e trasmissione

La transazione deve essere firmata con la chiave privata del proprietario. Può firmare localmente e inviare la transazione grezza, oppure lasciare che l’API firmi per un wallet che gestisce. I wallet gestiti sono più semplici per i flussi backend, poiché i suoi server non gestiscono mai chiavi grezze.

5. Conferma

Un hash di transazione significa che la rete ha accettato l’invio, non che il trasferimento sia riuscito. Attenda una ricevuta che mostri il successo e l’evento Transfer con mittente, destinatario e ID token previsti. Per NFT di alto valore, attenda diverse conferme prima di aggiornare il proprio database o rilasciare qualcosa in cambio.

Cosa serve in una richiesta di trasferimento

Qualunque siano i nomi dei campi del provider, la richiesta trasporta le stesse informazioni.

ParametroPerché è necessarioNote
Chain / reteLo stesso indirizzo esiste su molte chain EVMMainnet vs testnet è la prima cosa da controllare quando un token “scompare”
Wallet mittenteIdentifica chi firma e pagaDeve possedere il token e detenere gas nativo
Indirizzo destinatarioDestinazioneValidare formato e checksum; non accettare mai testo libero senza controlli
Indirizzo contratto o mintIdentifica la collezioneContratto su EVM, mint su Solana
Token IDIdentifica il token individualeNon usato su Solana, dove il mint è il token
QuantitàQuantità da spostareRichiesto per ERC-1155; uno per ERC-721
Impostazioni feeLimite e prezzo gas, o priority feeLasci stimare all’API a meno che non abbia un motivo per non farlo
Idempotenza o riferimentoPreviene doppi invii in caso di retryMemorizzi il proprio riferimento contro l’hash della transazione

Quell’ultima riga conta più di quanto sembri. Se la sua richiesta va in timeout, non sa se la transazione è stata trasmessa. Riprovare alla cieca può inviare una seconda transazione, che per un NFT unico fallirà semplicemente, ma per un’edizione ERC-1155 può spostare copie extra. Verifichi prima il tentativo precedente.

Fee: stima e pagamento

Sulle reti EVM il mittente paga il gas nella moneta nativa della chain, e il costo varia con la congestione della rete e la complessità della chiamata. Un semplice transferFrom costa poco rispetto a un mint o una vendita su marketplace, ma un contratto destinatario con una funzione di ricezione pesante può alzare il costo.

Regole pratiche:

  • Stimi immediatamente prima dell’invio e aggiunga un modesto buffer invece di usare un numero fisso.
  • Mantenga un saldo nativo minimo su ogni wallet che invia NFT, e imposti un alert quando scende sotto tale soglia.
  • Se trasferisce per conto degli utenti, decida in anticipo chi paga: lei (ricarichi il wallet) o l’utente (deduca da un saldo). Le sorprese qui diventano ticket di supporto.
  • Su Solana, ricordi che il destinatario potrebbe aver bisogno di un nuovo token account, che ha un costo una tantum.

Precauzioni di sicurezza

I trasferimenti NFT sono irreversibili. Non esiste chargeback né sportello di supporto on-chain, quindi le tutele risiedono nel suo codice.

Protegga il percorso di firma. Autentichi ogni chiamata API. Chaingateway firma le richieste con HMAC, quindi una richiesta alterata in transito o inviata da chi non possiede il segreto viene rifiutata. Conservi il segreto in un vault, lo ruoti e non lo includa mai in un browser o app mobile.

Validi il destinatario. Controlli formato e chain dell’indirizzo. Offra un passaggio di conferma per articoli di alto valore. Dove la policy lo richiede, sottoponga gli indirizzi a screening prima dell’invio.

Prestare attenzione ai contratti destinatari. La specifica ERC-721 descrive safeTransferFrom come una funzione che verifica, quando la destinazione è un contratto, che questo implementi l’interfaccia del destinatario, e che esegue il revert se non lo fa. L’uso della variante “safe” la protegge dal bloccare un token in un contratto che non può spostarlo. La funzione transferFrom standard lascia questa responsabilità al chiamante.

Limitare l’esposizione. Mantenga un hot wallet con solo gli NFT necessari per i trasferimenti a breve termine e il resto in un wallet con maggiori restrizioni. Applichi limiti per richiesta e giornalieri nel suo livello applicativo.

Quattro misure di sicurezza per trasferimenti NFT sicuri

Registrare tutto. Registri chi ha richiesto il trasferimento, i parametri, l’hash e il risultato. Quando un cliente contesta un trasferimento, la blockchain prova cosa è successo, e i suoi log provano chi lo ha richiesto.

Errori comuni e loro significato

SintomoCausa probabileSoluzione
La transazione esegue il revertIl mittente non possiede il token o non è approvatoVerifichi nuovamente proprietà e approvazione appena prima dell’invio
Revert solo per alcuni destinatariIl destinatario è un contratto senza funzione di ricezioneUtilizzi un altro indirizzo, o confermi che il contratto supporta gli NFT
”Fondi insufficienti”Nessuna coin nativa per le feeRicarichi il wallet mittente
Transazione bloccata in pendingPrezzo del gas troppo basso o gap nel nonceSostituisca con una fee più alta usando lo stesso nonce
Token non visibile al destinatarioRete sbagliata, o metadati non aggiornatiVerifichi la chain e l’evento Transfer; i wallet potrebbero usare la cache
Quantità errata spostataGestione errata dell’amount ERC-1155Passi sempre un amount esplicito e verifichi il saldo successivamente

La maggior parte di questi errori viene intercettata da due abitudini: verificare prima proprietà e saldo, e considerare la receipt on-chain come unica prova di successo.

Confermare i trasferimenti con i webhook invece del polling

Effettuare il polling di un hash di transazione ogni pochi secondi funziona in un prototipo e spreca richieste in produzione. I webhook ribaltano il modello: il provider chiama il suo endpoint quando il trasferimento viene minato, con dati decodificati su mittente, destinatario e token. Verifichi la firma su ogni chiamata in arrivo, risponda rapidamente ed elabori gli eventi in modo idempotente, perché le consegne possono essere ripetute. Se vuole capire come appaiono tali eventi a livello di log, la nostra guida sull’evento ERC-20 Transfer ne copre la struttura e i topic, e l’evento ERC-721 segue lo stesso schema con il token ID indicizzato.

La nostra prospettiva

La maggior parte dei team sottovaluta i trasferimenti NFT perché l’happy path è una singola chiamata di funzione. Il lavoro sta in tutto ciò che ci sta intorno: quale chain, chi paga il gas, cosa succede in caso di retry, come si apprende il risultato. Abbiamo creato Chaingateway così che uno sviluppatore non debba gestire questa superficie di attacco. Un’unica API REST sostituisce endpoint specifici per chain e i suoi stessi nodi, le risposte arrivano pre-decodificate così non deve parsare i log a mano, il gas viene stimato automaticamente e le richieste sono firmate con HMAC.

Il nostro consiglio è di progettare prima per i casi di fallimento. Decida chi paga le fee, cosa conta come confermato e come viene riconosciuto un retry, e la chiamata di trasferimento in sé diventerà la parte facile. Per un contesto più ampio su dove si colloca ogni tipo di provider, veda il nostro confronto sui tipi di API blockchain.

— Bitblade

Spostare NFT con Chaingateway

Se sta sviluppando un’app che crea wallet, invia token e NFT e reagisce agli eventi on-chain, la Blockchain API di Chaingateway le offre un’unica integrazione per Ethereum, Solana, Polygon, BNB Chain, Arbitrum, Tron e Bitcoin. Abbinata alle notifiche webhook, può inviare un trasferimento ed essere avvisato quando questo viene confermato. I piani partono da 49 € al mese (Plus), con Pro a 99 €, Premium a 249 € e Enterprise a 499 € al mese; la fatturazione annuale è rispettivamente di 490 €, 990 €, 2490 € e 4990 €. Consulti la pagina dei prezzi per scoprire cosa include ogni piano e inizi con la prova gratuita per testare i trasferimenti sulla sua chain.

Se il suo stack si basa su una rete specifica, le pagine dedicate per le API Ethereum e API Solana mostrano come funziona l’invio di token su ciascuna.

Una checklist pre-lancio

Prima di permettere a utenti reali di attivare trasferimenti NFT, esegua questa lista su una testnet:

  1. Trasferisca un token di sua proprietà a un wallet normale e confermi la ricezione e l’evento Transfer.
  2. Trasferisca a un contratto che non può ricevere NFT e confermi che il suo codice rileva il fallimento.
  3. Tentì un trasferimento da un wallet senza coin nativo e confermi che l’errore sia chiaro.
  4. Invii la stessa richiesta due volte e confermi che il suo controllo di idempotenza blocchi la seconda.
  5. Disabiliti il suo endpoint webhook per un minuto, lo ripristini e confermi che gli eventi non vadano persi o vengano processati due volte.
  6. Verifichi chi può chiamare l’endpoint, con quali limiti e dove è memorizzato il segreto.

Fonti

Consigliati

Domande frequenti

Sì. Una blockchain API ospitata si connette ai nodi per lei, costruisce e trasmette la transazione e restituisce l’hash. Deve comunque gestire le chiavi del wallet o usare un wallet gestito e tenere disponibile coin nativo per le fee.

Entrambi cambiano la proprietà secondo ERC-721. La versione safe controlla anche che un destinatario contratto implementi l’interfaccia di ricezione e altrimenti fa revert, prevenendo che i token rimangano bloccati, secondo le specifiche ERC-721. Per flussi automatizzati, la versione safe è solitamente la scelta predefinita migliore.

Sì, in pratica. I trasferimenti ERC-1155 includono un importo per token ID e supportano i trasferimenti batch, come descritto nello standard ERC-1155. La sua richiesta deve includere la quantità e dovrebbe verificare il saldo successivamente.

Controlli la receipt della transazione per il successo e cerchi l’evento Transfer corrispondente con il mittente, il destinatario e il token ID corretti. Un webhook può consegnarlo al suo backend non appena viene minato, così non deve fare polling.

Non da parte sua. Solo il nuovo proprietario può rispedirlo. Per questo dovrebbe validare gli indirizzi, confermare la chain e aggiungere un passaggio di conferma per i token di valore prima di inviare.

Pronto a costruirlo da solo? Ottieni la tua API key — prova di 7 giorni, senza carta — oppure consulta Blockchain API per il riferimento completo degli endpoint.

C
Chaingateway Team
Esperti di blockchain

Il team di Chaingateway si impegna a semplificare l'integrazione blockchain per sviluppatori di tutto il mondo.