使用Solana web3 SDK查询钱包资产及NFT所属地址方法咨询
Solana Web3 SDK 需求实现解答
两个功能均可以基于@solana/web3.js配合相关生态库实现,具体实现思路如下:
1. 按钱包地址查询名下资产列表
- 原生SOL余额可直接调用
connection.getBalance(钱包公钥)接口获取,这和你当前做余额查询的逻辑一致。 - 所有SPL标准资产(包括同质化代币、NFT等)可以调用
connection.getTokenAccountsByOwner()接口,传入目标钱包公钥作为owner参数,拉取该地址持有的全部SPL代币账户,解析每个账户对应的mint地址、持仓数量就能得到完整的资产清单。如果需要获取资产的元数据(比如代币符号、NFT的图片、属性等信息),可以配合@metaplex-foundation/js库解析链上存储的元数据即可。
2. 按NFT mint地址查询当前归属钱包
- NFT本质是发行量为1的SPL代币,你可以直接调用
connection.getTokenLargestAccounts(NFT mint公钥)接口,返回结果中余额为1的SPL代币账户对应的owner,就是该NFT的当前持有钱包地址。 - 如果需要批量查询多个NFT的归属,也可以用
connection.getProgramAccounts()针对Token Program做过滤查询,效率更高。
内容的提问来源于stack exchange,提问作者Jaume
相关产品推荐
相关产品推荐

