I have a smart contract that should be able to receive ERC721 tokens. I have implemented the onERC721Received and this works fine if I send one token at a time from OpenSea or from the ERC721 contract _safeTransfer function.

If I try to send a bulk transfer from OpenSea, it fails the preflight check and doesn't even send the transaction. Is there some interface that needs to be implemented to receive these bulk transfers?

Is there an interface or any standard for receiving bulk NFT transfers to a contract?

1 Answer 1


If you are allowing third party like any marketplace to transfer your assets in batch you need to first approve your all the assets to the marketplace as its documentation describes:

ERC721BatchTransfer can transfer multiple ERC721 tokens to multiple addresses in a single transaction. To use this contract, first run setApproveForAll or approve in the ERC721 contract from the wallet that will be transfering the tokens

  • Thanks for the suggestion, but i don't think this is related. I have already approved all the tokens to be transferred by opensea. It will transfer 1-by-1 with no problems, and my contract will accept them. But when opensea tries to send more than 1 it fails. Commented Apr 19, 2023 at 19:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.