Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

Polygon MATIC API:开发者应该了解什么?

摘要

Polygon MATIC API 是指开发者用于与 Polygon PoS 链交互的一组接口,包括用于读写区块链数据的 JSON-RPC 端点。本指南解释了不同类型的 API——从原始 RPC 到 SDK 和索引器——以及如何为你的应用选择正确的 API。

快速决策指南:你需要哪个 Polygon API?

在深入研究端点和 SDK 之前,先了解 Polygon API 的概况会有所帮助。“Polygon MATIC API”这个术语可能指代多种不同的东西,选错会浪费工程时间。

如果你需要...使用这个示例
读取余额、发送交易、调用合约JSON-RPC 端点eth_getBalance, eth_sendRawTransaction
与 Polygon 桥交互(旧版)Matic.js SDKposClient.erc20(...)
查询历史余额、代币持有者或复杂分析索引 API(例如 Bitquery)GraphQL 查询余额
转移稳定币或构建支付流程支付 API(例如 Chaingateway)REST 调用发送 USDC

对于大多数 dApp 开发者,原始 JSON-RPC 端点是基础。它提供完全控制,并可与任何以太坊工具(ethers、viem、web3.js)配合使用。如果你需要索引数据或支付特定功能,可以在其上添加专门的 API。

如果你正在构建生产级应用,你需要一个可靠的 RPC 提供商。OnFinality 提供托管的 Polygon RPC 端点,支持 HTTP 和 WebSocket,你可以比较定价以确定专用节点是否适合你的工作负载。

什么是 Polygon MATIC API?

Polygon(前身为 Matic Network)是一个兼容以太坊的权益证明链。“Polygon MATIC API”通常指用于与此链交互的接口。核心是 JSON-RPC API,它与以太坊的完全相同,因此任何以太坊库都可以直接使用。

历史上,MATIC 是用于支付 gas 的原生代币。在 POL 升级后,POL 现在是原生代币,但许多文档和工具仍引用 MATIC。API 本身没有变化——你仍然在发送交易和查询状态。

还有更高级别的 API:

  • Matic.js:用于与 Polygon 桥合约交互的旧版 SDK。它仍在文档中,但正在逐步淘汰。
  • 索引 API:像 Bitquery 这样的服务,提供 GraphQL 或 REST 端点,用于历史数据、代币余额和分析。
  • 支付 API:像 Chaingateway 这样的服务,抽象了节点管理,并为存款提供 webhooks。

Polygon 链设置一览

配置应用时,你需要正确的链 ID 和 RPC URL。以下是 Polygon 主网的官方设置:

参数值
链 ID137
原生货币POL(原 MATIC)
符号POL
小数位数18
区块浏览器https://polygonscan.com
公共 RPC URLhttps://polygon.api.onfinality.io/public
WebSocket 支持是(通过 OnFinality)

对于测试网,Polygon Amoy 测试网使用链 ID 80002 和公共 RPC URL https://polygon-amoy.api.onfinality.io/public。你可以在 Polygon 网络页面 上找到更多详细信息。

如何使用 JSON-RPC 连接到 Polygon

你可以使用任何兼容以太坊的库。以下是一个使用 ethers.js 读取余额和发送交易的示例:

const { ethers } = require("ethers");

const provider = new ethers.JsonRpcProvider("https://polygon.api.onfinality.io/public");

async function getBalance(address) {
  const balance = await provider.getBalance(address);
  console.log(`Balance: ${ethers.formatEther(balance)} POL`);
}

async function sendTransaction(signer, to, amount) {
  const tx = await signer.sendTransaction({
    to,
    value: ethers.parseEther(amount),
  });
  await tx.wait();
  console.log(`Tx hash: ${tx.hash}`);
}

对于原始 JSON-RPC 调用,你可以使用 curl:

curl -X POST https://polygon.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

这将返回最新的区块号,确认你的端点可用。

使用 Matic.js 进行桥操作

Matic.js 是用于与 Polygon 桥交互的旧版 SDK。它仍在文档中,但 Polygon Labs 推荐使用更新的替代方案来转移资金。如果你在维护现有代码,这里有一个快速示例:

const { POSClient, use } = require("@maticnetwork/maticjs");
const { Web3ClientPlugin } = require("@maticnetwork/maticjs-web3");
const HDWalletProvider = require("@truffle/hdwallet-provider");

use(Web3ClientPlugin);

const posClient = new POSClient();
await posClient.init({
  network: "mainnet",
  version: "v1",
  parent: {
    provider: new HDWalletProvider(privateKey, "https://ethereum-rpc.example.com"),
    defaultConfig: { from: userAddress },
  },
  child: {
    provider: new HDWalletProvider(privateKey, "https://polygon.api.onfinality.io/public"),
    defaultConfig: { from: userAddress },
  },
});

const erc20 = posClient.erc20("<token-address>");
const balance = await erc20.getBalance(userAddress);

请注意,Matic.js 已弃用,不适用于新项目。对于现代桥交互,请考虑使用官方 Polygon 桥 UI 或支付 API。

用于余额和历史的索引 API

如果你需要查询历史余额或代币持有者,像 Bitquery 这样的索引 API 可能比自己扫描区块更高效。例如,要获取地址的原生 POL 余额:

query {
  EVM(network: matic, dataset: combined) {
    Balances(
      where: {
        Balance: {
          Address: { is: "0x..." }
        }
      }
    ) {
      Currency { Symbol }
      Balance { Amount }
    }
  }
}

这些 API 对于分析仪表板、审计跟踪和钱包应用非常有用。它们通常需要 API 密钥,并有使用限制。

在公共、托管和专用 RPC 之间选择

对于生产应用,公共端点不够可靠。你有三个主要选项:

