Permits NFT Overview

Proposal by Anett

Intro

Permits will be used as off-chain message signatures that will approve (confirm) the purchase of the NFT. The author of the NFT will sign a message with his wallet, which will trigger the sale function. This standard will look similar to ERC712 (EIP2612), but it will be usable for nonfungible token standards. This security extension can be used in the art world of NFTs and other not-only-art industries.

This standard will be standalone but will require ERC721 and ERC115

Permit NFT

The idea of using Permits with NFTs is to improve UX when minting NFTs using marketplaces for listing by removing the need to perform an extra transaction, especially in the context of an escrow-less sale where the seller wants to keep ownership until the sale is performed.

The message that the Permit will sign will be the actual sell offer, which will be sent to the marketplace to list the NFT (alongside with the metadata). The buyer will sign the message from the creator and will make a transaction to purchase the NFT. This way, the marketplace won’t own the NFT. The ownership will be transferred after the NFT is sold.

How it could work

  • The creator will mint the NFT by signing the message with metadata and sales details included.

  • The buyer will grab the message incorporating the ownership (Approval) function and make a transaction to purchase the NFT.

Possible functions of Permit

This is what the Permit could look like: function permit(address owner, address spender, uint256[] tokenIds, bytes data, [[uint256]] deadline, uint8 v, bytes32 r, bytes32 s) external function nonces(address owner) external view returns (uint) function DOMAIN_SEPARATOR() external view returns (bytes32)

--

The implementation of this permit:

In more human-readable language:

  • Permit will replace the need to make tx for setApprovalForAll function

  • The message (Permit) will be the actual sell offer The process: The creator will send tx to mint NFT

  • sell it by signing a permit with sale data

  • send it to the marketplace

  • the marketplace list it on their website

  • buyer grab the message and make a tx to purchase

[[Simple-explanantion]]

  • Artist will create an NFT via marketplace, the NFT includes metadata - file, description, name, symbol

  • She will sell it on marketplace by signing a permit with sale data - when

  • So the NFTs wont get locked on the platform

  • Let users have power over their NFTs

  • Start with users explanation

Draft Implementation

I started drafting some implementation which is in very rough draft stage. Link: https://hackmd.io/@Bnkhqf0tSbi1lX2Xc-WXYQ/SJMwh6suO

Last updated