title: Fetch all NFTs owned by wallet address with web3.js
body: <p>I am new to blockchain.</p>
  <p>I have done a little bit research and here's my steps to fetching a list of NFTs owned by certain wallet with web3.js</p>
  <pre><code>balance = ERC721.methods.balanceOf(walletAddress).call();
  objects = [];
  
  for (i = 0; i &lt; balance; i++) {
      tokens.push(await ERC721.methods.tokenOfOwnerByIndex(walletAddress, i).call());
  }
  
  for(i = 0; i &lt; tokens.length; i++){
      objects.push(await ERC721.methods.tokenURI(tokenIdList[i]).call());
  }
  </code></pre>
  <p>I can fetch a list of ERC721 token URI with the above methods but the perfomance is really poor. I am wondering how OpenSeas can achieve that with light speed performance on the same feature.</p>