选项优点缺点
公共 RPC免费,无需注册速率限制,不可靠,无 SLA
托管 RPC(例如 OnFinality)可靠,可扩展,支持 WebSocket,免费层需要 API 密钥,按使用量计费
专用节点完全控制,无共享限制,存档数据成本较高,需要维护

OnFinality 提供托管的 Polygon RPC,处理负载均衡和故障转移等基础设施问题。对于高吞吐量或存档需求,专用节点可能值得成本。

常见陷阱和故障排除

  • 链 ID 不匹配:确保你的钱包使用主网链 ID 137,而不是 80001(旧 Mumbai 测试网)或 80002(Amoy)。
  • 速率限制:公共端点经常限制请求。如果你看到 429 错误,请切换到托管提供商。
  • WebSocket 断开:对于实时更新,使用 WebSocket,但实现重连逻辑。
  • MATIC 与 POL:一些工具仍期望 MATIC。请检查你的库的文档以获取正确的符号。

关键要点

  • Polygon MATIC API 主要是 JSON-RPC,与以太坊工具兼容。
  • 选择正确的 API 层:原始 RPC 用于控制,索引 API 用于分析,支付 API 用于稳定币流程。
  • 使用正确的链 ID (137) 和可靠的 RPC 提供商用于生产。
  • OnFinality 提供托管的 Polygon RPC,支持 HTTP 和 WebSocket。

常见问题

MATIC 和 POL 有什么区别?

MATIC 是原始的原生代币。2024 年,Polygon 升级到 POL,现在作为 gas 代币和质押代币。API 和链 ID 保持不变。

我可以将以太坊库与 Polygon 一起使用吗?

可以,Polygon 与 EVM 兼容,因此 ethers.js、viem 和 web3.js 无需修改即可使用。只需将它们指向 Polygon RPC 端点即可。

公共 Polygon RPC 端点免费吗?

是的,公共端点 https://polygon.api.onfinality.io/public 免费使用,但有速率限制。对于生产环境,请考虑托管 RPC 计划。

如何为 Amoy 获取测试网 POL?

你可以使用 Amoy 水龙头,它链接在 Polygon 网络页面 上。

Matic.js 有什么用途?

Matic.js 是用于与 Polygon 桥交互的旧版 SDK。它已弃用,不适用于新项目,但现有代码可能仍在使用它。

OnFinality 是否支持 Polygon 的 WebSocket?

是的,OnFinality 的 Polygon 端点支持 HTTP 和 WebSocket。请查看网络页面了解详情。

如何在托管 RPC 和专用节点之间选择?

如果你需要高吞吐量、存档数据或自定义配置,专用节点可能更好。对于大多数应用,托管 RPC 在成本和可靠性之间提供了良好的平衡。有关更多信息,请参阅我们的 RPC 提供商选择指南。

公共端点的速率限制是多少?

公共端点受到速率限制以确保公平使用。要获得更高的限制,请在 OnFinality 上注册免费 API 密钥。

我可以将 Polygon 与 viem 一起使用吗?

可以,viem 开箱即用地支持 Polygon。你可以使用 createPublicClient({ chain: polygon, transport: http("https://polygon.api.onfinality.io/public") }) 创建客户端。

我在哪里可以找到受支持网络的完整列表?

访问支持的网络页面查看 OnFinality 支持的所有链。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

如何评估面向企业工作负载的高性能Solana RPC提供商

运行高吞吐量Solana应用程序的企业需要能够处理持续负载、大型账户状态和实时数据而不会出现瓶颈的RPC基础设施。本文概述了评估Solana RPC提供商的关键标准,包括吞吐量、可靠性、数据访问和运营支持,并解释了如何将提供商能力与您的工作负载相匹配。...

网络 RPCBNB Chain

什么是 Smart Chain RPC URL,以及如何连接到 BNB Smart Chain?

Smart Chain RPC URL 是你的钱包、dApp 或后端用来读取 BNB Smart Chain 状态并广播交易的 HTTP 或 WebSocket 端点。它承载 JSON-RPC 调用,例如 eth_blockNumber、eth_getBalance 和 eth_sendRawTra...

网络 RPCAcala

什么是Acala Network,如何连接?

Acala Network是基于Polkadot构建的去中心化金融(DeFi)中心,提供跨链流动性、流动性质押和EVM兼容的智能合约平台。本指南涵盖Acala的架构、如何通过RPC端点连接,以及开发者在Acala上构建时的关键考量。...

RPC 故障排查Solana

什么是 Solana deadnet,如何避免?

Solana deadnet 是社区对已弃用或无法正常运行的 Solana 网络环境的称呼,常与 devnet 或 testnet 混淆。本文阐明了 deadnet 的含义、它与活跃集群的区别,以及如何为开发和测试选择可靠的 RPC 端点。...

网络 RPCPolygon

Polygon RPC:如何选择能承受生产流量的端点

Polygon RPC 是你的应用用来在 Polygon PoS 上读取链状态、提交交易和订阅事件的 HTTP 和 WebSocket 端点。早期选择的端点往往会成为你凌晨两点调试的端点,因此值得根据真实工作负载来选择,而不是从教程中快速复制粘贴。 本页介绍了端点形态、链设置、请求模式以及流量增长后...

测试网 RPCBNB Chain

BNB Smart Chain 测试网 RPC:链设置、水龙头和调试

BNB Smart Chain 测试网(链 ID 97)是您在接触主网之前验证合约、钱包和索引器的环境。本页面为您提供准确的网络设置、可用的公共端点、水龙头指南以及最浪费开发者时间的故障模式。您还会找到一个简短的检查清单,用于判断何时共享公共端点足够,何时专用节点更合适。...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始