Changes in approvals for ERC721 contracts on Ethereum

Schema

Column NameData Type
txn_hashstring
block_numberbigDecimal
block_timestampbigDecimal
token_addressstring
token_namestring
token_decimalsstring
ownerstring
is_for_allbool
token_idbigDecimal
approved_addressstring
operatorstring
approvedbool

Notes

There are two types of approvals for ERC721:

  1. approve(address to, uint256 tokenId) grants permission to a single address to transfer a specific NFT, identified by its ID. Approve records will have is_for_all = false and the details of the approval specified in token_id and approved_address. The two remaining columns, operator and approved, take default values and should be disregarded for this case.
  2. setApprovalForAll(address operator, bool approved) grants or revokes permission to an operator address to manage all of the caller's NFTs. In this case, is_for_all = true and the operator is defined in operator. If approved = true then the record corresponds to the granting of an approval. If approved = false, the record corresponds to the removal of an approval.

Source

This table was built in sim's Ethereum ERC721 Approval Changes canvas.