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. 06MoonPayウォレットとの分析連携

活用シーン

  1. 01ウォレットの取引確認
  2. 02パラメーター付きオンチェーンクエリの実行
  3. 03資金調達やトークン活動の調査
  4. 04MoonPayウォレットのオンチェーン分析

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/dune-analyticsを入力して読み込まれたか確認します。

詳細

Dune Analytics

Dune REST API を使って、オンチェーンの最新データをクエリします。MoonPay と組み合わせて、分析対象のウォレットを作成し、資金を入金できます。

セットアップ

Dune API キーを取得する
  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
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 でのウォレット管理

Dune で分析するウォレットを作成し、資金を入金するには、MoonPay CLI(mp)を使用します。

監視するウォレットを作成する
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 — 分析結果に基づいて、チェーン間で資産を移動します

コメント