Docs

ERC721Enumerable

import "@thirdweb-dev/contracts/eip/interface/IERC721Enumerable.sol";

View all of the NFTs owned by a specific wallet address by implementing the IERC721Enumerable interface.


View on GitHub

Usage

This is an example smart contract demonstrating how to inherit from this extension and override the functions to add (optional) custom functionality.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/eip/ERC721A.sol";
import "@thirdweb-dev/contracts/eip/interface/IERC721Enumerable.sol";

contract Contract is ERC721A, IERC721Enumerable {
    constructor(
        string memory _name,
        string memory _symbol
    )
        ERC721A(
            _name,
            _symbol
        )
    {}

    function tokenByIndex(uint256 _index) external view override returns (uint256) {
        // Your custom implementation here
    }

    function tokenOfOwnerByIndex(address _owner, uint256 _index) external view override returns (uint256) {
        // Your custom implementation here
    }
}

Base Contracts Implementing This Extension