@ankr.com/ankr.js

中文文档
0.7.0发布于 2026/08/27MITTypeScriptCommonJS构建来源已验证近 30 天下载 3255

Compact library for interacting with Ankr APIs.

原始使用文档
文档目录5 节
  1. Get started in 2 minutes
  2. Supported chains
  3. Available methods
  4. Usage
  5. About API keys

⚓️ ankr.js

Compact JavaScript library for interacting with Ankr's Advanced APIs.

Get started in 2 minutes

1. Install the package from npm

# with npm
npm install @ankr.com/ankr.js

# with yarn
yarn add @ankr.com/ankr.js

2. Initialize the provider

Note: to use Advanced API for free starting from 29.05.2023 you have to register on the platform.

Get your individual endpoint here https://www.ankr.com/rpc/advanced-api and provide it to the AnkrProvider constructor.

import { AnkrProvider } from '@ankr.com/ankr.js';

const provider = new AnkrProvider('YOUR_ENDPOINT');

3. Use the provider and call one of the supported methods

await provider.getNFTsByOwner({
  blockchain: 'eth',
  walletAddress: '0x0E11A192d574b342C51be9e306694C41547185DD',
});

Supported chains

ankr.js supports the following chains at this time:

Mainnet

  • Ethereum: "eth"
  • BNB Smart Chain: "bsc"
  • Polygon: "polygon"
  • Fantom: "fantom"
  • Arbitrum: "arbitrum"
  • Avalanche: "avalanche"
  • Syscoin NEVM: "syscoin"
  • Optimism: "optimism"
  • Polygon zkEVM: "polygon_zkevm"
  • Rollux: "rollux"
  • Base: "base"
  • Flare: "flare"
  • Gnosis Chain: "gnosis"
  • Scroll: "scroll"
  • Stellar: "stellar"
  • Linea: "linea"
  • Xai: "xai"
  • Telos: "telos"
  • Xlayer: "xlayer"

Testnet

  • Ethereum Sepolia: "eth_sepolia"
  • Ethereum Holesky: "eth_holesky"
  • Avalanche Fuji: "avalanche_fuji"
  • Polygon Amoy: "polygon_amoy"
  • Optimism Sepolia: "optimism_sepolia"
  • Base Sepolia: "base_sepolia"
  • Story Aeneid Testnet: "story_aeneid_testnet"

Appchain Testnet

  • Neura Devnet "neura_devnet"
  • Neura Testnet "neura_testnet_v1"
  • Incentiv Devnet "incentiv_devnet_v3"
  • Incentiv Testnet "incentiv_testnet"

Available methods

ankr.js supports the following methods:

Early Access

Token API

NFT API

Query API


Usage

getLogs

Get logs matching the filter.

const logs = async () => {
  return await provider.getLogs({
    blockchain: 'eth',
    fromBlock: 1181739,
    toBlock: 1181739,
    topics: [
      [],
      ['0x000000000000000000000000feb92d30bf01ff9a1901666c5573532bfa07eeec'],
    ],
    address: '0x3589d05a1ec4af9f65b0e5554e645707775ee43c',
    decodeLogs: false,
  });
};

getBlocks

Query data about blocks within a specified range.

const blocks = async () => {
  return await provider.getBlocks({
    blockchain: 'bsc',
    fromBlock: 100,
    toBlock: 200,
  });
};

getTransactionsByHash

Query data about transaction(s) by the transaction hash.

const transactions = async () => {
  return await provider.getTransactionsByHash({
    transactionHash:
      '0x82c13aaac6f0b6471afb94a3a64ae89d45baa3608ad397621dbb0d847f51196f',
    decodeTxData: true,
  });
};

getTransactionsByAddress

Query data about transactions of specified addresses.

const transactions = async () => {
  return await provider.getTransactionsByAddress({
      blockchain: 'bsc',
      fromBlock: 23593283,
      toBlock: 23593283,
      address: ['0x97242e3315c7ece760dc7f83a7dd8af6659f8c4c'],
      pageToken: '',
      pageSize: 10,
      descOrder: true,
      includeLogs: true,
  });
};

getAccountBalance

Get the coin and token balances of a wallet.

const balances = async () => {
  return await provider.getAccountBalance({
    blockchain: 'eth',
    walletAddress: '0xfa9019df60d3c710d7d583b2d69e18d412257617',
  });
};

getNFTsByOwner

Get data about all the NFTs (collectibles) owned by a wallet.

const nfts = async () => {
  return await provider.getNFTsByOwner({
    blockchain: 'eth',
    walletAddress: '0x0E11A192d574b342C51be9e306694C41547185DD',
    filter: [
      { '0x700b4b9f39bb1faf5d0d16a20488f2733550bff4': [] },
      { '0xd8682bfa6918b0174f287b888e765b9a1b4dc9c3': ['8937'] },
    ],
  });
};

