如何在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
相关产品推荐
相关产品推荐

