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

使用Moralis Stream脚本创建监听钱包原生币交易流无响应的问题求助

Moralis Stream脚本创建监听钱包原生币交易流无响应的问题求助

兄弟,我之前也踩过Moralis脚本创建Stream没触发webhook的坑,咱们一步步排查解决:

首先检查最容易忽略的配置细节

  1. Webhook地址是否完整
    你贴的index.js里webhookUrl看起来没写完("https://15ca-103-105-211-114.ngrok-free.app/web..."),必须确保是完整的接口路径,比如"https://15ca-103-105-211-114.ngrok-free.app/webhook",路径错了Moralis根本发不到你的服务。

  2. Stream配置参数是否齐全
    要监听原生币交易,你的option对象必须包含必要的触发条件,比如指定链、监听地址、开启原生交易监听,示例如下:

    const option = {
      webhookUrl: "https://15ca-103-105-211-114.ngrok-free.app/webhook",
      chain: "eth", // 换成你需要的链,比如bsc、polygon
      tag: "native_transactions",
      includeNativeTxs: true, // 关键:开启原生交易监听
      addresses: ["0xYourTargetWalletAddress"], // 要监听的钱包地址
    };
    

检查脚本执行逻辑

  1. 是否调用了创建Stream的方法
    你的runApp函数里只定义了option,但没调用Moralis创建Stream的核心方法!必须加上await Moralis.Streams.add(option),而且要确保runApp函数被执行,完整示例:
    const runApp = async () => {
      const option = {
        webhookUrl: "https://15ca-103-105-211-114.ngrok-free.app/webhook",
        chain: "eth",
        tag: "native_transactions",
        includeNativeTxs: true,
        addresses: ["0xYourTargetWalletAddress"],
      };
      // 核心:调用add方法创建流
      const stream = await Moralis.Streams.add(option);
      console.log("Stream创建成功:", stream.toJSON());
    };
    
    // 别忘了执行函数!
    runApp().catch(err => console.error("创建Stream出错:", err));
    

处理Webhook的验证请求

Moralis创建Stream时会先发送一个GET请求验证你的webhook有效性,你的webhook.js只处理了POST请求,这会导致Moralis认为你的webhook无效,从而不推送数据。必须添加GET路由:

// 新增GET路由处理Moralis的验证请求
app.get("/webhook", (req, res) => {
  const challenge = req.query.challenge;
  return res.status(200).json({ challenge });
});

测试排查步骤

  1. 重启你的webhook服务,确保GET和POST路由都生效。
  2. 用curl测试GET验证:curl https://你的ngrok地址/webhook?challenge=test,确认返回{"challenge":"test"}。
  3. 查看ngrok的日志面板,看是否有Moralis的请求进来:
    • 如果没有请求:说明Stream配置错误(比如地址写错、链不支持),去Moralis后台看你创建的Stream状态是否为Active。
    • 如果有请求但返回错误:根据错误码调整你的webhook逻辑。

最后再检查几个常见坑

  • 确认你的Moralis API Key是正确的,有没有拼写错误。
  • 确保ngrok的地址是最新的(每次重启ngrok都会换地址),如果换了地址要同步更新webhookUrl。
  • 检查目标钱包是否有原生币交易发生,没有交易的话自然不会触发webhook。

备注:内容来源于stack exchange,提问作者Umaid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 02:44:50