# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nft-standards.gitbook.io/nft-standards-wiki/working-group/permits-nft-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
