> For the complete documentation index, see [llms.txt](https://nft-standards.gitbook.io/nft-standards-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nft-standards.gitbook.io/nft-standards-wiki/working-group-eips-and-implementations/eip4494-permits-for-erc721.md).

# EIP4494 Permits for ERC721

ERC by [William](https://twitter.com/William94029369) and [Simon](https://twitter.com/dievardump) inspired by Permits NFT idea and EIP2612

## EIP overview

This ERC extends the function of EIP2612 - the initial [permit EIP](https://eips.ethereum.org/EIPS/eip-2612) to ERC721 NFT. It requires a separate EIP due to the difference between ERC20 and ERC721. The main difference is that ERC20 permits use value (the amount of the ERC20 token being approved) and a nonce based on the owner's address, while ERC721 permits focus on the `tokenId` of the NFT and increment nonce based on the transfers of the NFT.

This EIP is basically EIP-2612 with an extended ERC-721 function tokenID instead of value—the amount of tokens being transferred.

The main difference between EIP-2612 and EIP-4494 is that EIP-4494 defines tokenID nonce as this function describes and differs NFTs in the contract.

* Full EIP: <https://github.com/ethereum/EIPs/pull/4494/commits/5756e7f465c35da1e0999af71d31c85a8a9668e>
* ERC as PR to follow its status and progress: <https://github.com/ethereum/EIPs/pull/4494>
* EIP-2612 (for comparison): <https://github.com/ethereum/EIPs/pull/2612/commits/1cfbd0eb808892b40f09abebbe3d9581c93240ea>
* EIP-4494 implementation in Vyper: <https://github.com/tserg/vyper-contracts/blob/main/contracts/EIP4494.vy>
