You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过solana/web3.js从代币账户地址获取所有者地址

如何通过solana/web3.js从代币账户地址获取所有者地址

要实现从SPL代币账户地址提取所有者地址,你需要结合@solana/web3.js和@solana/spl-token包解析代币账户的数据结构,具体步骤如下:

1. 安装依赖

先确保安装所需的npm包:

npm install @solana/web3.js @solana/spl-token

2. 代码实现

以下是可直接运行的示例代码,替换目标代币账户地址即可:

import { Connection, PublicKey } from '@solana/web3.js';
import { getAccount } from '@solana/spl-token';

async function getTokenAccountOwner(tokenAccountAddress) {
    // 连接Solana主网集群(可替换为devnet/testnet)
    const connection = new Connection('https://api.mainnet-beta.solana.com', 'confirmed');
    
    try {
        const tokenAccountPubkey = new PublicKey(tokenAccountAddress);
        // 获取代币账户结构化信息
        const tokenAccount = await getAccount(connection, tokenAccountPubkey);
        
        // 提取所有者地址并返回
        return tokenAccount.owner.toBase58();
    } catch (error) {
        console.error('获取代币账户信息失败:', error);
        throw error;
    }
}

// 测试示例:填入你的代币账户地址
const targetTokenAccount = 'H289e6NPwxtUJws7YJrQnfgi8gYgHnnDi7Ur9FVBCr9Y';
getTokenAccountOwner(targetTokenAccount).then(owner => {
    console.log('代币账户所有者地址:', owner);
    // 预期输出:HEGfxcbHPdkpxZJyqPaGevaAkCGfuaB1mHF1cUv2bTGe
});

关键说明

  • @solana/spl-token包的getAccount方法会自动解析SPL代币账户的二进制数据,直接返回包含owner字段的结构化对象,无需手动解析字节码。
  • 可根据场景替换集群地址:主网https://api.mainnet-beta.solana.com、测试网https://api.testnet.solana.com、开发网https://api.devnet.solana.com。
  • 如果报错,通常是代币账户地址无效、节点连接失败,或该地址并非合法的SPL代币账户。

内容的提问来源于stack exchange,提问作者R2R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:22:15