jpskill.com
🛠️ 開発・MCP コミュニティ

Solidityコントラクトデプロイ

solidity-deploy

コントラクトのデプロイやスクリプト作成前に実行必須で、事前チェック、デプロイ後の検証、ブロックエクスプローラーでの確認などを自動で行い、デプロイ作業を円滑に進めるSkill。

📜 元の英語説明(参考)

[AUTO-INVOKE] MUST be invoked BEFORE deploying contracts or writing deployment scripts (*.s.sol). Covers pre-flight checks, forge script commands, post-deployment validation, and verification. Trigger: any task involving forge script, contract deployment, or block explorer verification.

🇯🇵 日本人クリエイター向け解説

一言でいうと

コントラクトのデプロイやスクリプト作成前に実行必須で、事前チェック、デプロイ後の検証、ブロックエクスプローラーでの確認などを自動で行い、デプロイ作業を円滑に進めるSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o solidity-deploy.zip https://jpskill.com/download/5973.zip && unzip -o solidity-deploy.zip && rm solidity-deploy.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5973.zip -OutFile "$d\solidity-deploy.zip"; Expand-Archive "$d\solidity-deploy.zip" -DestinationPath $d -Force; ri "$d\solidity-deploy.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して solidity-deploy.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → solidity-deploy フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

デプロイメントワークフロー

言語ルール

  • ユーザーが使用している言語と常に同じ言語で応答してください。 ユーザーが中国語で質問した場合は中国語で、英語で質問した場合は英語で応答します。

デプロイ前チェックリスト(すべて合格必須)

ステップ コマンド / アクション
コードのフォーマット forge fmt
全テストの実行 forge test — 失敗はゼロである必要があります
ガスレポートの確認 forge test --gas-report — 重要な関数を確認します
設定の検証 config/*.json のパラメータを手動で確認します
ドライラン forge script <Script> --fork-url $RPC_URL -vvvv (--broadcast なし)
残高の確認 cast balance $DEPLOYER --rpc-url $RPC_URL — 十分なガスがありますか?
ガスリミットの設定 デプロイコマンドには --gas-limit を含める必要があります

デプロイメント決定ルール

状況 ルール
デフォルトのデプロイメント --verify なし — コントラクトはデフォルトではブロックエクスプローラーで検証されません
ユーザーが検証を要求した場合 コマンドに --verify--etherscan-api-key を追加します
デプロイ後の検証 forge verify-contract を別のステップとして使用します
マルチチェーンデプロイ チェーンごとにスクリプトを分け、1つのスクリプトで複数のチェーンをバッチ処理しないでください
プロキシデプロイメント まず実装をデプロイし、次にプロキシをデプロイします — 両方を個別に検証します

デプロイ後の操作(すべて必須)

  1. config/*.json および deployments/latest.env のアドレスを更新します
  2. 重要な関数をテストします: cast call / cast send を使用してオンチェーンの動作を確認します
  3. docs/CHANGELOG.md に変更を記録します
  4. デプロイメントトランザクションハッシュリンクを含むPRを提出します
  5. 検証が必要な場合は、forge verify-contract を個別に実行します

コマンドテンプレート

# 環境の読み込み
source .env

# 標準デプロイメント(デフォルトでは検証なし)
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --broadcast \
  --gas-limit 5000000 \
  -vvvv

# 検証付きデプロイメント(明示的に要求された場合のみ)
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --broadcast \
  --verify \
  --etherscan-api-key $ETHERSCAN_API_KEY \
  --gas-limit 5000000 \
  -vvvv

# 既存のコントラクトを個別に検証
forge verify-contract <ADDRESS> <CONTRACT> \
  --chain-id <CHAIN_ID> \
  --etherscan-api-key $ETHERSCAN_API_KEY \
  --constructor-args $(cast abi-encode "constructor(address)" <ARG>)

# デプロイ後のクイックオンチェーン関数テスト
cast call <CONTRACT_ADDRESS> "functionName()" --rpc-url $RPC_URL
cast send <CONTRACT_ADDRESS> "functionName(uint256)" 100 \
  --rpc-url $RPC_URL --private-key $PRIVATE_KEY
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Deployment Workflow

Language Rule

  • Always respond in the same language the user is using. If the user asks in Chinese, respond in Chinese. If in English, respond in English.

Pre-deployment Checklist (all must pass)

Step Command / Action
Format code forge fmt
Run all tests forge test — zero failures required
Check gas report forge test --gas-report — review critical functions
Verify config Manually check config/*.json parameters
Dry-run forge script <Script> --fork-url $RPC_URL -vvvv (no --broadcast)
Check balance cast balance $DEPLOYER --rpc-url $RPC_URL — sufficient gas?
Gas limit set Deployment command must include --gas-limit

Deployment Decision Rules

Situation Rule
Default deployment No --verify — contracts are not verified on block explorers by default
User requests verification Add --verify and --etherscan-api-key to the command
Post-deploy verification Use forge verify-contract as a separate step
Multi-chain deploy Separate scripts per chain, never batch multiple chains in one script
Proxy deployment Deploy implementation first, then proxy — verify both separately

Post-deployment Operations (all required)

  1. Update addresses in config/*.json and deployments/latest.env
  2. Test critical functions: cast call / cast send to verify on-chain behavior
  3. Record changes in docs/CHANGELOG.md
  4. Submit PR with deployment transaction hash link
  5. If verification needed, run forge verify-contract separately

Command Templates

# Load environment
source .env

# Standard deployment (no verification by default)
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --broadcast \
  --gas-limit 5000000 \
  -vvvv

# Deployment with verification (only when explicitly requested)
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --broadcast \
  --verify \
  --etherscan-api-key $ETHERSCAN_API_KEY \
  --gas-limit 5000000 \
  -vvvv

# Verify existing contract separately
forge verify-contract <ADDRESS> <CONTRACT> \
  --chain-id <CHAIN_ID> \
  --etherscan-api-key $ETHERSCAN_API_KEY \
  --constructor-args $(cast abi-encode "constructor(address)" <ARG>)

# Quick on-chain function test after deployment
cast call <CONTRACT_ADDRESS> "functionName()" --rpc-url $RPC_URL
cast send <CONTRACT_ADDRESS> "functionName(uint256)" 100 \
  --rpc-url $RPC_URL --private-key $PRIVATE_KEY