4. Compliance

Currently, the functionalities implemented and the interfaces defined by ERC-1000 are compliant with ERC-20 and ERC-721 standards, specifically as follows:

4.1 ERC-20 Compliance

No.

Item

Description

Status

1.

name()

Is declared as a public view function

Returns a string, for example “Tether USD”

2.

symbol()

Is declared as a public view function

Returns the symbol by which the token contract should be known, for example “USDT”. It is usually 3 or 4 characters in length

3.

Decimals()

Is declared as a public view function

Returns decimals, which refers to how divisible a token can be, from 0 (not at all divisible) to 18 (divisible) and even higher if required

4.

totalSupply()

Is declared as a public view function

Returns the number of total supplied tokens, including the total minted tokens (minus the total burned tokens) ever since the deployment

5.

balanceOf()

Is declared as a public view function

Anyone can query any addresses’ balance as all data on the blockchain is public

6.

allowance()

Is declared as a public view function

Returns the amount which the spender is still allowed to withdraw from the owner

7.

transfer()

Is declared as a public function

Returns a boolean value which accurately reflects the token transfer status

Reverts if the caller does not have enough tokens to spend

Allows zero amount transfers

Emits Transfer() event when tokens are transferred successfully (include 0 amount transfers)

Reverts while transferring to zero address

8.

transferFrom()

Is declared as a public function

Returns a boolean value which accurately reflects the token transfer status

Reverts if the spender does not have enough token allowances to spend

Updates the spender’s token allowances when tokens are transferred successfully

Reverts if the from address does not have enough tokens to spend

Allows zero amount transfers

Emits Transfer() event when tokens are transferred successfully (including zero amount transfers)

Is declared as a public function

Reverts while transferring from zero address

9..

approve()

Is declared as a public function

Returns a boolean value which accurately reflects the token approval status

Emits Approval() event when tokens are approved successfully

Reverts while approving to zero address

10.

Transfer()event

Is emitted when tokens are transferred, including zero value transfers

Is emitted with the from address set to 𝑎𝑑𝑑𝑟𝑒𝑠𝑠(0𝑥0) when new tokens are generated

11.

Approval()event

Is emitted on any successful call to approve()

5.2 ERC-721 Compliance

No.

Item

Description

Status

1.

balanceOf()

Is declared as a public view function

Anyone can query any addresses’ balance as all data on the blockchain is public

2.

ownerOf()

Is declared as a public view function

Returns the address of the owner of the NFT

3.

getApproved()

Is declared as a public view function

Reverts while ‘_tokenId’ does not exist

Returns the approved address for this NFT

4.

isApprovedForAll()

Is declared as a public view function

Returns a boolean value which check ‘_operator’ is an approved operator

5.

safeTransferFrom()

Is declared as a public function

Reverts while ‘to’ refers to a smart contract and not implement IERC721Receiver-onERC721Received

Reverts unless ‘msg.sender’ is the current owner, an authorized operator, or the approved address for this NFT

Reverts while ‘_tokenId’ is not a valid NFT

Reverts while ‘_from’ is not the current owner

Reverts while transferring to zero address

Emits Transfer() event when tokens are transferred successfully

6.

transferFrom()

Is declared as a public function

Reverts unless ‘msg.sender’ is the current owner, an authorized operator, or the approved address for this NFT

Reverts while ‘_tokenId’ is not a valid NFT

Reverts while ‘_from’ is not the current owner

Reverts while transferring to zero address

Emits Transfer() event when tokens are transferred successfully

7.

approve()

Is declared as a public function

Reverts unless ‘msg.sender’ is the current owner, an authorized operator, or the approved address for this NFT

Emits Approval() event when tokens are approved successfully

Reverts while approving to zero address

8.

setApprovalForAll()

Is declared as a public function

Reverts while not approving to caller

Emits ApprovalForAll() event when tokens are approved successfully

9.

Transfer()event

Is emitted when tokens are transferred`

10.

Approval()event

Is emitted on any successful call to approve()

11.

ApprovalForAll()event

Is emitted on any successful call to setApprovalForAll()

Last updated