Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

ethereum-wingman

Scaffold-ETH 2プロジェクト向けのEthereum開発チューターおよびビルダーです。「build」「create」「dApp」「smart contract」「Solidity」「DeFi」「Ethereum」「web3」などのキーワードやブロックチェーン開発タスクでトリガーされます。実際のプロトコル状態に対してテストするため、常にforkモードを使用します。

description の原文を見る

Ethereum development tutor and builder for Scaffold-ETH 2 projects. Triggers on "build", "create", "dApp", "smart contract", "Solidity", "DeFi", "Ethereum", "web3", or any blockchain development task. ALWAYS uses fork mode to test against real protocol state.

SKILL.md 本文

Ethereum Wingman

Scaffold-ETH 2 プロジェクト向けの包括的な Ethereum 開発ガイド。スマートコントラクト開発、DeFi プロトコル、セキュリティベストプラクティス、SpeedRun Ethereum カリキュラムをカバー。


AI エージェント用指示 - まず読んでください

デフォルトスタック: Fork モード付き Scaffold-ETH 2

ユーザーが Ethereum プロジェクトを構築したいときは、以下の手順に従ってください:

ステップ 1: プロジェクトを作成

npx create-eth@latest
# 選択: foundry (推奨), ターゲットチェーン, プロジェクト名

ステップ 2: ポーリング間隔を修正

packages/nextjs/scaffold.config.ts を編集して:

pollingInterval: 30000,  // デフォルト: 30 秒(遅すぎます!)

を以下に変更:

pollingInterval: 3000,   // 3 秒(開発に適切)

ステップ 3: インストール & ライブネットワークをフォーク

cd <project-name>
yarn install
yarn fork --network base  # または mainnet, arbitrum, optimism, polygon

ステップ 4: 自動ブロックマイニングを有効化(必須!)

# 新しいターミナルで区間マイニングを有効化(1 秒/ブロック)
cast rpc anvil_setIntervalMining 1

これなしでは、block.timestamp が凍結したままになり、時間依存ロジックが破壊されます!

オプション: 永続化 - packages/foundry/package.json を編集して fork スクリプトに --block-time 1 を追加。

ステップ 5: ローカルフォークにデプロイ(無料!)

yarn deploy

ステップ 6: フロントエンドを起動

yarn start

ステップ 7: フロントエンドをテスト

フロントエンドが実行中になったら、ブラウザを開いてアプリをテスト:

  1. 移動 - http://localhost:3000
  2. スナップショット取得 - ページ要素を取得(バーナーウォレットアドレスはヘッダーに表示)
  3. フォーセットをクリック - バーナーウォレットに ETH を供給
  4. トークン転送 - 必要に応じてクジラからトークンを転送(ページのバーナーアドレスを使用)
  5. アプリをクリック - 機能を検証

ブラウザ自動化には cursor-browser-extension MCP ツールを使用。 詳細なワークフローは tools/testing/frontend-testing.md を参照。

禁止事項:

  • yarn chain を実行しない(代わりに yarn fork --network <chain> を使用!)
  • 手動で forge init を実行したり、Foundry をスクラッチから設定しない
  • 手動で Next.js プロジェクトを作成しない
  • ウォレット接続を手動で設定しない(SE2 に RainbowKit が事前設定済み)

Fork モードを使う理由?

yarn chain(間違い)           yarn fork --network base(正解)
└─ 空のローカルチェーン       └─ 実際の Base メインネットのフォーク
└─ プロトコルなし             └─ Uniswap, Aave など利用可能
└─ トークンなし               └─ 実際の USDC, WETH が存在
└─ 隔離環境でテスト           └─ 実際の状態でテスト

アドレスデータが利用可能

トークン、プロトコル、クジラアドレスは data/addresses/ にあります:

  • tokens.json - チェーンごとの WETH, USDC, DAI など
  • protocols.json - チェーンごとの Uniswap, Aave, Chainlink
  • whales.json - テスト資金用の大型トークン保有者

最も重要な概念

Ethereum では何も自動ではありません。

スマートコントラクトは自分で実行できません。クーロンジョブ、スケジューラ、バックグラウンドプロセスはありません。「発生する必要がある」すべての関数について:

  1. 誰でも呼び出せるようにする(管理者のみではなく)
  2. 呼び出し者に理由を与える(利益、報酬、自分の利益)
  3. インセンティブを十分にしてガス代と利益をカバーする

常に問う:「誰がこの関数を呼び出すのか?なぜガス代を払うのか?」

これに答えられなければ、関数は呼ばれません。

適切なインセンティブ設計の例

// 清算:呼び出し者がボーナス担保を取得
function liquidate(address user) external {
    require(getHealthFactor(user) < 1e18, "Healthy");
    uint256 bonus = collateral * 5 / 100; // 5% ボーナス
    collateralToken.transfer(msg.sender, collateral + bonus);
}

// 利回り収穫:呼び出し者が収穫の % を取得
function harvest() external {
    uint256 yield = protocol.claimRewards();
    uint256 callerReward = yield / 100; // 1%
    token.transfer(msg.sender, callerReward);
}

// クレーム:ユーザーが自分のトークンを取得
function claimRewards() external {
    uint256 reward = pendingRewards[msg.sender];
    pendingRewards[msg.sender] = 0;
    token.transfer(msg.sender, reward);
}

重大な落とし穴(これを覚えてください)

1. トークン小数点が異なる

USDC = 18 ではなく 6 小数点!

// 悪い例:18 小数点と仮定 - 1 兆 USDC を転送!
uint256 oneToken = 1e18;

// 良い例:小数点をチェック
uint256 oneToken = 10 ** token.decimals();

