Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ccashwell/evm-cortexnpx agentmods add skills/ccashwell/evm-cortex/multichain-deploymentWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ccashwell/evm-cortex/multichain-deployment)<a href="https://agentmods.dev/skills/ccashwell/evm-cortex/multichain-deployment"><img src="https://agentmods.dev/badge/skills/ccashwell/evm-cortex/multichain-deployment.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00044 | $0.01927 |
| Opus 5 | $0.00022 | $0.00963 |
| Sonnet 5 | $0.00009 | $0.00385 |
| Haiku 4.5 | $0.00004 | $0.00193 |
Grade A, and why
multichain-deployment scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 250 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Multi-Chain Deployment Patterns
Strategy Overview
For protocol credibility and UX, deploy contracts at the same address on every chain. This requires deterministic deployment via CREATE2 and a consistent deployment flow.
Deterministic Deployment Factory
Use a pre-deployed CREATE2 factory that exists at the same address on all EVM chains.
Arachnid's Deterministic Deployment Proxy (available on nearly all chains):
0x4e59b44847b379578588920cA78FbF26c0B4956C
// Deploy via the keyless CREATE2 factory
function deployDeterministic(bytes memory creationCode, bytes32 salt)
external returns (address deployed)
{
address factory = 0x4e59b44847b379578588920cA78FbF26c0B4956C;
bytes memory payload = abi.encodePacked(salt, creationCode);
(bool ok, bytes memory result) = factory.call(payload);
require(ok, "Deploy failed");
deployed = address(uint160(uint256(keccak256(abi.encodePacked(
bytes1(0xff), factory, salt, keccak256(creationCode)
)))));
}
Multi-Chain Forge Script
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Script, console2} from "forge-std/Script.sol";
import {MyProtocol} from "../src/MyProtocol.sol";
contract MultiChainDeploy is Script {
address constant CREATE2_FACTORY = 0x4e59b44847b379578588920cA78FbF26c0B4956C;
bytes32 constant SALT = keccak256("myprotocol-v1.0.0");
struct ChainConfig {
string rpc;
uint256 chainId;
address admin;
address weth;
}
function configs() internal view returns (ChainConfig[] memory) {
ChainConfig[] memory c = new ChainConfig[](4);
address admin = vm.envAddress("ADMIN_ADDRESS");
c[0] = ChainConfig("mainnet", 1, admin, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
c[1] = ChainConfig("base", 8453, admin, 0x4200000000000000000000000000000000000006);
c[2] = ChainConfig("optimism", 10, admin, 0x4200000000000000000000000000000000000006);
c[3] = ChainConfig("arbitrum", 42161, admin, 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1);
return c;
}
function predictAddress() public view returns (address) {
bytes memory initCode = type(MyProtocol).creationCode;
return address(uint160(uint256(keccak256(abi.encodePacked(
bytes1(0xff), CREATE2_FACTORY, SALT, keccak256(initCode)
)))));
}
function run() external {
uint256 deployerKey = vm.envUint("DEPLOYER_PRIVATE_KEY");
ChainConfig[] memory chains = configs();
address predicted = predictAddress();
console2.log("Predicted address:", predicted);
for (uint256 i = 0; i < chains.length; i++) {
console2.log("\n--- Deploying to", chains[i].rpc, "---");
vm.createSelectFork(chains[i].rpc);
if (predicted.code.length > 0) {
console2.log(" Already deployed, skipping");
continue;
}
vm.startBroadcast(deployerKey);
bytes memory initCode = type(MyProtocol).creationCode;
bytes memory payload = abi.encodePacked(SALT, initCode);
(bool ok,) = CREATE2_FACTORY.call(payload);
require(ok, "Deploy failed");
require(predicted.code.length > 0, "Code not at predicted address");
console2.log(" Deployed at:", predicted);
// Chain-specific initialization
MyProtocol(predicted).initialize(chains[i].admin, chains[i].weth);
vm.stopBroadcast();
}
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 250 lines · 44 tokens per session scan A a90317496367
multichain-deployment is a skill published in the GitHub repository ccashwell/evm-cortex (127 stars, last pushed yesterday), licensed MIT. It adds 44 tokens to every session and 1,927 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
cli-anything-eth2-quickstart
Use eth2-quickstart to autonomously deploy a hardened Ethereum node, install execution and consensus clients, configure validator metadata, expose RPC safely, and inspect node health with structured JSON output.
devloop
Goal-driven development loop — define objective, write rules with key-results, verify visually, sync to issue tracker.
skill0
Root index of x-cmd skill0 sub-skills. Defines the OKR-style agent workflow (goal → rule-verified results → execute), skill discovery, and agent tooling preferences. Style: principle-first, concise, delegate specifics to authoritative external sources.
bitcoin-core-operations
Running Bitcoin Core in production: bitcoin.conf reference, sections, pruning, signet, dbcache, mempool tuning, network bind, Tor, IBD considerations, debug.log analysis. USE WHEN: deploying a node, tuning performance, debugging IBD issues, configuring multi-network nodes.
blockchain-infrastructure
Use this skill when asked about blockchain node deployment, RPC infrastructure, CI/CD for smart contracts, monitoring and alerting for blockchain networks, MEV infrastructure (Flashbots, builders, relays), key management (KMS, HSM), and environment management for devnet/testnet/staging/mainnet. Languages: Go, Rust…
Frontend Playbook
Complete build-to-production pipeline for Ethereum dApps — fork mode setup, IPFS deployment, Vercel config, ENS subdomain setup, and a full production checklist built around Scaffold-ETH 2.