> For the complete documentation index, see [llms.txt](https://docs.algebra.finance/algebra-integral-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.algebra.finance/algebra-integral-documentation/algebra-v1-technical-reference/contracts/api-reference-v1.0/v1.0-tokenomics/ierc721permit.md).

# IERC721Permit

ERC721 with permit Extension to ERC721 that includes a permit function for signature based approvals

## Functions

### PERMIT\_TYPEHASH

`PERMIT_TYPEHASH()` pure external

The permit typehash used in the permit signature

**Returns:**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \[0] | bytes32 |             |

### DOMAIN\_SEPARATOR

`DOMAIN_SEPARATOR()` view external

The domain separator used in the permit signature

**Returns:**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \[0] | bytes32 |             |

### permit

`permit(address,uint256,uint256,uint8,bytes32,bytes32)` payable external

Approve of a specific token ID for spending by spender via signature

| Name     | Type    | Description                                                                       |
| -------- | ------- | --------------------------------------------------------------------------------- |
| spender  | address | The account that is being approved                                                |
| tokenId  | uint256 | The ID of the token that is being approved for spending                           |
| deadline | uint256 | The deadline timestamp by which the call must be mined for the approve to work    |
| v        | uint8   | Must produce valid secp256k1 signature from the holder along with \`r\` and \`s\` |
| r        | bytes32 | Must produce valid secp256k1 signature from the holder along with \`v\` and \`s\` |
| s        | bytes32 | Must produce valid secp256k1 signature from the holder along with \`r\` and \`v\` |

***
