Moralis NFT API

2022-05-10 15:07 更新

最強(qiáng)大的跨鏈 NFT API

完整文檔: https://github.com/nft-api/nft-api

什么是 NFT API?

NFT API 消除了使用 NFT 并將 NFT 集成到您的 dapp 中的所有困難。

使用 NFT 通常很困難,因?yàn)?nbsp;NFT 代幣標(biāo)準(zhǔn)沒有得到很好的遵循,當(dāng)你開始解析鏈上 NFT 數(shù)據(jù)時(shí)會(huì)出現(xiàn)很多邊緣情況。

這就是為什么 NFT API 旨在為跨不同區(qū)塊鏈的所有 NFT 代幣提供統(tǒng)一接口,這樣您就可以專注于您的 dapp,而無需運(yùn)行自己的 NFT 解析管道。

該 API 最重要的用例是獲取與以下相關(guān)的跨鏈數(shù)據(jù):

  • NFT Metadata
  • NFT Ownership data
  • NFT Transfer data
  • NFT Prices

NFT API 規(guī)范

鏈支持:

  • 以太坊 (ETH)
  • 幣安智能鏈 (BSC)
  • 多邊形 (MATIC)
  • 雪崩 (AVAX)
  • 幻影 (FTM)
  • 完全支持測試網(wǎng)。

端點(diǎn):