一般的な小数点:

  • USDC, USDT:6 小数点
  • WBTC:8 小数点
  • ほとんどのトークン(DAI, WETH):18 小数点

2. ERC-20 承認パターンが必須

コントラクトはトークンを直接引き出せません。2 ステッププロセス:

// ステップ 1:ユーザーが承認
token.approve(spenderContract, amount);

// ステップ 2:コントラクトがトークンを引き出す
token.transferFrom(user, address(this), amount);

無限承認を使わないこと:

// 危険
token.approve(spender, type(uint256).max);

// 安全
token.approve(spender, exactAmount);

3. Solidity に浮動小数点はない

ベーシスポイントを使用(1 bp = 0.01%):

// 悪い例:これは 0 です
uint256 fivePercent = 5 / 100;

// 良い例:ベーシスポイント
uint256 FEE_BPS = 500; // 5% = 500 ベーシスポイント
uint256 fee = (amount * FEE_BPS) / 10000;

4. リエントランシー攻撃

外部呼び出しはコントラクトにコールバックできます:

// 安全:Checks-Effects-Interactions パターン
function withdraw() external nonReentrant {
    uint256 bal = balances[msg.sender];
    balances[msg.sender] = 0; // インタラクション前にエフェクト
    (bool success,) = msg.sender.call{value: bal}("");
    require(success);
}

常に OpenZeppelin の ReentrancyGuard を使用。

5. DEX スポット価格をオラクルとして使わない

フラッシュローンはスポット価格を即座に操作できます:

// 安全:Chainlink を使用
function getPrice() internal view returns (uint256) {
    (, int256 price,, uint256 updatedAt,) = priceFeed.latestRoundData();
    require(block.timestamp - updatedAt < 3600, "Stale");
    require(price > 0, "Invalid");
    return uint256(price);
}

6. ボルト膨張攻撃

最初のデポジター者はシェア操作で資金を盗める:

// 緩和策:仮想オフセット
function convertToShares(uint256 assets) public view returns (uint256) {
    return assets.mulDiv(totalSupply() + 1e3, totalAssets() + 1);
}

7. SafeERC20 を使用

一部のトークン(USDT)は転送で bool を返さない:

import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
using SafeERC20 for IERC20;

token.safeTransfer(to, amount); // 非標準トークンに対応

Scaffold-ETH 2 開発

プロジェクト構造

packages/
├── foundry/              # スマートコントラクト
│   ├── contracts/        # Solidity ファイル
│   └── script/           # デプロイスクリプト
└── nextjs/
    ├── app/              # React ページ
    └── contracts/        # 生成 ABI + externalContracts.ts

必須フック

// コントラクトデータを読取
const { data } = useScaffoldReadContract({
  contractName: "YourContract",
  functionName: "greeting",
});

// コントラクトに書き込み
const { writeContractAsync } = useScaffoldWriteContract("YourContract");

// イベントを監視
useScaffoldEventHistory({
  contractName: "YourContract",
  eventName: "Transfer",
  fromBlock: 0n,
});

SpeedRun Ethereum チャレンジ

実践学習にはこれらを参照:

チャレンジコンセプト主要レッスン
0: シンプル NFTERC-721ミント、メタデータ、tokenURI
1: ステーキングコーディネーションデッドライン、エスクロー、閾値
2: トークンベンダーERC-20承認パターン、買い/売り
3: サイコロゲームランダムネスオンチェーン乱数は不安全
4: DEXAMMx*y=k 公式、スリッページ
5: オラクル価格フィードChainlink、操作耐性
6: レンディング担保ヘルスファクター、清算インセンティブ
7: ステーブルコインペッグCDP、過剰担保化
8: 予測市場解決結果決定
9: ZK投票プライバシーゼロ知識証明
10: マルチシグ署名閾値承認
11: SVG NFTオンチェーンアートジェネレーティブ、base64 エンコーディング

DeFi プロトコルパターン

Uniswap(AMM)

  • 定積公式:x * y = k
  • スリッページ保護が必須
  • LP トークンはプール シェアを表す

Aave(レンディング)

  • 担保を供給し、資産を借用
  • ヘルスファクター = 担保価値 / 債務価値
  • ヘルスファクター < 1 の場合に清算

ERC-4626(トークン化ボルト)

  • 利回りボルト向けの標準インターフェース
  • シェア会計で deposit/withdraw
  • インフレーション攻撃から保護

セキュリティレビューチェックリスト

デプロイ前に確認:

  • すべての管理者関数でアクセス制御
  • リエントランシー保護(CEI + nonReentrant)
  • トークン小数点の処理が正確
  • オラクル操作に耐性あり
  • 整数オーバーフロー対応(0.8 以上または SafeMath)
  • 戻り値チェック(SafeERC20)
  • 入力検証あり
  • 状態変化でイベント発行
  • メンテナンス関数のインセンティブ設計

レスポンスガイドライン

開発者を支援する際:

  1. Fork ワークフローに従う - 常に yarn fork を使用、yarn chain は禁止
  2. 直接答える - まず質問に対応
  3. コードを表示 - 動作する例を提供
  4. 落とし穴を警告 - 関連する落とし穴を主動的に言及
  5. チャレンジを参照 - 練習用に SpeedRun Ethereum を指摘
  6. インセンティブについて質問 - 「自動」関数について、誰が呼び出すのか、なぜかを質問

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
austintgriffith
リポジトリ
austintgriffith/ethereum-wingman
ライセンス
MIT
最終更新
不明

Source: https://github.com/austintgriffith/ethereum-wingman / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: austintgriffith · austintgriffith/ethereum-wingman · ライセンス: MIT