dune-analytics
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDune Analytics
Dune 数据分析
Query live on-chain data via the Dune REST API. Pair with MoonPay to create and fund the wallets you analyze.
通过Dune REST API查询实时链上数据。搭配MoonPay使用,创建并充值你要分析的钱包。
Setup
配置步骤
Get a Dune API Key
获取Dune API密钥
- Sign up at https://dune.com
- Go to Settings → API Keys → Create new key
bash
export DUNE_API_KEY="your-api-key"Base URL:
Auth header:
https://api.dune.com/api/v1Auth header:
X-Dune-API-Key: $DUNE_API_KEY- 在https://dune.com注册账号
- 进入设置 → API密钥 → 创建新密钥
bash
export DUNE_API_KEY="your-api-key"基础URL:
认证请求头:
https://api.dune.com/api/v1认证请求头:
X-Dune-API-Key: $DUNE_API_KEYKey Endpoints
核心接口
| Action | Method | Endpoint |
|---|---|---|
| Execute a saved query | POST | |
| Get execution status + results | GET | |
| Execute raw SQL directly | POST | |
| Cancel execution | POST | |
| Get query definition | GET | |
| 操作 | 请求方法 | 接口地址 |
|---|---|---|
| 执行已保存的查询 | POST | |
| 获取执行状态与结果 | GET | |
| 直接执行原生SQL | POST | |
| 取消执行 | POST | |
| 获取查询定义 | GET | |
Common Workflows
常见工作流
Run a Saved Query
运行已保存的查询
bash
undefinedbash
undefined1. Execute
1. 执行查询
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"}')
-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"
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"}')
-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
2. 轮询直到完成
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
-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
undefinedwhile 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
-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
undefinedExecute Raw DuneSQL
执行原生DuneSQL
bash
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'bash
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'Query with Parameters
带参数的查询
bash
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'bash
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'Wallet Management with MoonPay
搭配MoonPay进行钱包管理
Use the MoonPay CLI () to create and fund the wallets you analyze with Dune.
mp使用MoonPay CLI()创建并充值你要用Dune分析的钱包。
mpCreate a Wallet to Monitor
创建要监控的钱包
bash
mp wallet create --name "dune-agent-wallet"
mp wallet retrieve --wallet "dune-agent-wallet"bash
mp wallet create --name "dune-agent-wallet"
mp wallet retrieve --wallet "dune-agent-wallet"Note your Ethereum address for Dune queries
记录你的以太坊地址,用于Dune查询
undefinedundefinedQuery Your MoonPay Wallet On-Chain
查询你的MoonPay钱包链上数据
bash
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'bash
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'Fund the Wallet
给钱包充值
bash
undefinedbash
undefinedBuy ETH for gas
购买ETH用于支付Gas费
mp buy --token eth_ethereum --amount 0.1 --wallet <your-eth-address> --email <email>
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
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
--from-wallet dune-agent-wallet --from-chain ethereum
--from-token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
--from-amount 500
--to-chain polygon
--to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
---mp token bridge
--from-wallet dune-agent-wallet --from-chain ethereum
--from-token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
--from-amount 500
--to-chain polygon
--to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
--from-wallet dune-agent-wallet --from-chain ethereum
--from-token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
--from-amount 500
--to-chain polygon
--to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
---Execution States
执行状态
| State | Meaning |
|---|---|
| Queued |
| Running |
| Results ready |
| Check error message |
| Cancelled |
| 状态 | 含义 |
|---|---|
| 已排队 |
| 运行中 |
| 结果已就绪 |
| 请查看错误信息 |
| 已取消 |
Security
安全提示
- Never expose in logs or responses — redact before showing output
DUNE_API_KEY - Confirm with the user before running write operations (creating/updating saved queries)
- 切勿在日志或响应中暴露——在展示输出前需进行脱敏处理
DUNE_API_KEY - 在运行写入操作(创建/更新已保存的查询)前,请先与用户确认
Resources
相关资源
- API docs: https://docs.dune.com/api-reference/overview/introduction
- DuneSQL reference: https://docs.dune.com/query-engine/Functions-and-operators
- Dune Analytics: https://dune.com
- MoonPay CLI: https://www.npmjs.com/package/@moonpay/cli
- 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
Related Skills
相关技能
- moonpay-check-wallet — Check wallet balances before analyzing on-chain
- moonpay-swap-tokens — Act on findings by swapping tokens
- moonpay-bridge-tokens — Move assets cross-chain informed by your analysis
- moonpay-check-wallet — 分析链上数据前检查钱包余额
- moonpay-swap-tokens — 根据分析结果进行代币交换
- moonpay-bridge-tokens — 根据分析结果进行资产跨链转移