NEWOllama 対応 · 100% ローカル実行 →

Ethereum dApp、curl 一行で

Wagmi AI は Wagmi、viem、最新 React dApp アーキテクチャに特化したオープン LLM のコレクションです。Ollama で手元のマシン上で動き、リポジトリは非公開のまま、hook 修正・設定レビュー・コネクタガイドを JSON で返します。

❯ curl -s -X POST https://wagmiai.dev/api/wagmi -H "Content-Type: text/plain" --data-binary @useSwap.tsx | jq .report

⠿ wagmi-coder:7b 解析中… 186 lines · 3.1s

HIGHuseWriteContract に chainId ガードなしL24

MEDIUMウォレット切替後の stale read — queryKey 不足L41

LOWwrite 前に useSimulateContract を推奨L52

quality_score: 88 / 100

対応技術

  • Wagmi v2
  • viem
  • React
  • TanStack Query
  • WalletConnect
  • RainbowKit
  • Ollama

Models

ワークフロー別 4 つのモデル

各モデルは Ollama Modelfile として提供 — 実績ある OSS コード LLM に Wagmi 向けシステムプロンプトとパラメータを重ねています。

wagmi-coder:7b

qwen2.5-coder:7b

速度と精度のバランス

日常の PR と CI 向けデフォルト。hooks、config、TypeScript/React に強い。

Accuracy86%
Speed92%

wagmi-deep:14b

qwen2.5-coder:14b

ステップごとのフロー解析

ウォレットイベント、RPC エラー、複数 hook の状態を段階的に追跡 — 不安定な mainnet 問題向け。

Accuracy91%
Speed72%

wagmi-pro:32b

qwen2.5-coder:32b

本番アーキテクチャレビュー

大型アプリ向けフラグシップ:SSR、マルチチェーン、AA、コネクタの境界ケース。

Accuracy95%
Speed48%

wagmi-lite:3b

qwen2.5-coder:3b

ノート PC でも軽量

素早い一次スキャンと学習用。エディタ保存時の即時チェックに最適。

Accuracy78%
Speed98%

* 精度・速度はモデル間比較の参考値です。実際の性能はハードウェアとコードベースに依存します。

How it works

コードはマシンから出ません

クラウド API キーも従量課金も不要。ターミナル → Ollama → dApp レビューレポート、それだけです。

  1. 01

    ソースを送る

    curl で .tsx、.ts、wagmi config を送信。ローカル Ollama (:11434) または本サイトの /api/wagmi プロキシに対応。

    curl --data-binary @app.tsx

  2. 02

    ローカル LLM 推論

    Ollama が GPU/CPU で Wagmi モデルを実行。システムプロンプトが hooks、チェーン、viem 呼び出しをチェックします。

    ollama · temperature 0.15

  3. 03

    JSON レポート

    重要度・位置・Wagmi パターン ID・修正案を含む JSON — jq、CI、ダッシュボードに直結。

    format: "json"

Why local AI

ウォレットスタックを 24/7 支援する co-pilot

Wagmi AI は mainnet 前の第一防衛線。チェーン設定ミス、壊れた hooks、コネクタの誤りを開発ループ内で捕捉します。

完全なプライバシー

未公開 dApp も安心して解析。推論はローカル Ollama のみ。

無料・無制限

トークン課金なし。コミットごと・ファイルごとに何度でもレビュー可能。

構造化出力

Ollama JSON モードで安定したスキーマのレポート。

CI/CD 向き

curl と jq で critical な Wagmi 設定ミス時にビルドを失敗させられます。

Quick start · curl

ローカル AI で Wagmi レビューを自動化 — 5 分セットアップ

モデルと OS を選ぶと下の curl コマンドが自動更新されます。順にコピーしてエディタ・スクリプト・CI に組み込んでください。

モデルを選択

  1. Ollama をインストール

    ローカル LLM ランタイム Ollama をインストール。:11434 でバックグラウンド起動します。

    install.sh
    curl -fsSL https://ollama.com/install.sh | sh
    # If the server isn't running: ollama serve
    ollama --version
    curl -s http://localhost:11434/api/tags | head
  2. ベースモデルをダウンロード

    wagmi-coder:7b は qwen2.5-coder:7b(4.7 GB)上に構築されています。

    pull.sh
    ollama pull qwen2.5-coder:7b
  3. Modelfile 取得と Wagmi モデル作成

    curl で Modelfile(Wagmi システムプロンプト+パラメータ)を取得し Ollama に登録。

    create.sh
    curl -fsSL https://wagmiai.dev/api/modelfile/wagmi-coder-7b -o wagmi-coder-7b.Modelfile
    ollama create wagmi-coder:7b -f wagmi-coder-7b.Modelfile
    ollama list | grep wagmi
  4. クイックテスト

    Ollama /api/generate に短いスニペットを送信。format: "json" で構造化レポートを保証。

    quick-test.sh
    curl http://localhost:11434/api/generate -d '{
      "model": "wagmi-coder:7b",
      "prompt": "Review this Wagmi hook for chainId and simulation issues:\n\nexport function useBad() { ... }",
      "stream": false,
      "format": "json"
    }' | jq .
  5. コンポーネント全体をレビュー

    jq -Rs でファイルを安全に JSON 化し /api/chat にパイプ。

    audit.sh
    jq -Rs --arg model "wagmi-coder:7b" '{
      model: $model,
      stream: false,
      format: "json",
      messages: [{ role: "user", content: . }]
    }' src/useSwap.tsx | curl -s http://localhost:11434/api/chat -d @- | jq -r '.message.content' | jq .
  6. Wagmi AI プロキシ API

    npm run dev で本サイトを起動すると /api/wagmi が Ollama を代行。JSON エスケープ不要。

    proxy.sh
    curl -s -X POST "https://wagmiai.dev/api/wagmi?model=wagmi-coder:7b" \
      -H "Content-Type: text/plain" \
      --data-binary @src/useSwap.tsx | jq .report

