Encyclopedia Ethereum · Entry 247
Sending an NFT to a contract: why safe transfers can fail
In this article
At a glance
Key facts
| Fact | Detail | Source |
|---|---|---|
| ERC-721 hook | A contract recipient must return the expected onERC721Received response. | [1] |
| ERC-1155 hook | Single and batch transfers use corresponding receiver callbacks. | [2] |
| Identity | The receiver check concerns contract behavior, not a person’s identity. | [1] |
A contract needs a way to acknowledge receipt
Contracts can receive assets without having a useful way to manage them. The safe-transfer interfaces require an appropriate receiver response when the destination is a contract under the standard’s rules. A missing or incorrect response causes the transfer to revert.
ERC-721’s plain transferFrom lacks this receiver handshake. Choosing it to bypass an error can leave the token at a contract that cannot return it.
A treasury must support the token standard
Imagine sending an ERC-721 token to a treasury contract that accepts ERC-1155 callbacks but has no ERC-721 receiver implementation. The ERC-721 safe transfer can fail even though the treasury handles other NFTs.
The useful next check is the treasury’s supported receipt and withdrawal behavior, not trying a less protective transfer method.
Accepted does not mean recoverable
A contract can return the receiver response while applying restrictive or malicious logic. A successful handshake therefore does not prove the intended owner can withdraw the NFT later.
For an ordinary account, safe transfer does not check whether you typed the intended person’s address. Verify chain, recipient, collection and token ID before signing.
Direct answers
Questions people ask
Can a safe transfer to the wrong ordinary address still succeed?
Yes. The standard’s special receiver check is for contract compatibility. It does not establish that the address belongs to your intended recipient.
Should I use transferFrom when safeTransferFrom fails?
First determine why the recipient rejected the token. Bypassing the receiver check can place the NFT in a contract with no usable recovery path.
Inspect the evidence
The answer and key facts have stable claim links. These records retain the scope and qualification when reused.
ERC-721 safeTransferFrom checks whether a contract recipient implements the required receiver response; otherwise the transfer reverts. ERC-1155 has corresponding receiver rules. “Safe” describes this contract-compatibility check. It does not confirm the recipient’s identity, promise the NFT can later be withdrawn or protect against sending to the wrong ordinary account.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T19:27:58.939Z.
Link to this claimERC-721 hook: A contract recipient must return the expected onERC721Received response.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T19:27:58.939Z.
Link to this claimERC-1155 hook: Single and batch transfers use corresponding receiver callbacks.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T19:27:58.939Z.
Link to this claimIdentity: The receiver check concerns contract behavior, not a person’s identity.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T19:27:58.939Z.
Link to this claimRevision history
- — First publication after primary-source research and separate automated verification.
Source register
Sources and references
Retrieval dates and locators are recorded individually.- ERC-721 NFT standardEthereum Improvement Proposals
Ownership, receiver checks, token-level and operator approvals, mint/burn event semantics.
Locator: safeTransferFrom; approve; setApprovalForAll; Transfer; metadata · Version / scope: ERC-721 · Retrieved: 2026-10-02T18:55:25.399ZOpen source - ERC-1155 multi-token standardEthereum Improvement Proposals
Receiver acceptance, collection-wide operators, balance accounting and burn events.
Locator: Safe transfer rules; operator approvals; minting and burning · Version / scope: ERC-1155 · Retrieved: 2026-10-02T18:55:25.400ZOpen source
Research and drafting use AI assistance. A separate automated review checks claims against primary sources; no external expert or named human review is implied. Publication, substantive editing, source retrieval and verification are recorded separately. This version was independently checked by an automated reviewer on 2 October 2026.
Editorial method and correctionsDegrees of Satoshi editorial project. “Sending an NFT to a contract: why safe transfers can fail.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/nft-safe-transfers/