Bitverse
Home
  • Wallet Guide
    • 1.Introduction
    • 2.Why Bitverse wallet
    • 3.Getting Started
  • DEVELOPERs
    • 1.White Paper
    • 2.Wallet SDK Integration
      • 2.1 Flutter SDK
        • Integration Architecture
        • Bridge API
        • Develop Guide
        • Example
        • Integration Case
      • 2.2 Deeplink
        • Android
        • iOS
        • NFT Query
    • 3.H5 Wallet Integration
    • 4.Plugin Wallet Integration
    • 5.Wallet APIs
  • COMMON PROBLEMS
    • 1.What Is a Decentralized Wallet?
    • 2.What is MPC wallet?
    • 3.How to prevent DApp Approve scams?
    • 4.What Is the Miner Fee?
Powered by GitBook
On this page
  • Initialize the contract object
  • Query NFT Count of ERC1155
  • Query NFT Metadata of ERC1155
  • Query NFT Count of ERC721
  • Query NFT Metadata of ERC721
  1. DEVELOPERs
  2. 2.Wallet SDK Integration
  3. 2.2 Deeplink

NFT Query

Query NFT assets through web3.js library.

PreviousiOSNext3.H5 Wallet Integration

Last updated 2 years ago

Initialize the contract object

var Contract = require('web3-eth-contract');
Contract.setProvider('wss://polygon-mainnet.blastapi.io/1160f5ab-4dfa-4ac1-aec4-12c7214ee252');
//jsonInterface:Contract ABI,address:Contract Address
var myContract = new Contract(jsonInterface,address);

JsonInterface can be viewed in the blockchain browser, such as the polygon example:

Query NFT Count of ERC1155

//walletAddress:Wallet Address,tokenId:TokenId of ERC1155 NFT 
myContract.methods["balanceOf"](walletAddress,tokenId).call({}) 
    .then(function(result){ 
    ///Return the number of tokenIds held
});

Example:

const myFirstPromise = new Promise((resolve, reject) => {
    myContract.methods["balanceOf"]("0xa9e9412AE9761B6c8AF6Bc76498208F773c5aEc3",11).call({})
    .then(function(result){ 
    if(result >= 1){
        resolve(true);
    }else{
        resolve(false);
    }
    });
});

myFirstPromise.then((hasNFT) => {
    console.log(`${hasNFT}`);
})

Query NFT Metadata of ERC1155

const mySecondPromise = new Promise((resolve, reject) => {
    myContract.methods["uri"](tokenId).call({})
    .then(function(result){
        resolve(result);
    });
});

Example:

const mySecondPromise = new Promise((resolve, reject) => {
    myContract.methods["uri"](11).call({})
    .then(function(result){//result uri of metadata
        resolve(result);
    });
});

mySecondPromise.then((result) => {
    console.log(result);//return:https://static.bitverse.zone/metadata/WorldcupChampion/11.json
})

Parsing Metadata Result from URI:https://static.bitverse.zone/metadata/WorldcupChampion/11.json

{
    "name": "Bit - Qatar(QA)",
    "description": "Bit - Qatar(QA)",
    "image": "https://static.bitverse.zone/wordcup/Qatar.png"
}

Query NFT Count of ERC721

myContract.methods["balanceOf"](walletAddress).call({}) 
    .then(function(result){ 
    if(result >= 1){
        resolve(true);
    }else{
        resolve(false);
    }
    });
});

myFirstPromise.then((hasNFT) => {
    console.log(`${hasNFT}`);
})

Example:

const myFirstPromise = new Promise((resolve, reject) => {
    myContract.methods["balanceOf"]("0xa9e9412AE9761B6c8AF6Bc76498208F773c5aEc3").call({})
    .then(function(result){ 
    if(result >= 1){
        resolve(true);
    }else{
        resolve(false);
    }
    });
});

myFirstPromise.then((hasNFT) => {
    console.log(`${hasNFT}`);
})

Query NFT Metadata of ERC721

const mySecondPromise = new Promise((resolve, reject) => {
    myContract.methods["tokenUri"](tokenId).call({})
    .then(function(result){
        resolve(result);
    });
});

mySecondPromise.then((result) => {
    console.log(result);
})

Example:

const mySecondPromise = new Promise((resolve, reject) => {
    myContract.methods["tokenUri"](2061).call({})
    .then(function(result){
        resolve(result);
    });
});

mySecondPromise.then((result) => {
    console.log(result);//return metadata uri:https://static.bitverse.zone/metadata/GenesisNFT/bitverse
})

Parsing Metadata Results from URI: https://static.bitverse.zone/metadata/GenesisNFT/bitverse

{
    "name": "BitVerse Genesis",
    "description": "BitVerse Genesis NFT is linked to user’s Bitverse wallet address with plenty of benefits and privileges like - Free-mint NFT, airdrops, discounts in coming campaigns or activities on Bitverse",
    "image": "https://static.bitverse.zone/genesis/bitverse.webp"
}