Live example

バグのある hook を入れると、このようなレポート

chain ガード不足と stale balance を含む swap コンポーネントを wagmi-coder:7b でレビューした例。

入力 · useSwap.tsx
import { useAccount, useReadContract, useWriteContract } from 'wagmi'
import { erc20Abi } from 'viem'

export function useSwap(token: `0x${string}`) {
  const { address } = useAccount()

  const { data: balance } = useReadContract({
    address: token,
    abi: erc20Abi,
    functionName: 'balanceOf',
    args: [address!],
  })

  const { writeContract } = useWriteContract()

  const swap = () =>
    writeContract({
      address: token,
      abi: erc20Abi,
      functionName: 'approve',
      args: ['0xRouter...', balance ?? 0n],
    })

  return { balance, swap }
}
出力 · POST /api/wagmi
{
  "model": "wagmi-coder:7b",
  "report": {
    "quality_score": 88,
    "findings": [
      {
        "severity": "high",
        "title": "Missing chainId on writeContract",
        "line": 24,
        "pattern": "wagmi/write-chain-guard",
        "recommendation": "Pass chainId from useChainId() or use useWriteContract({ mutation: { onError } }) with simulate first."
      },
      {
        "severity": "medium",
        "title": "Stale balance after wallet switch",
        "line": 11,
        "pattern": "tanstack/query-key-account",
        "recommendation": "Include address and chainId in TanStack Query key via wagmi's queryKey helper."
      }
    ]
  }
}

Coverage

1 リクエストで確認する Wagmi パターン

hook の誤用からコネクタ設定、マルチチェーン、viem 型まで一度に。

useAccount / useConnect

コネクタ状態、再接続、SSR hydration

useReadContract

ABI 型、enabled、ブロック/tag の鮮度

useWriteContract

シミュレーション、chainId、receipt ポーリング

useWatchContractEvent

リスナー解放とマルチチェインフィルタ

createConfig

chains、transports、SSR cookie 設定

WalletConnect

Project ID、metadata、ディープリンク

Multicall & batching

Wagmi hooks と viem multicall

Error handling

RPC エラー、ユーザー拒否、revert data

TanStack Query

チェーン/アカウント切替後の queryKey 設計

Testing

モックコネクタと hook テスト

Performance

不要な refetch とキャッシュ調整

Security UX

トランザクションプレビューとアドレス checksum

API reference

2 つのエンドポイント、1 つのスキーマ

Ollama (http://localhost:11434) を直接呼ぶか、Wagmi AI プロキシで簡単に。

  • POST/api/wagmi

    TS/TSX ソースを受け取り Ollama でレビューし JSON レポートを返す

    Wagmi AI
  • GET/api/models

    利用可能モデルと Modelfile の URL

    Wagmi AI
  • GET/api/modelfile/:slug

    ollama create 用 Modelfile (text/plain)

    Wagmi AI
  • POST/api/chat

    チャット — messages にソースを渡す

    Ollama
  • POST/api/generate

    単一プロンプト — 短いスニペットのテスト用

    Ollama

JSON ボディでのリクエスト

chat.json
curl -s http://localhost:11434/api/chat -d '{
  "model": "wagmi-coder:7b",
  "stream": false,
  "format": "json",
  "messages": [
    {
      "role": "user",
      "content": "Review this Wagmi React component for hook and viem best practices.\n\n<file contents>"
    }
  ]
}' | jq -r '.message.content' | jq .

CI パイプラインゲート

ci-gate.sh
#!/usr/bin/env bash
set -euo pipefail
MODEL="wagmi-coder:7b"
for f in src/**/*.tsx; do
  report=$(curl -sf -X POST "$SITE/api/wagmi?model=$MODEL" \
    -H "Content-Type: text/plain" --data-binary @"$f" | jq -r '.report.quality_score')
  if [[ "$report" -lt 70 ]]; then
    echo "Wagmi review failed for $f (score $report)"
    exit 1
  fi
done

FAQ

よくある質問

デプロイ前に、まず Wagmi AI に聞く

無料 · オープンソース · 100% ローカル。今日最初の hook をレビュー。

AI 分析は参考情報であり、専門的なセキュリティレビューの代替にはなりません。Wagmi と Ollama は各所有者の商標です。

© 2026 Wagmi AI