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

如何在Python中将Solana的BN字符串地址解码为Pubkey地址

实现BN字符串转Solana PublicKey(Python)

要将你提供的BN格式字符串转换成对应的Solana Base58地址,借助Solana官方Python SDK solana-py 即可完成,具体步骤如下:

1. 安装依赖

先确保安装了solana库:

pip install solana

2. 转换代码实现

from solana.publickey import PublicKey

# 你的BN格式输入字符串
bn_input = "<BN: b870e12dd379891561d2e9fa8f26431834eb736f2f24fc2a2a4dff1fd5dca4df>"

# 提取十六进制核心内容:分割字符串并去除尾部的">"
hex_data = bn_input.split(": ")[1].rstrip(">")

# 将十六进制字符串转为32字节数组(Solana PublicKey的本质)
pubkey_bytes = bytes.fromhex(hex_data)

# 实例化PublicKey并输出Base58格式地址
public_key = PublicKey(pubkey_bytes)
print(public_key.to_base58())  # 输出结果:DQyrAcCrDXQ7NeoqGgDCZwBvWDcYmFCjSb9JtteuvPpz

原理说明

Solana的PublicKey本质是一个32字节的二进制数据:

  • 你拿到的<BN: ...>格式,其实是该二进制数据的十六进制字符串表示
  • Base58格式的地址,是对这32字节数据做Base58编码后的结果
  • solana-py的PublicKey类会自动处理字节到Base58的编码转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:59:50