Solidityコントラクトデプロイ
コントラクトのデプロイやスクリプト作成前に実行必須で、事前チェック、デプロイ後の検証、ブロックエクスプローラーでの確認などを自動で行い、デプロイ作業を円滑に進める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本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
solidity-deploy.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
solidity-deployフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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つのスクリプトで複数のチェーンをバッチ処理しないでください |
| プロキシデプロイメント | まず実装をデプロイし、次にプロキシをデプロイします — 両方を個別に検証します |
デプロイ後の操作(すべて必須)
config/*.jsonおよびdeployments/latest.envのアドレスを更新します- 重要な関数をテストします:
cast call/cast sendを使用してオンチェーンの動作を確認します docs/CHANGELOG.mdに変更を記録します- デプロイメントトランザクションハッシュリンクを含むPRを提出します
- 検証が必要な場合は、
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)
- Update addresses in
config/*.jsonanddeployments/latest.env - Test critical functions:
cast call/cast sendto verify on-chain behavior - Record changes in
docs/CHANGELOG.md - Submit PR with deployment transaction hash link
- If verification needed, run
forge verify-contractseparately
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