mcpField
D
dune-analytics

dune-analytics

github.com/moonpay数据与数据库11235 次安装23 周前更新
代码仓库

关于 dune-analytics

dune-analytics 是通过 Dune REST API 查询链上实时数据的技能,面向链上数据分析工作。它涵盖已保存查询和 DuneSQL 的执行与结果获取,也提供结合 MoonPay 钱包的工作流程。

主要功能

  1. 01执行已保存的 Dune 查询
  2. 02运行原始 DuneSQL
  3. 03传入查询参数
  4. 04检查状态并获取结果
  5. 05取消查询执行
  6. 06结合 MoonPay 钱包分析

适用场景

  1. 01查看某个钱包的交易
  2. 02运行带参数的链上查询
  3. 03检查融资或代币活动
  4. 04分析 MoonPay 钱包的链上数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/moonpay/skills --skill dune-analytics

安装后在 Claude Code 中输入/dune-analytics确认已加载。

详细介绍

Dune Analytics

通过 Dune REST API 查询实时链上数据。搭配 MoonPay 创建并为你分析的钱包充值。

设置

获取 Dune API Key
  1. 在 https://dune.com 注册
  2. 前往 Settings → API Keys → Create new key
export DUNE_API_KEY="your-api-key"

基础 URL: https://api.dune.com/api/v1
认证标头: X-Dune-API-Key: $DUNE_API_KEY


主要端点

操作方法端点
执行已保存的查询POST/query/{query_id}/execute
获取执行状态和结果GET/execution/{execution_id}/results
直接执行原始 SQLPOST/sql/execute
取消执行POST/execution/{execution_id}/cancel
获取查询定义GET/query/{query_id}

常见工作流

运行已保存的查询
# 1. Execute
EXEC=$(curl -s -X POST "https://api.dune.com/api/v1/query/3237661/execute" \
  -H "X-Dune-API-Key: $DUNE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"performance": "medium"}')

EXEC_ID=$(echo $EXEC | jq -r '.execution_id')
echo "execution_id: $EXEC_ID"

# 2. Poll until complete
while true; do
  STATUS=$(curl -s "https://api.dune.com/api/v1/execution/$EXEC_ID/results" \
    -H "X-Dune-API-Key: $DUNE_API_KEY")
  STATE=$(echo $STATUS | jq -r '.state')
  echo "State: $STATE"
  if [[ "$STATE" == "QUERY_STATE_COMPLETED" || "$STATE" == "QUERY_STATE_FAILED" ]]; then
    echo $STATUS | jq '.result.rows[:5]'
    break
  fi
  sleep 3
done
执行原始 DuneSQL
curl -s -X POST "https://api.dune.com/api/v1/sql/execute" \
  -H "X-Dune-API-Key: $DUNE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sql": "SELECT block_time, hash, value/1e18 AS eth FROM ethereum.transactions WHERE lower(\"from\") = lower('0xYOUR_WALLET') ORDER BY block_time DESC LIMIT 20",
    "performance": "medium"
  }' | jq '.execution_id'
使用参数查询
curl -s -X POST "https://api.dune.com/api/v1/query/3237661/execute" \
  -H "X-Dune-API-Key: $DUNE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query_parameters": {
      "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "days": 30
    },
    "performance": "medium"
  }' | jq '.execution_id'

使用 MoonPay 管理钱包

使用 MoonPay CLI(mp)创建并为你通过 Dune 分析的钱包充值。

创建要监控的钱包
mp wallet create --name "dune-agent-wallet"
mp wallet retrieve --wallet "dune-agent-wallet"
# Note your Ethereum address for Dune queries
在链上查询你的 MoonPay 钱包
WALLET=$(mp wallet retrieve --wallet "dune-agent-wallet" --json | jq -r '.addresses.ethereum')

EXEC_ID=$(curl -s -X POST "https://api.dune.com/api/v1/sql/execute" \
  -H "X-Dune-API-Key: $DUNE_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\
    \"sql\": \"SELECT block_time, hash, value/1e18 AS eth, \\\"to\\\" FROM ethereum.transactions WHERE lower(\\\"from\\\") = lower('$WALLET') ORDER BY block_time DESC LIMIT 20\",\
    \"performance\": \"medium\"\
  }" | jq -r '.execution_id')

curl -s "https://api.dune.com/api/v1/execution/$EXEC_ID/results" \
  -H "X-Dune-API-Key: $DUNE_API_KEY" | jq '.result.rows'
为钱包充值
# Buy ETH for gas
mp buy --token eth_ethereum --amount 0.1 --wallet <your-eth-address> --email <email>

# Check balances
mp token balance list --wallet <your-eth-address> --chain ethereum

# Bridge to follow yields
mp token bridge \
  --from-wallet dune-agent-wallet --from-chain ethereum \
  --from-token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 \
  --from-amount 500 \
  --to-chain polygon \
  --to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174

执行状态

状态含义
QUERY_STATE_PENDING排队中
QUERY_STATE_EXECUTING运行中
QUERY_STATE_COMPLETED结果已就绪
QUERY_STATE_FAILED查看错误消息
QUERY_STATE_CANCELLED已取消

安全

  • 切勿在日志或响应中暴露 DUNE_API_KEY——显示输出前先将其隐藏
  • 执行写入操作(创建或更新已保存的查询)前,请先征得用户同意

资源

相关技能

  • moonpay-check-wallet — 在分析链上数据前检查钱包余额
  • moonpay-swap-tokens — 通过兑换代币对分析结果采取行动
  • moonpay-bridge-tokens — 根据分析结果跨链转移资产

评论

支持 Markdown