使用Solana Web3.js实现Phantom转账时遇getRecentBlockhash 403错误求助
Phantom钱包sendTransaction转账403错误排查方案
错误原因
你遇到的403错误是因为代码中使用的Solana官方主网RPC节点https://api.mainnet-beta.solana.com目前对未授权的公开请求做了访问限制,导致无法调用getLatestBlockhash接口获取区块哈希,进而触发交易失败。
解决方案
1. 替换RPC节点
官方主网节点已不再支持无授权公开访问,需更换为其他合规的Solana RPC服务节点:
- 开发测试阶段:优先使用Devnet节点(无访问限制,适合调试):
https://api.devnet.solana.com - 主网正式环境:使用Alchemy、QuickNode等服务商的免费/付费RPC节点(部分服务商提供免费额度,需自行注册获取)
2. 修改代码中的RPC配置
在signInTransactionAndSendMoney方法里,替换network变量的值即可,示例:
signInTransactionAndSendMoney(amount, depositWallet) { (async () => { try { // 替换为Devnet节点用于测试 const network = "https://api.devnet.solana.com"; // 主网示例(需替换为你自己的API密钥) // const network = "https://solana-mainnet.g.alchemy.com/v2/你的API密钥"; const connection = new solanaWeb3.Connection(network); // ... 其余代码保持不变 } catch (err) { console.log(err); } })(); },
3. 额外注意事项
- 主网操作前务必在Devnet完成全流程测试,避免真实资金损失
- 使用付费RPC服务时,需严格按照服务商要求配置API密钥
- 确认替换后的RPC节点支持
getLatestBlockhash等交易所需的核心接口
内容的提问来源于stack exchange,提问作者Nika110
相关产品推荐
相关产品推荐

