Skip to main content

IERC721

View Source: contracts/interfaces/IERC721.sol

↗ Extends: IERC165

IERC721

Functions​

balanceOf​

Returns the number of tokens in owner's account.

function balanceOf(address owner) 
external
view
returns(uint256 balance)

Arguments

NameTypeDescription
owneraddress

Returns

NameTypeDescription
balanceuint256

ownerOf​

Returns the owner of the tokenId token.
Requirements:
- tokenId must exist.

function ownerOf(uint256 tokenId) 
external
view
returns(address owner)

Arguments

NameTypeDescription
tokenIduint256

Returns

NameTypeDescription
owneraddress

safeTransferFrom​

Safely transfers tokenId token from from to to, checking first that contract recipients
are aware of the ERC721 protocol to prevent tokens from being forever locked.
Requirements:
- from cannot be the zero address.
- to cannot be the zero address.
- tokenId token must exist and be owned by from.
- If the caller is not from, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
- If to refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
Emits a {Transfer} event.

function safeTransferFrom(address from,
address to,
uint256 tokenId)
external

Arguments

NameTypeDescription
fromaddress
toaddress
tokenIduint256

transferFrom​

Transfers tokenId token from from to to.
WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
Requirements:
- from cannot be the zero address.
- to cannot be the zero address.
- tokenId token must be owned by from.
- If the caller is not from, it must be approved to move this token by either {approve} or {setApprovalForAll}.
Emits a {Transfer} event.

function transferFrom(address from,
address to,
uint256 tokenId)
external

Arguments

NameTypeDescription
fromaddress
toaddress
tokenIduint256

approve​

Gives permission to to to transfer tokenId token to another account.
The approval is cleared when the token is transferred.
Only a single account can be approved at a time, so approving the zero address clears previous approvals.
Requirements:
- The caller must own the token or be an approved operator.
- tokenId must exist.
Emits an {Approval} event.

function approve(address to,
uint256 tokenId)
external

Arguments

NameTypeDescription
toaddress
tokenIduint256

getApproved​

Returns the account approved for tokenId token.
Requirements:
- tokenId must exist.

function getApproved(uint256 tokenId) 
external
view
returns(address operator)

Arguments

NameTypeDescription
tokenIduint256

Returns

NameTypeDescription
operatoraddress

setApprovalForAll​

Approve or remove operator as an operator for the caller.
Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
Requirements:
- The operator cannot be the caller.
Emits an {ApprovalForAll} event.

function setApprovalForAll(address operator,
bool _approved)
external

Arguments

NameTypeDescription
operatoraddress
_approvedbool

isApprovedForAll​

Returns if the operator is allowed to manage all of the assets of owner.
See {setApprovalForAll}

function isApprovedForAll(address owner,
address operator)
external
view
returns(bool)

Arguments

NameTypeDescription
owneraddress
operatoraddress

Returns

bool

safeTransferFrom​

Safely transfers tokenId token from from to to.
Requirements:
- from cannot be the zero address.
- to cannot be the zero address.
- tokenId token must exist and be owned by from.
- If the caller is not from, it must be approved to move this token by either {approve} or {setApprovalForAll}.
- If to refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
Emits a {Transfer} event.

function safeTransferFrom(address from,
address to,
uint256 tokenId,
bytes data)
external

Arguments

NameTypeDescription
fromaddress
toaddress
tokenIduint256
databytes

Events​

Transfer​

Emitted when tokenId token is transferred from from to to.

event Transfer(
address indexed from
address indexed to
uint256 indexed tokenId
)

Parameters

NameTypeDescription
fromaddress
toaddress
tokenIduint256

Approval​

Emitted when owner enables approved to manage the tokenId token.

event Approval(
address indexed owner
address indexed approved
uint256 indexed tokenId
)

Parameters

NameTypeDescription
owneraddress
approvedaddress
tokenIduint256

ApprovalForAll​

Emitted when owner enables or disables (approved) operator to manage all of its assets.

event ApprovalForAll(
address indexed owner
address indexed operator
bool approved
)

Parameters

NameTypeDescription
owneraddress
operatoraddress
approvedbool