Support Platform

NFTGo adopts a technical architecture that supports multiple blockchains and is theoretically able to capture NFT data from any blockchain.

MarketPlace

NFTGo not only integrates transactional data from notable marketplaces (e.g. OpenSea, LooksRare, X2Y2), but also integrates data from the self-built marketplaces of projects listed on NFTGo, so that each NFT has the most accurate market value.

Smart Contract

Ethereum

NFTGo supports the collection and statistics of transactions from ERC721 and ERC1155, including the following contracts.

ERC721:

/// @dev This emits when ownership of any NFT changes by any mechanism.
///  This event emits when NFTs are created (`from` == 0) and destroyed
///  (`to` == 0). Exception: during contract creation, any number of NFTs
///  may be created and assigned without emitting Transfer. At the time of
///  any transfer, the approved address for that NFT (if any) is reset to none.
event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);

ERC1155:

/**
    @dev Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard).
    The `_operator` argument MUST be the address of an account/contract that is approved to make the transfer (SHOULD be msg.sender).
    The `_from` argument MUST be the address of the holder whose balance is decreased.
    The `_to` argument MUST be the address of the recipient whose balance is increased.
    The `_id` argument MUST be the token type being transferred.
    The `_value` argument MUST be the number of tokens the holder balance is decreased by and match what the recipient balance is increased by.
    When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address).
    When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address).        
*/
event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);

/**
    @dev Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard).      
    The `_operator` argument MUST be the address of an account/contract that is approved to make the transfer (SHOULD be msg.sender).
    The `_from` argument MUST be the address of the holder whose balance is decreased.
    The `_to` argument MUST be the address of the recipient whose balance is increased.
    The `_ids` argument MUST be the list of tokens being transferred.
    The `_values` argument MUST be the list of number of tokens (matching the list and order of tokens specified in _ids) the holder balance is decreased by and match what the recipient balance is increased by.
    When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address).
    When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address).                
*/
event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);

For CryptoPunks, though it does not meet the ERC721 protocol for NFT contracts, it has an exemplary role in advancing NFT development. Therefore, we have specifically adapted the CryptoPunks project.