关于 dune-analytics
dune-analytics 是通过 Dune REST API 查询链上实时数据的技能,面向链上数据分析工作。它涵盖已保存查询和 DuneSQL 的执行与结果获取,也提供结合 MoonPay 钱包的工作流程。
主要功能
- 01执行已保存的 Dune 查询
- 02运行原始 DuneSQL
- 03传入查询参数
- 04检查状态并获取结果
- 05取消查询执行
- 06结合 MoonPay 钱包分析
适用场景
- 01查看某个钱包的交易
- 02运行带参数的链上查询
- 03检查融资或代币活动
- 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
- 在 https://dune.com 注册
- 前往 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 |
| 直接执行原始 SQL | POST | /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——显示输出前先将其隐藏 - 执行写入操作(创建或更新已保存的查询)前,请先征得用户同意
资源
- API 文档: https://docs.dune.com/api-reference/overview/introduction
- DuneSQL 参考: https://docs.dune.com/query-engine/Functions-and-operators
- Dune Analytics: https://dune.com
- MoonPay CLI: https://www.npmjs.com/package/@moonpay/cli
相关技能
- moonpay-check-wallet — 在分析链上数据前检查钱包余额
- moonpay-swap-tokens — 通过兑换代币对分析结果采取行动
- moonpay-bridge-tokens — 根据分析结果跨链转移资产
评论
支持 Markdown