摘要:用 @solana/web3.js Connection + clusterApiUrl 连测试网,只读 getSlot/getBalance/getAccountInfo;对照 RPC 文档与 Solscan Devnet。无私钥无主网交易。
站内已有 Solana Anchor 入门:项目结构与 IDL、Anchor 部署到 Devnet、租金豁免 与 PoH / 账户模型。本篇专讲 JS 侧只读第一步:用 @solana/web3.js 的 Connection + clusterApiUrl('devnet') 连测试网,再 getSlot / getBalance / getAccountInfo。不写 deploy、不发交易、不用真私钥。
一、官方:clusterApiUrl 选哪条集群
clusterApiUrl(cluster?, tls?) 会返回指定集群的 RPC URL。文档写明可选 'devnet' | 'testnet' | 'mainnet-beta'。本篇默认教 devnet:日常脚手架、水龙头、浏览器对照都更常用。装包时本场用的是仍广泛流行的 v1.x(npm i @solana/web3.js@1);官方 TypeDoc 站点也会同时展示 v3 分支,API 名以你安装的版本为准。

二、官方:Connection 与 getBalance / getSlot
Connection 描述为「连到全节点 JSON-RPC 端点」。类方法索引里能直接看到本场用到的 getBalance、getSlot、getAccountInfo 等。典型写法:
const { Connection, clusterApiUrl, PublicKey, LAMPORTS_PER_SOL } = require('@solana/web3.js');
const conn = new Connection(clusterApiUrl('devnet'), 'confirmed');
const slot = await conn.getSlot();
const lamports = await conn.getBalance(new PublicKey('11111111111111111111111111111111'));

三、对照 RPC:getBalance 在 Devnet 上长什么样
Solana 官方 RPC 文档的 getBalance 页写明:按账户地址返回 lamports。右侧示例 curl 直接打向 https://api.devnet.solana.com,响应里是 context.slot + value(u64)。web3.js 的 conn.getBalance 本质上就是包一层这个 JSON-RPC。

四、本机实跑:Connection + getSlot / getBalance
工作目录 demo/:npm i @solana/web3.js@1(本场解析为 1.99.0)。脚本先打印 clusterApiUrl('devnet'),再尝试官方 Devnet;若本环境 TLS/超时不可达,则同一套 API回退到 clusterApiUrl('testnet')(仍是测试集群,无私钥、无主网资金)。2026-10-20 17:02 Asia/Shanghai 快照:
clusterApiUrl('devnet')→https://api.devnet.solana.com(本场探测超时)- 回退 testnet:
getSlot()→454652301 getBalance(System Program 1111…1111)→1lamport(≈1e-9 SOL)getAccountInfo:executable=true,owner=NativeLoader…,lamports=1getVersion()→ solana-core ≈4.4.0-beta.1(会变)
你本机网络正常时应优先固定 clusterApiUrl('devnet'),不必跟本场回退。

五、浏览器:Solscan Devnet 对照 System Program
官方 explorer.solana.com 本场遇 429,改用 Solscan 并切换右上角 DEVNET。打开公开地址 11111111111111111111111111111111(System Program):能看到 Devnet 标签、Owner=Native Loader、余额量级极小(页面显示 0.0₈1 一类科学计数)。这与终端 getBalance=1 lamport 同向——浏览器适合「认账户在不在、是什么」,精确数字仍以 RPC 为准。slot / 交易列表会变。

六、和站内相关文怎么分工
| 场景 | 更合适的文 | 本篇补充 |
|---|---|---|
| Anchor 目录 / IDL | Anchor 入门·IDL | 本篇是 JS Connection 只读 |
| Devnet 部署与签名 | Anchor 部署 Devnet | 本篇不 deploy |
| 租金豁免门槛 | 租金豁免 | 本篇只 getBalance 样例 |
| EVM 侧 PublicClient | viem PublicClient | 链与 SDK 不同 |
clusterApiUrl('devnet') 再 new Connection;别把主网 URL 抄进测试脚本。
1 SOL = 1e9 lamports;浏览器科学计数与 RPC 整数要对一下。
本场无私钥、无空投、无转账。钱包演练可试用欧易 Web3(创建可填 CHENGXULVTU)。
npm i @solana/web3.js@1,对照 clusterApiUrl / Connection 文档。- 写
new Connection(clusterApiUrl('devnet'), 'confirmed'),先getSlot()确认连通。 - 对公开地址(如 System Program)跑
getBalance/getAccountInfo。 - 在 Solscan 切 DEVNET 打开同一地址,认 Owner / 余额量级。
- 买少量 SOL 作日后 Gas(与本文测试网无关)可在 币安 或 欧易——本场不需要。
相关阅读
- Solana Anchor 入门:项目结构与 IDL
- Solana Anchor 部署到 Devnet:账户与签名
- Solana 租金豁免:账户最低余额怎么查
- Solana 为什么快:PoH、账户模型与交易费怎么看
- viem PublicClient:连公开 RPC 读块高与 Gas
说明:配图为 2026-10-20 @solana/web3.js TypeDoc(clusterApiUrl / Connection)、Solana RPC getBalance、本机真实终端输出,以及 Solscan Devnet System Program 只读页。本场官方 Devnet RPC 超时故用 testnet 演示同一 API;slot、版本、余额会变。本文不构成投资建议。
