Can't call approve on a ERC721 contract, metamask stuck

Hello !

I have seemingly metamask related problems when executing one function of one of our contracts.

This is a ERC721 contract, following closely the specification found here : htt***ps://

I can basically call every function of this contract, but the approve function. Calling the approve function trigger metamask, and then, it get stuck on the loading screen right before allowing us to confirm the transaction.

Our contract is here : htt***ps://

I tried with remix to rule out our own web3 implementation.
I tried with different browsers (brave, firefox, chrome).
I tried to downgrade metamask version to 10.10.2 and 10.0.0 and it worked fine. But no luck with the 10.13.0 one.

Here what happen when calling approve. Just stuck there.


It get even weirder, is if i rename the function, let’s say “approveMe”, without changing a thing in it, it go through.


Thank’s, waiting for any reply,

Alexandre G, MyNFT team.


This issue is likely related to htt***ps://

1 Like

Ok Metamask team, found the problem. See last response over there :


Will bring it up, thanks for posting the GitHub issue! :slight_smile:

Currently, ERC721 transfers should only be attempted on mobile. Here is more information on our Knowledge Base:


Any luck on this issue? Still cannot approve NFTs for deposit into smart contracts.

Have you tried on mobile?

Not yet, unfortunately our primary use case is a desktop browser flow.

@nakedwinnie Do you know if there’s an update on this issue?

There is a workaround, but will need you to redeploy / update your contracts if by chance they support some kind of upgradable proxy (1538, diamonds …).

See htt***ps:// discussion thread.

1 Like

yes.its a problem to solve

now,its a little dangerous

1 Like