getNFTMetadata

Get NFT's contract metadata.

const nftsMetadata = async () => {
  return await provider.getNFTMetadata({
      blockchain: 'avalanche', 
      contractAddress: '0x8d01c8ee82e581e55c02117a676b5bbd4734fabb', 
      tokenId: '23240',
      forceFetch: false
  });
};

getNFTHolders

Get NFT's holders.

const nftsHolders = async () => {
  return await provider.getNFTHolders({
      blockchain: 'arbitrum',
      contractAddress: '0xc36442b4a4522e871399cd717abdd847ab11fe88',
      pageSize: 1000,
      pageToken: '',
  });
};

getNftTransfers

Get NFT Transfers of specified address.

const nftTransfers = async () => {
  return await provider.getNftTransfers({
      blockchain: ['eth', 'bsc'],
      address: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045'],
      fromTimestamp: 1672563107,
      toTimestamp: 1672563107,
  });
};

getTokenHolders

Get the list of token holders for a given contract address.

const tokenHolders = async () => {
  return await provider.getTokenHolders({
    blockchain: 'eth',
    contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7',
  });
};

getTokenHoldersCount

Get current and historical data about the number of token holders for a given contract address.

const tokenHoldersCount = async () => {
  return await provider.getTokenHoldersCount({
    blockchain: 'eth',
    contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7',
  });
};

getCurrencies

Get a list of supported currencies for a given blockchain.

const currencies = async () => {
  return await provider.getCurrencies({ blockchain: 'fantom' });
};

getTokenPriceHistory

Get a list of history of the price for the given contract to a given timestamp.

const tokenPriceHistory = async () => {
  return await provider.getTokenPriceHistory({ 
      blockchain: 'eth',
      contractAddress: '0x50327c6c5a14dcade707abad2e27eb517df87ab5',
      toTimestamp: 1696970653,
      interval: 100,
      limit: 10,
  });
};

explainTokenPrice

Get a list of tokens and pools explaining how the price is calculated.

const tokenPriceExplanation = async () => {
  return await provider.explainTokenPrice({ 
      blockchain: 'eth',
      tokenAddress: '0x8290333cef9e6d528dd5618fb97a76f268f3edd4',
      blockHeight: 17463534,
  });
};

getTokenPrice

Get token price by contract.

const tokenPrice = async () => {
  return await provider.getTokenPrice({ 
      blockchain: 'eth',
      contractAddress: '',
  });
};

getTokenTransfers

Get token transfers of specified addresses.

const tokenTransfers = async () => {
  return await provider.getTokenTransfers({ 
      blockchain: 'eth',
      address: ['0xf16e9b0d03470827a95cdfd0cb8a8a3b46969b91'],
      fromTimestamp: 1674441035,
      toTimestamp: 1674441035,
      pageSize: 1,
      descOrder: true
  });
};

getBlockchainStats

Returns blockchain stats (num of txs, etc).

const blockchainStats = async () => {
  return await provider.getBlockchainStats({});
};

getInteractions

Returns on which chain address was interacting.

const interactions = async () => {
  return await provider.getInteractions({
      address: '0xF977814e90dA44bFA03b6295A0616a897441aceC',
  });
};

About API keys

Ankr is offering free access to Advanced API, however you have to register on Ankr platform to access it. Get your individual endpoint here https://www.ankr.com/rpc/advanced-api.

版本与发布记录

@ankr.com/ankr.js 共发布 24 个版本,首次发布于 2022/05/12;过去 12 个月发布了 1 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.7.0latest2026/08/272 个月前
0.6.12025/10/141.1 年前
0.6.02025/04/101.6 年前
0.6.0-alpha.0alpha2025/02/191.7 年前
0.5.22024/08/292 年前
0.5.12024/07/052 年前

关于 @ankr.com/ankr.js 的常见问题

@ankr.com/ankr.js 是什么?

Compact library for interacting with Ankr APIs.

如何安装 @ankr.com/ankr.js?

在项目目录运行 npm install @ankr.com/ankr.js,或使用 pnpm add / yarn add / bun add。

@ankr.com/ankr.js 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ankr.com/ankr.js 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@ankr.com/ankr.js 可以商用吗?

@ankr.com/ankr.js 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ankr.com/ankr.js 的下载量有多少?

根据 npm 官方下载统计,@ankr.com/ankr.js 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,255 次,日均约 109 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ankr.com/ankr.js 还在维护吗?

最新版本 0.7.0 发布于 2026/08/27(2 个月前);至今共发布 24 个版本,其中过去 12 个月发布了 1 个;首次发布于 2022/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。