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

Magic Eden API调用buy指令异常:返回200但无tx及出价记录

问题分析与解决

核心问题

你的代码存在三个关键错误,导致无法生成实际出价交易:

  • 请求方法错误:/v2/instructions/buy接口需要用POST请求,而非GET。GET请求仅返回交易创建指令,不会触发签名和广播流程。
  • 参数格式错误:URL中buyer的值被单引号包裹,authorization头里的私钥也加了单引号,这会导致接口无法正确解析参数。
  • 缺少交易签名与广播步骤:接口返回的buffers是未签名的交易指令,你需要用钱包对其签名后广播到Solana网络,才会生成可查的出价记录。

修正后的代码示例

import requests
from solders.keypair import Keypair
from solders.transaction import VersionedTransaction
import base64

# 替换为你的实际信息
BUYER_WALLET = "你的钱包地址"
PRIVATE_KEY = "你的钱包私钥(不带单引号)"
AUCTION_HOUSE_ADDR = "E8cU1WiRWjanGxmn96ewBgk9vPTcL6AEZ1t6F6fkgUWe"
TOKEN_MINT = "4StP8k8MFsSug39xF4Y4CK3tS6fPxA3qsTTXAUFDHqv5"
PRICE = 0.13

url = "https://api-mainnet.magiceden.dev/v2/instructions/buy"

headers = {
    "accept": "application/json",
    "authorization": f"Bearer {PRIVATE_KEY}",
    "Content-Type": "application/json"
}

# POST请求参数
payload = {
    "buyer": BUYER_WALLET,
    "auctionHouseAddress": AUCTION_HOUSE_ADDR,
    "tokenMint": TOKEN_MINT,
    "price": PRICE
}

# 1. 获取交易指令
response = requests.post(url, json=payload, headers=headers)
tx_data = response.json()

# 2. 解码交易buffer并签名
if "buffer" in tx_data:
    decoded_buffer = base64.b64decode(tx_data["buffer"])
    tx = VersionedTransaction.from_bytes(decoded_buffer)
    keypair = Keypair.from_base58_string(PRIVATE_KEY)
    signed_tx = keypair.sign_message(tx.message)
    signed_tx_bytes = VersionedTransaction(tx.message, signed_tx).to_bytes()

    # 3. 广播交易到Solana主网
    rpc_url = "https://api.mainnet-beta.solana.com"
    rpc_headers = {"Content-Type": "application/json"}
    rpc_payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sendTransaction",
        "params": [base64.b64encode(signed_tx_bytes).decode("utf-8"), {"skipPreflight": False}]
    }
    rpc_response = requests.post(rpc_url, json=rpc_payload, headers=rpc_headers)
    print("交易广播结果:", rpc_response.json())
else:
    print("获取交易指令失败:", tx_data)

关键说明

  • 先安装依赖:pip install requests solders,solders用于处理Solana的交易签名逻辑。
  • 私钥直接使用原始字符串,不要添加任何引号包裹。
  • 广播交易可使用Solana官方RPC节点,也可替换为其他第三方节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:05:11