Skip to main content

sepolia-foundry-tx

Use this skill whenever the agent needs to deploy a smart contract to Sepolia testnet via Foundry (`forge create` or `forge script --broadcast`), routed through the Blockscout PRO API's JSON-RPC gateway instead of a third-party RPC provider. Trigger on requests like "deploy this contract to Sepolia", "deploy via Foundry", "broadcast this Foundry deployment script", or any `forge create`/`forge script` invocation that needs a signer and an RPC endpoint for Sepolia (chain id 11155111) in this project. Also consult it to find which local Foundry keystore to sign with — this project stores test signing keys as encrypted keystores under `.ai/wallet/`, never as a plain private key in `.env`. Do not use this for reads (balances, transaction history, contract info) — use the connected Blockscout MCP tools for those directly; this skill is specifically about broadcasting a deployment.

跳到安装

来源信息

仓库
blockscout/mcp-server
最近来源活动
2026年7月16日 20:55
检测到的 SKILL.md 语言
英语
星标
46
分支
25

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
3 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
sepolia-foundry-tx
description
Use this skill whenever the agent needs to deploy a smart contract to Sepolia testnet via Foundry (`forge create` or `forge script --broadcast`), routed through the Blockscout PRO API's JSON-RPC gateway instead of a third-party RPC provider. Trigger on requests like "deploy this contract to Sepolia", "deploy via Foundry", "broadcast this Foundry deployment script", or any `forge create`/`forge script` invocation that needs a signer and an RPC endpoint for Sepolia (chain id 11155111) in this project. Also consult it to find which local Foundry keystore to sign with — this project stores test signing keys as encrypted keystores under `.ai/wallet/`, never as a plain private key in `.env`. Do not use this for reads (balances, transaction history, contract info) — use the connected Blockscout MCP tools for those directly; this skill is specifically about broadcasting a deployment.
# Deploying contracts to Sepolia via Foundry + Blockscout PRO API ## What this is for Deploying a contract needs three ingredients: an RPC endpoint that accepts the broadcast, credentials for it, and a signer. This project gets all three without a third-party RPC provider — the Blockscout PRO API's JSON-RPC gateway, authenticated with the project's existing `BLOCKSCOUT_PRO_API_KEY`, and a local encrypted Foundry keystore. `scripts/deploy.sh` wires these together and runs the real `forge create`/`forge script` command. ## Creating a signing key If `.ai/wallet/` has no keystore yet (the script will `die` saying so), create one — an encrypted Foundry keystore, never a plain private key in `.env`: ```bash mkdir -p .ai/wallet openssl rand -base64 32 | tr -d '\n' > .ai/wallet/<name>.pass && chmod 600 .ai/wallet/<name>.pass CAST_PASSWORD="$(cat .ai/wallet/<name>.pass)" cast wallet new .ai/wallet <name> && chmod 600 ".ai/wallet/<name>" ``` Report the resulting address to the user so they can fund it with Sepolia testnet ETH — the script checks the balance itself before broadcasting and will refuse with a clear error if it isn't enough (see [Reading the script's output](#reading-the-scripts-output)). ## Quick start ```bash .agents/skills/sepolia-foundry-tx/scripts/deploy.sh <create|script> [--key-name NAME] [--chain-id ID] -- <forge args...> ``` The script auto-adds `--gas-limit 2500000` and `--legacy` because the gateway can't estimate contract-creation gas or EIP-1559 fees (full rationale in [Background](#background--how-this-was-verified)) — you rarely need to touch these. Override `--gas-limit` for an unusually large contract, an out-of-gas revert, or an "InsufficientFunds" error on a lightly-funded wallet — lowering the limit can resolve that (see Background for why). **Simulate first (no `--broadcast`) to catch problems for free** — forge only broadcasts when `--broadcast` is present in the forwarded args, so omitting it is a safe dry run. Note this only catches compile errors and malformed args, not an insufficient gas limit — the simulation doesn't validate that: ```bash .agents/skills/sepolia-foundry-tx/scripts/deploy.sh create -- src/MyToken.sol:MyToken --constructor-args "Foo" "FOO" ``` Once that looks right and the user has confirmed (see [Safety](#safety)), add `--broadcast` to actually send it: ```bash .agents/skills/sepolia-foundry-tx/scripts/deploy.sh create -- src/MyToken.sol:MyToken --constructor-args "Foo" "FOO" --broadcast ``` For a scripted, multi-step deployment (`forge script`): ```bash .agents/skills/sepolia-foundry-tx/scripts/deploy.sh script -- script/Deploy.s.sol --broadcast ``` Everything after `--` is forwarded to `forge` verbatim — pass whatever `forge create`/`forge script` flags the deployment needs (`--constructor-args`, `--verify`, etc.). ## Reading the script's output **Before `--broadcast`** (a dry run, or any wrapper-detected problem): the output is trustworthy as-is. Wrapper problems (`error: ...` — see the script's header comment for the exact exit codes) and forge's own pre-broadcast errors (compile failures, bad args) are both directly actionable. One to know: if `.ai/wallet/` has more than one keystore, the script asks for `--key-name` — don't pick one yourself; ask the user which key to use. **After `--broadcast`, trust the script's exit code and its `Verified:` lines, not forge's own output** — forge's success/failure check is unreliable on this gateway (see [Background](#background--how-this-was-verified)). Exit `6` means mined but not yet resolved: inconclusive, check manually rather than retrying; any other nonzero exit is a genuine on-chain failure. See the script header for the full exit-code table. ## Safety - This setup is for a **Sepolia testnet** key with no real economic value. Even so, confirm with the user before running the script *with* `--broadcast` — broadcasting a deployment is not reversible the way a simulation or a read is. - Never widen this to a mainnet chain id (via `--chain-id`) unless the user explicitly asks for that; treat it as a new decision, not a copy-paste of the default. - Don't broadcast a retry based on forge's error text, or on an inconclusive exit `6` — verify on-chain first either way. ## Background / how this was verified `references/pro-api-auth.md` has the supporting evidence behind this skill's choices — gateway write-method support, the auth-method rationale, the gas/fee-estimation gaps, and both false-negative verification bugs. Read it only to re-justify or re-verify any of this after a Blockscout API change; day-to-day deployment work shouldn't need it.
在 GitHub 查看