非常強(qiáng)大且快速的工具,用于基于元數(shù)據(jù)搜索(異步)獲取 NFT 數(shù)據(jù)。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值:十進(jìn)制。
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?q?(必需):搜索字符串參數(shù)
  • ?filter?(必需):搜索應(yīng)匹配的字段。 要查看整個(gè)元數(shù)據(jù),請(qǐng)將值設(shè)置為全局。 要獲得更好的響應(yīng)時(shí)間,您可以查看特定字段,例如名稱。 可用值:name; description; attributes; global; name,description; name,attributes; description,attributes; name,description,attributes

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = { q: "Pancake", chain: "bsc", filter: "name" };
const NFTs = await Moralis.Web3API.token.searchNFTs(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchSearchNFTs = async () => {
  const options = { q: "Pancake", chain: "bsc", filter: "name" };
  const NFTs = await Web3Api.token.searchNFTs(options);
  console.log(NFTs);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/search?chain=bsc&format=decimal&q=Pancake&filter=name' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchSearchNFTs()
  {
    NftMetadataCollection nft = await MoralisInterface.GetClient().Web3Api.Token.SearchNFTs(q: "Pancake", ChainList.bsc, filter: "name");
    print(nft.ToJson());
  }

示例結(jié)果

[
  {
    token_id: "124436",
    token_address: "0x3afa102b264b5f79ce80fed29e0724f922ba57c7",
    token_uri:
      "https://ipfs.moralis.io:2053/ipfs/QmVAD8v4s2SXF8FgjePqMdQ2GV5hE2isZnzxcrA36XcSDA/metadata.json",
    metadata:
      '{"name":"Pancake","description":"The dessert series 1","image":"ipfs://QmNQFXCZ6LGzvpMW9Q5PWbCrEnLknQrPwr2r8pbQAgzQ9A/4863BD6B-6C92-4B96-BF80-8020B2F7C3A5.jpeg"}',
    contract_type: "ERC721",
    token_hash: "d03fe436e972bf9215d7bb8c64c4c556",
    synced_at: null,
    created_at: "2021-09-19T10:36:16.610Z",
  },
];

全局搜索

const options = { q: "bored ape", chain: "bsc", filter: "global" };
const NFTs = await Moralis.Web3API.token.searchNFTs(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchSearchNFTs = async () => {
  const options = { q: "bored ape", chain: "bsc", filter: "global" };
  const NFTs = await Web3Api.token.searchNFTs(options);
  console.log(NFTs);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/search?chain=bsc&format=decimal&q=Pancake&filter=global' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchSearchNFTs()
  {
    NftMetadataCollection nft = await MoralisInterface.GetClient().Web3Api.Token.SearchNFTs(q: "Pancake", ChainList.bsc, filter: "global");
    print(nft.ToJson());
  }

按描述、屬性搜索

const options = {
  q: "loves bananas",
  chain: "bsc",
  filter: "description,attributes",
};
const NFTs = await Moralis.Web3API.token.searchNFTs(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchSearchNFTs = async () => {
  const options = {
    q: "loves bananas",
    chain: "bsc",
    filter: "description,attributes",
  };
  const NFTs = await Web3Api.token.searchNFTs(options);
  console.log(NFTs);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/search?chain=bsc&format=decimal&q=Pancake&filter=description%2Cattributes' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchSearchNFTs()
  {
    NftMetadataCollection nft = await MoralisInterface.GetClient().Web3Api.Token.SearchNFTs(q: "Pancake", ChainList.bsc, filter: "description,attributes");
    print(nft.ToJson());
  }

示例結(jié)果

"result": [
    {
      token_id: "854645",
      token_address: "0xdf7952b35f24acf7fc0487d01c8d5690a60dba07",
      token_uri: "https://ipfs.moralis.io:2053/ipfs/QmYUHFzEvPsoseNWcHtqE18Ao8HPBRktLPoDMKpdDYvHQV",
      metadata: "{\n  \"name\": \"Pancake Christmas 2021\",\n  \"description\": \"A great collab between Chef Cecy and the winner of the #PancakeChristmas event. Merry Christmas, and Happy New Year!\",\n  \"mp4_url\": \"ipfs://QmXYFMtYVBJBKjgGwf6MmrKhVtNdbVjLQCPLCu99hpAu47/christmas-2021.mp4\",\n  \"gif_url\": \"ipfs://QmXYFMtYVBJBKjgGwf6MmrKhVtNdbVjLQCPLCu99hpAu47/christmas-2021.gif\",\n  \"webm_url\": \"ipfs://QmXYFMtYVBJBKjgGwf6MmrKhVtNdbVjLQCPLCu99hpAu47/christmas-2021.webm\",\n  \"image\": \"ipfs://QmXYFMtYVBJBKjgGwf6MmrKhVtNdbVjLQCPLCu99hpAu47/christmas-2021.png\",\n  \"attributes\": {\n    \"bunnyId\": \"23\"\n  }\n}",
      is_valid: 1,
      syncing: 2,
      frozen: 0,
      resyncing: 0,
      synced_at: "2022-01-02T19:50:58.391Z",
      contract_type: "ERC721",
      token_hash: "fffedca3037a8dc03483193b99fa9736",
      batch_id: null,
      metadata_name: "\"Pancake Christmas 2021\"",
      metadata_description: "\"A great collab between Chef Cecy and the winner of the #PancakeChristmas event. Merry Christmas, and Happy New Year!\"",
      metadata_attributes: "{\"bunnyId\":\"23\"}",
      block_number_minted: "14022006",
      opensea_lookup: null,
      minter_address: "0xd338d2d63b55cbb059162394544a473156d513bd",
      transaction_minted: "0xd7d0651c5bdf168c83f7a7e6570345bf73b11aabee3da7a6a3126034a77e382d",
      frozen_log_index: null,
      imported: null,
      createdAt: "2022-01-02T19:49:52.234Z",
      updatedAt: "2022-01-02T19:49:52.234Z"
    }

從當(dāng)前用戶或地址獲取所有 NFT。 支持 ERC721 和 ERC1155。 返回具有 NFT 對(duì)象數(shù)量和 NFT 對(duì)象數(shù)組(異步)的對(duì)象。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?address?(可選):用戶地址(即 0x1a2b3x...)。 如果指定,則附加到查詢的用戶將被忽略,而是使用地址。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

// get NFTs for current user on Mainnet
const userEthNFTs = await Moralis.Web3API.account.getNFTs();

// get testnet NFTs for user
const testnetNFTs = await Moralis.Web3API.account.getNFTs({ chain: "ropsten" });

// get polygon NFTs for address
const options = {
  chain: "polygon",
  address: "0x75e3e9c92162e62000425c98769965a76c2e387a",
};
const polygonNFTs = await Moralis.Web3API.account.getNFTs(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTs = async () => {
  // get NFTs for current user on Mainnet
  const userEthNFTs = await Web3Api.account.getNFTs();
  console.log(userEthNFTs);
  // get testnet NFTs for user
  const testnetNFTs = await Web3Api.Web3API.account.getNFTs({
    chain: "ropsten",
  });
  console.log(testnetNFTs);

  // get polygon NFTs for address
  const options = {
    chain: "polygon",
    address: "0x75e3e9c92162e62000425c98769965a76c2e387a",
  };
  const polygonNFTs = await Web3Api.account.getNFTs(options);
};
console.log(polygonNFTs);
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/0x75e3e9c92162e62000425c98769965a76c2e387a/nft?chain=polygon&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTs()
  {
    NftOwnerCollection polygonNFTs = await MoralisInterface.GetClient().Web3Api.Account.GetNFTs("0x75e3e9c92162e62000425c98769965a76c2e387a".ToLower(), ChainList.polygon);
    print(polygonNFTs.ToJson());
  }

示例結(jié)果

[
  {
    token_address: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    token_id: "15",
    contract_type: "ERC721",
    owner_of: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    block_number: "88256",
    block_number_minted: "88256",
    token_uri: "string",
    metadata: "string",
    synced_at: "string",
    amount: "1",
    name: "CryptoKitties",
    symbol: "RARI",
  },
];

返回具有指定合約的 NFT 計(jì)數(shù)的對(duì)象和屬于指定合約的給定地址的 NFT 數(shù)組(異步)。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值:十進(jìn)制。
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?order?(可選):要排序的字段以及是否應(yīng)按升序或降序排序。
  • ?address?(可選):給定令牌的所有者(即 0x1a2b3x...)。 如果指定,則附加到查詢的用戶將被忽略,而是使用地址。
  • ?token_address?(必填): 合約地址

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  chain: "polygon",
  address: "0x75e3e9c92162e62000425c98769965a76c2e387a",
  token_address: "0x2953399124F0cBB46d2CbACD8A89cF0599974963",
};
const polygonNFTs = await Moralis.Web3API.account.getNFTsForContract(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTsForContract = async () => {
  const options = {
    chain: "polygon",
    address: "0x75e3e9c92162e62000425c98769965a76c2e387a",
    token_address: "0x2953399124F0cBB46d2CbACD8A89cF0599974963",
  };
  const polygonNFTs = await Web3Api.account.getNFTsForContract(options);
  console.log(polygonNFTs);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/0x75e3e9c92162e62000425c98769965a76c2e387a/nft/0x2953399124F0cBB46d2CbACD8A89cF0599974963?chain=polygon&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: My-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTsForContract()
  {
    NftOwnerCollection polygonNFTs = await MoralisInterface.GetClient().Web3Api.Account.GetNFTsForContract("0x3d6c0e79a1239df0039ec16Cc80f7A343b6C530e".ToLower(),"0x2953399124F0cBB46d2CbACD8A89cF0599974963", ChainList.polygon);
    print(polygonNFTs.ToJson());
  }
使用 ?token_address ?參數(shù)僅獲取特定合約的結(jié)果。
注意結(jié)果將包括所有索引的 ?NFT?。
任何包含 ?token_address ?參數(shù)的請(qǐng)求都將在第一次被請(qǐng)求時(shí)啟動(dòng)該 ?NFT ?集合的索引過程。

示例結(jié)果

{
  total: 5,
  page: 0,
  page_size: 1,
  cursor: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3aGVyZSI6eyJ0b2tlbl9hZGRyZXNzIjoiMHgyOTUzMzk5MTI0ZjBjYmI0NmQyY2JhY2Q4YTg5Y2YwNTk5OTc0OTYzIiwib3duZXJfb2YiOiIweDc1ZTNlOWM5MjE2MmU2MjAwMDQyNWM5ODc2OTk2NWE3NmMyZTM4N2EifSwibGltaXQiOjEsIm9mZnNldCI6MSwib3JkZXIiOltbInRyYW5zZmVyX2luZGV4IiwiREVTQyJdXSwicGFnZSI6MSwiaWF0IjoxNjQ2NDkxMzYzfQ.2emXTUoQYAV5dcC-05fkX5bHuuCHgL8aSQ2P9nqJPs0",
  result: [
    {
      "token_address": "0x2953399124f0cbb46d2cbacd8a89cf0599974963",
      "token_id": "54882136101329053367331551663964422650505490251725779255107807133728757514309",
      "block_number_minted": "22364568",
      "owner_of": "0x75e3e9c92162e62000425c98769965a76c2e387a",
      "block_number": "22728905",
      "amount": "1",
      "contract_type": "ERC1155",
      "name": "OpenSea Collections",
      "symbol": "OPENSTORE",
      "token_uri": "https://api.opensea.io/api/v2/metadata/matic/0x2953399124F0cBB46d2CbACD8A89cF0599974963/0x7956302fe62df98c5c7f35354a2d03eb8b160f0e000000000000020000000045",
      "metadata": null,
      "synced_at": "2021-12-10T17:04:09.775Z",
      "is_valid": 0,
      "syncing": 2,
      "frozen": 0
    }
  ],
  status: "SYNCED"
}

獲取 ?NFT ?轉(zhuǎn)賬。 返回具有 ?NFT ?傳輸次數(shù)和 ?NFT ?傳輸數(shù)組(異步)的對(duì)象。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值:十進(jìn)制。
  • ?offset?(可選):偏移量。
  • ?direction?(可選):傳輸方向。 可用值:both、to、from 。 默認(rèn)值:兩者。
  • ?limit?(可選):限制。
  • ?order?(可選):要排序的字段以及是否應(yīng)按升序或降序排序。
  • ?address?(可選):用戶地址(即 0x1a2b3x...)。 如果指定,則附加到查詢的用戶將被忽略,而是使用地址。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

// get mainnet NFT transfers for the current user
const transfersNFT = await Moralis.Web3API.account.getNFTTransfers();

// get BSC NFT transfers for a given address
// with most recent transactions appearing first
const options = {
  chain: "polygon",
  address: "0x75e3e9c92162e62000425c98769965a76c2e387a",
  limit: "5",
};
const transfersNFT = await Moralis.Web3API.account.getNFTTransfers(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTTransfers = async () => {
  // get mainnet NFT transfers for the current user
  const transfersNFT = await Web3Api.account.getNFTTransfers();
  console.log(transfersNFT);
  // get BSC NFT transfers for a given address
  // with most recent transactions appearing first
  const options = {
    chain: "polygon",
    address: "0x75e3e9c92162e62000425c98769965a76c2e387a",
    limit: "5",
  };
  const bscTransfersNFT = await Web3Api.account.getNFTTransfers(options);
  console.log(bscTransfersNFT);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/0x75e3e9c92162e62000425c98769965a76c2e387a/nft/transfers?chain=polygon&format=decimal&direction=both&limit=5' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTTransfers()
  {
    NftTransferCollection BSCnfttransfers = await MoralisInterface.GetClient().Web3Api.Account.GetNFTTransfers("0x3d6c0e79a1239df0039ec16Cc80f7A343b6C530e".ToLower(), ChainList.bsc);
    print(BSCnfttransfers.ToJson());
  }
使用 ?token_address ?參數(shù)僅獲取特定合約的結(jié)果。
注意結(jié)果將包括所有索引的 ?NFT?。
任何包含 ?token_address ?參數(shù)的請(qǐng)求都將在第一次被請(qǐng)求時(shí)啟動(dòng)該 ?NFT ?集合的索引過程。

示例結(jié)果

[
  {
    token_address: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    token_id: "15",
    from_address: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    to_address: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    amount: "1",
    contract_type: "ERC721",
    block_number: "88256",
    block_timestamp: "2021-06-04T16:00:15",
    block_hash: "string",
    transaction_hash: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    transaction_type: "string",
    transaction_index: "string",
    log_index: 0,
  },
];

針對(duì)給定的代幣合約地址(異步)返回一個(gè)包含多個(gè) NFT 的對(duì)象和一個(gè)包含 NFT 元數(shù)據(jù)(名稱、符號(hào))的數(shù)組。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值:十進(jìn)制。
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?address?(必填):代幣合約的地址。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7dE3085b3190B3a787822Ee16F23be010f5F8686",
  chain: "eth",
};
const NFTs = await Moralis.Web3API.token.getAllTokenIds(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchAllTokenIds = async () => {
  const options = {
    address: "0x7dE3085b3190B3a787822Ee16F23be010f5F8686",
    chain: "eth",
  };
  const NFTs = await Web3Api.token.getAllTokenIds(options);
  console.log(NFTs);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7dE3085b3190B3a787822Ee16F23be010f5F8686?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchAllTokenIds()
  {
    NftCollection nfts = await MoralisInterface.GetClient().Web3Api.Token.GetAllTokenIds(address: "0x7dE3085b3190B3a787822Ee16F23be010f5F8686" , ChainList.eth);
    print(nfts.ToJson());
  }

示例結(jié)果

[
  {
    token_address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    token_id: "728",
    amount: "1",
    contract_type: "ERC721",
    name: "Baby Ape Mutant Club",
    symbol: "BAMC",
    token_uri:
      "https://gateway.moralisipfs.com/ipfs/QmajSqgxY3cWBgBeRm38vasJAcTit1kp5EwqVHxszJYgUC/728.json",
    metadata:
      '{\n  "name": "Baby Mutant #728",\n  "description": "",\n  "image": "ipfs://QmPUDVLP9W1pWpCTpGvpPbMu4nVpCuu2A7M6tQovDpVDoD/728.png",\n  "dna": "172bef0b78106072e4eacb26db57ae70fb17b37b",\n  "edition": 728,\n  "date": 1645023568505,\n  "artist": "Skurvydogg",\n  "attributes": [\n    {\n      "trait_type": "BackGrounds",\n      "value": "Putrid_Purple"\n    },\n    {\n      "trait_type": "Furs",\n      "value": "Red_rum"\n    },\n    {\n      "trait_type": "Eyes",\n      "value": "Robot_M1"\n    },\n    {\n      "trait_type": "Hats",\n      "value": "Bunny_Ears_M2"\n    },\n    {\n      "trait_type": "Mouths",\n      "value": "Xenomorf_M1"\n    }\n  ]\n}',
    synced_at: "2022-03-05T02:29:18.441Z",
  },
];

針對(duì)給定的代幣合約地址(異步)返回一個(gè)包含 NFT 傳輸數(shù)量的對(duì)象和一個(gè)包含 NFT 傳輸?shù)臄?shù)組。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值為十進(jìn)制。
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?address?(必填): 合約地址

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  chain: "eth",
};
const nftTransfers = await Moralis.Web3API.token.getContractNFTTransfers(
  options
);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchContractNFTTransfers = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    chain: "eth",
  };
  const nftTransfers = await Web3Api.token.getContractNFTTransfers(options);
  console.log(NFTs);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/1/transfers?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchContractNFTTransfers()
  {
    NftTransferCollection nftTransers = await MoralisInterface.GetClient().Web3Api.Token.GetContractNFTTransfers(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", ChainList.eth);
    print(nftTransfers.ToJson());
  }

示例結(jié)果

[
  {
    block_number: "14238158",
    block_timestamp: "2022-02-19T18:49:02.000Z",
    block_hash:
      "0x8124f4a126996d306a90fa00b871b6ed9669a1a9806106b34fa28f3de61e5f8b",
    transaction_hash:
      "0x2db36892fc17bf99a3f6dd8a639f3c704f772858f3961cbcd26b3a42a2cd561e",
    transaction_index: 162,
    log_index: 419,
    value: "0",
    contract_type: "ERC721",
    transaction_type: "Single",
    token_address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    token_id: "1",
    from_address: "0x0000000000000000000000000000000000000000",
    to_address: "0x324fb4a58674758e00c3a49409b815de1398bfe8",
    amount: "1",
    verified: 1,
    operator: null,
  },
];

返回最近 x 天的 NFT 代幣合約價(jià)格最低的對(duì)象(僅以 ETH 支付的交易)

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?days?(可選):查找最低價(jià)格的天數(shù) 如果未提供,則默認(rèn)為 7 天
  • ?marketplace?(可選):獲取交易的市場(目前僅支持 opensea)。
  • ?address?(必填):合約地址(即 0x1a2b3x...)。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  days: "3",
};
const NFTLowestPrice = await Moralis.Web3API.token.getNFTLowestPrice(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTLowestPrice = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    days: "3",
  };
  const NFTLowestPrice = await Web3Api.token.getNFTLowestPrice(options);
  console.log(NFTLowestPrice);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/lowestprice?chain=eth&days=3&marketplace=opensea' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTLowestPrice()
  {
    Trade NFTLowestPrice = await MoralisInterface.GetClient().Web3Api.Token.GetNFTLowestPrice(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", ChainList.eth, days: 2);
    print(NFTLowestPrice.ToJson());
  }

示例結(jié)果

[
  {
    transaction_hash:
      "0xda5f3337eb74b56e99aebb5d9ebfc1e82b1c0aacc3b9b7cc606d4112ba12801d",
    transaction_index: "168",
    token_ids: ["254"],
    seller_address: "0x8a04cea099e2d2886aea08e33446b5a52b9cf900",
    buyer_address: "0xcf806faa913b3ac7bcb7b57b1199411a76d96646",
    token_address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    marketplace_address: "0x7be8076f4ea4a4ad08075c2508e481d6c946d12b",
    price: "0",
    block_timestamp: "2022-02-26T17:19:23.000Z",
    block_number: "14283046",
    block_hash:
      "0x997713ef27375f735f7017824958c0f0093236fe7515f8759bead1ce21d554fb",
  },
];

返回給定合約(異步)的合約級(jí)別元數(shù)據(jù)(名稱、符號(hào)、基本令牌 uri)。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?address?(必填):代幣合約的地址。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7dE3085b3190B3a787822Ee16F23be010f5F8686",
  chain: "eth",
};
const metaData = await Moralis.Web3API.token.getNFTMetadata(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTMetadata = async () => {
  const options = {
    address: "0x7dE3085b3190B3a787822Ee16F23be010f5F8686",
    chain: "eth",
  };
  const metaData = await Web3Api.token.getNFTMetadata(options);
  console.log(metaData);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7dE3085b3190B3a787822Ee16F23be010f5F8686/metadata?chain=eth' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTMetadata()
  {
    NftContractMetadata metadata = await MoralisInterface.GetClient().Web3Api.Token.GetNFTMetadata(address: "0x7dE3085b3190B3a787822Ee16F23be010f5F8686", ChainList.eth);
    print(metadata.ToJson());
  }

對(duì)尚未索引的合約地址的請(qǐng)求將自動(dòng)啟動(dòng)該 ?NFT ?集合的索引過程

示例結(jié)果

{
  "token_address": "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  "name": "Baby Ape Mutant Club",
  "symbol": "BAMC",
  "contract_type": "ERC721",
  "synced_at": "2022-02-19"
}

返回具有多個(gè) NFT 所有者的對(duì)象和具有給定代幣合約地址(異步)的 NFT 元數(shù)據(jù)(名稱、符號(hào))的數(shù)組。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值:十進(jìn)制。
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?address?(必填): 合約地址

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  chain: "eth",
};
const nftOwners = await Moralis.Web3API.token.getNFTOwners(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTOwners = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    chain: "eth",
  };
  const nftOwners = await Web3Api.token.getNFTOwners(options);
  console.log(nftOwners);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/owners?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTOwners()
  {
    NftOwnerCollection nftowners = await MoralisInterface.GetClient().Web3Api.Token.GetNFTOwners(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", ChainList.eth);
    print(nftowners.ToJson());
  }

確保在 ?token_id ?之類的列上包含排序參數(shù),以獲得一致的分頁結(jié)果

對(duì)尚未索引的合約地址的請(qǐng)求將自動(dòng)啟動(dòng)該 NFT 集合的索引過程

示例結(jié)果

[
  {
    token_address: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    token_id: "15",
    contract_type: "ERC721",
    owner_of: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    block_number: "88256",
    block_number_minted: "88256",
    token_uri: "string",
    metadata: "string",
    synced_at: "string",
    amount: "1",
    name: "CryptoKitties",
    symbol: "RARI",
  },
];

返回給定合約和市場的 NFT 交易對(duì)象

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。有效值列在支持的鏈上。默認(rèn)值 Eth。
  • ?from_date?(可選):獲取交易的日期(momentjs 接受的任何格式)。提供參數(shù) 'from_block' 或 'from_date' 如果提供了 'from_date' 和 'from_block',則將使用 'from_block'。
  • ?to_date?(可選):獲取到此日期的交易(momentjs 接受的任何格式)。提供參數(shù) 'to_block' 或 'to_date' 如果提供了 'to_date' 和 'to_block',將使用 'to_block'。
  • ?from_block?(可選):從哪里獲得交易的最小區(qū)塊號(hào)提供參數(shù)'from_block'或'from_date'如果提供'from_date'和'from_block',將使用'from_block'。
  • ?to_block?(可選):獲取交易的最大區(qū)塊數(shù)。提供參數(shù) 'to_block' 或 'to_date' 如果提供了 'to_date' 和 'to_block',將使用 'to_block'。
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?marketplace?(可選):獲取交易的市場(目前僅支持 opensea)。
  • ?address?(必填):合約地址(即 0x1a2b3x...)。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  limit: "10",
  chain: "eth",
};
const NFTTrades = await Moralis.Web3API.token.getNFTTrades(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchNFTTrades = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    limit: "10",
    chain: "eth",
  };
  const NFTTrades = await Web3Api.token.getNFTTrades(options);
  console.log(NFTTrades);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/trades?chain=eth&marketplace=opensea' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchNFTTrades()
  {
    TradeCollection trades = await MoralisInterface.GetClient().Web3Api.Token.GetNFTTrades(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", ChainList.eth, limit: 10);
    print(trades.ToJson());
  }

示例結(jié)果

[
  {
    transaction_hash:
      "0x4de0bcef1450492bd5c2e7693cf644c40005868d0dcc8a7a50a80ef2efa88d1e",
    transaction_index: "164",
    token_ids: ["16404"],
    seller_address: "0xbae90f486d751f133702655627ce599249cd26b8",
    buyer_address: "0x8795e90de359c1e0bf2579646486f7f12f270d2f",
    token_address: "0xdf7952b35f24acf7fc0487d01c8d5690a60dba07",
    marketplace_address: "0x7be8076f4ea4a4ad08075c2508e481d6c946d12b",
    price: "280000000000000000",
    price_token_address: null,
    block_timestamp: "2021-05-09T23:00:25.000Z",
    block_number: "7281522",
    block_hash:
      "0xe870c197b0c614e055f4de5b264bc7c69eafc93a6d0ce300309de444b2ff7e3a",
  },
];

返回?cái)?shù)據(jù),包括給定合約地址的給定令牌 id 的完全解析的元數(shù)據(jù)(異步)。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值為十進(jìn)制。
  • ?address?(必填): 合約地址
  • ?token_id?(必填):token的id

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  token_id: "1",
  chain: "eth",
};
const tokenIdMetadata = await Moralis.Web3API.token.getTokenIdMetadata(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchTokenIdMetadata = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    token_id: "1",
    chain: "eth",
  };
  const tokenIdMetadata = await Web3Api.token.getTokenIdMetadata(options);
  console.log(tokenIdMetadata);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/1?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchTokenIdMetadata()
  {
    Nft tokenIdMetadata = await MoralisInterface.GetClient().Web3Api.Token.GetTokenIdMetadata(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", tokenId: "1", ChainList.eth);
    print(tokenIdMetadata.ToJson());
  }

示例結(jié)果

{
  token_address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  token_id: "1",
  block_number_minted: "14238158",
  owner_of: "0x324fb4a58674758e00c3a49409b815de1398bfe8",
  block_number: "14238158",
  amount: "1",
  contract_type: "ERC721",
  name: "Baby Ape Mutant Club",
  symbol: "BAMC",
  token_uri: "https://ipfs.moralis.io:2053/ipfs/QmYuHVS98nZxzYmuk9E6HA1TNr2W6PpV4fvE4MDfCFgfCP",
  metadata: "{\n  \"name\": \"Baby Ape Mutant Club\",\n  \"description\": \"Wait for reveal\",\n  \"image\": \"ipfs://QmPS5CMBd9Zwidies964iHb9hcdDmXZkWBGZyaJ9c1Gmif\"\n}\n",
  synced_at: "2022-02-19T18:50:43.217Z",
  is_valid: 1,
  syncing: 2,
  frozen: 0
}

返回一個(gè)包含 NFT 傳輸次數(shù)的對(duì)象和一個(gè)包含給定合約集合中所有 NFT 項(xiàng)目所有者的數(shù)組(異步)。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值為十進(jìn)制
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?address?(必填):合約地址。
  • ?token_id?(必填):token的id。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  token_id: "1",
  chain: "eth",
};
const tokenIdOwners = await Moralis.Web3API.token.getTokenIdOwners(options);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchTokenIdOwners = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    token_id: "1",
    chain: "eth",
  };
  const tokenIdOwners = await Web3Api.token.getTokenIdOwners(options);
  console.log(tokenIdOwners);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/1/owners?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchTokenIdOwners()
  {
    NftOwnerCollection tokenIdOwners = await MoralisInterface.GetClient().Web3Api.Token.GetTokenIdOwners(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", tokenId: "1" , ChainList.eth);
    print(tokenIdOwners.ToJson());
  }

示例結(jié)果

[
  {
    token_address: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    token_id: "15",
    contract_type: "ERC721",
    owner_of: "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
    block_number: "88256",
    block_number_minted: "88256",
    token_uri: "string",
    metadata: "string",
    synced_at: "string",
    amount: "1",
    name: "CryptoKitties",
    symbol: "RARI",
  },
];

返回一個(gè)包含 NFT 傳輸次數(shù)的對(duì)象和一個(gè)包含所有 NFT 傳輸?shù)臄?shù)組(按令牌 ID(異步))。

選項(xiàng):

  • ?chain?(可選):從中獲取數(shù)據(jù)的區(qū)塊鏈。 有效值列在支持的鏈上。 默認(rèn)值 Eth。
  • ?format?(可選):token id 的格式。 可用值:十進(jìn)制、十六進(jìn)制。 默認(rèn)值為十進(jìn)制
  • ?offset?(可選):偏移量。
  • ?limit?(可選):限制。
  • ?address?(必填):合約地址。
  • ?token_id?(必填):token的id。

你可以使用?JS?、?React?、?curl?、?Unity?來實(shí)現(xiàn)

const options = {
  address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
  token_id: "1",
  chain: "eth",
};
const transfers = await Moralis.Web3API.token.getWalletTokenIdTransfers(
  options
);
import React from "react";
import { useMoralisWeb3Api } from "react-moralis";

const Web3Api = useMoralisWeb3Api();

const fetchWalletTokenIdTransfers = async () => {
  const options = {
    address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    token_id: "1",
    chain: "eth",
  };
  const transfers = await Web3Api.token.getWalletTokenIdTransfers(options);
  console.log(transfers);
};
curl -X 'GET' \
  'https://deep-index.moralis.io/api/v2/nft/0x7de3085b3190b3a787822ee16f23be010f5f8686/1/transfers?chain=eth&format=decimal' \
  -H 'accept: application/json' \
  -H 'X-API-Key: MY-API-KEY'
using System.Collections.Generic;
using Moralis.Web3Api.Models;
using MoralisWeb3ApiSdk;

  public async void fetchWalletTokenIdTransfers()
  {
    NftTransferCollection transfers = await  MoralisInterface.GetClient().Web3Api.Token.GetWalletTokenIdTransfers(address: "0x7de3085b3190b3a787822ee16f23be010f5f8686", tokenId: "1", ChainList.eth);
    print(transfers.ToJson());
  }

示例結(jié)果

[
  {
    block_number: "14238158",
    block_timestamp: "2022-02-19T18:49:02.000Z",
    block_hash:
      "0x8124f4a126996d306a90fa00b871b6ed9669a1a9806106b34fa28f3de61e5f8b",
    transaction_hash:
      "0x2db36892fc17bf99a3f6dd8a639f3c704f772858f3961cbcd26b3a42a2cd561e",
    transaction_index: 162,
    log_index: 419,
    value: "0",
    contract_type: "ERC721",
    transaction_type: "Single",
    token_address: "0x7de3085b3190b3a787822ee16f23be010f5f8686",
    token_id: "1",
    from_address: "0x0000000000000000000000000000000000000000",
    to_address: "0x324fb4a58674758e00c3a49409b815de1398bfe8",
    amount: "1",
    verified: 1,
    operator: null,
  },
];


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)