Protocol Deployment
sablier-labs/evm-monorepo
Deploy Sablier protocols to a new EVM chain. An agent skill from sablier-labs/evm-monorepo.
A skill your agent uses when deploying dApp frontends to IPFS or decentralized hosting.
$ npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ccashwell/evm-cortex ipfs-deployment --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ipfs-deployment .claude/skills/ipfs-deployment && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ipfs-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deployment into .claude/skills/ipfs-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ipfs-deployment", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deploymentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ccashwell/evm-cortex ipfs-deployment --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ipfs-deployment .agents/skills/ipfs-deployment && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ipfs-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deployment into .agents/skills/ipfs-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ipfs-deployment", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ccashwell/evm-cortex ipfs-deployment --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ipfs-deployment .cursor/skills/ipfs-deployment && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ipfs-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deployment into .cursor/skills/ipfs-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ipfs-deployment", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ccashwell/evm-cortex.git --path skills/ipfs-deployment--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ccashwell/evm-cortex ipfs-deployment --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ipfs-deployment .gemini/skills/ipfs-deployment && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ipfs-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deployment into .gemini/skills/ipfs-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ipfs-deployment", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ccashwell/evm-cortex ipfs-deploymentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ipfs-deployment .github/skills/ipfs-deployment && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ipfs-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deployment into .github/skills/ipfs-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ipfs-deployment", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ccashwell/evm-cortex ipfs-deployment --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ipfs-deployment .opencode/skills/ipfs-deployment && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ipfs-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/ipfs-deployment into .opencode/skills/ipfs-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ipfs-deployment", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ipfs-deploymentA skill your agent uses when deploying dApp frontends to IPFS or decentralized hosting.
Ipfs Deployment is an agent skill from ccashwell/evm-cortex. Use when deploying dApp frontends to IPFS or decentralized hosting. Covers static builds, IPFS pinning (Pinata, Fleek), ENS content hash, trailingSlash configuration, and gateway setup.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Smart contracts and Deployment. It works with Next.js. The repository describes itself as: Ethereum protocol engineering squad for AI coding assistants. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f8f3301. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmcurlnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gateway.pinata.cloudcloudflare-ipfs.comapi.pinata.cloudFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DEPLOYER_KEYENS_DEPLOYER_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ipfs Deployment loads about 1.5k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 289 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ccashwell/evm-cortex at commit f8f3301, republished under its MIT licence (© ccashwell). 289 words, ~1,541 tokens.
.claude/skills/ipfs-deployment/SKILL.md (or your agent's skills folder).Deploying a dApp frontend to IPFS ensures censorship resistance and permanence. The frontend is served via IPFS gateways or ENS+IPFS resolution. Critical for truly decentralized protocols.
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
trailingSlash: true, // CRITICAL: IPFS serves directories, needs index.html in each
images: {
unoptimized: true, // No image optimization server on IPFS
},
assetPrefix: './', // Relative paths for IPFS gateway compatibility
};
module.exports = nextConfig;Why trailingSlash: true is critical: IPFS resolves /about as a file, but /about/ as a directory containing index.html. Without trailing slashes, navigation breaks on IPFS gateways.
// vite.config.ts
import { defineConfig } from 'vite';
export default defineConfig({
base: './', // Relative paths
build: {
outDir: 'dist',
},
});{
"homepage": "."
}# ALWAYS clean before building for IPFS
rm -rf out/ dist/ .next/
# Build
npm run build
# Verify the output
ls -la out/ # or dist/
# Should contain index.html and all static assets# Install Pinata CLI
npm install -g @pinata/cli
# Pin a directory
pinata upload ./out
# Or via API
curl -X POST "https://api.pinata.cloud/pinning/pinFileToIPFS" \
-H "Authorization: Bearer $PINATA_JWT" \
-F "file=@./out"// Programmatic pinning
import PinataSDK from '@pinata/sdk';
const pinata = new PinataSDK({ pinataJWTKey: process.env.PINATA_JWT });
const result = await pinata.pinFromFS('./out', {
pinataMetadata: { name: 'my-dapp-v1.2.0' },
pinataOptions: { cidVersion: 1 },
});
console.log('IPFS Hash:', result.IpfsHash);
// e.g., bafybeie5gq4jxvzmsym6hjlwxej4rwdoxt7wadqvmmwbqqblsm54ceyaiq# Install Fleek CLI
npm install -g @fleek-platform/cli
# Login
fleek login
# Deploy
fleek sites deploy --dir ./out# Add to local IPFS node
ipfs add -r ./out --cid-version 1
# Returns CID: bafybeie5gq4jxvzmsym6hjlwxej4...
# Pin to remote pinning service
ipfs pin remote add --service=pinata bafybeie5gq4jxvzmsym6hjlwxej4...Link your IPFS deployment to an ENS name for myprotocol.eth resolution:
import { createWalletClient, http, namehash } from 'viem';
import { mainnet } from 'viem/chains';
const ENS_RESOLVER = '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63';
// Set content hash to IPFS CID
const contentHash = encodeContentHash('ipfs://bafybeie5gq4jxvzmsym6hjlwxej4...');
await walletClient.writeContract({
address: ENS_RESOLVER,
abi: resolverAbi,
functionName: 'setContenthash',
args: [namehash('myprotocol.eth'), contentHash],
});Using ethers.js:
import { ethers } from 'ethers';
const resolver = await provider.getResolver('myprotocol.eth');
const tx = await resolver.setContentHash('ipfs://bafybeie5gq4jxvzmsym6hjlwxej4...');
await tx.wait();Access via: https://myprotocol.eth.limo (ETH.limo gateway)
| Gateway | URL Pattern |
|---|---|
| Cloudflare | https://cloudflare-ipfs.com/ipfs/{cid} |
| dweb.link | https://{cid}.ipfs.dweb.link |
| eth.limo | https://{ens}.eth.limo (ENS resolution) |
| Pinata | https://gateway.pinata.cloud/ipfs/{cid} |
| w3s.link | https://{cid}.ipfs.w3s.link |
# Pinata dedicated gateway
https://your-gateway.mypinata.cloud/ipfs/{cid}# .github/workflows/deploy-ipfs.yml
name: Deploy to IPFS
on:
push:
tags: ['v*']
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm run build
- name: Pin to Pinata
env:
PINATA_JWT: ${{ secrets.PINATA_JWT }}
run: |
CID=$(npx @pinata/cli upload ./out --json | jq -r '.IpfsHash')
echo "Deployed to IPFS: $CID"
echo "Gateway: https://gateway.pinata.cloud/ipfs/$CID"
echo "CID=$CID" >> $GITHUB_ENV
- name: Update ENS (optional)
if: github.ref_type == 'tag'
env:
DEPLOYER_KEY: ${{ secrets.ENS_DEPLOYER_KEY }}
run: |
# Update ENS content hash via script
node scripts/update-ens.js ${{ env.CID }}rm -rf out/ dist/ .next/)trailingSlash: true in Next.js config (required for IPFS routing)output: 'export' for static generation (no SSR on IPFS)./ or assetPrefix: './')images.unoptimized: true)npx serve out and verify all routes worktrailingSlash: true: Pages return 404 on IPFS/assets/...): Break on IPFS subpath gatewaystrailingSlash for path router© ccashwell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/ipfs-deployment of ccashwell/evm-cortex.
Open the folder on GitHubat commit f8f3301
Ipfs Deployment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ipfs Deployment this skillccashwell/evm-cortex | 131 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Protocol Deploymentsablier-labs/evm-monorepo | 353 | — | ~3.8k | Automated safety check: Notes | Custom licence | |
| Convex Self Hostingwaynesutton/markdown-site | 628 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Vercel Deploymentdavila7/claude-code-templates | 32k | 5 repos | ~534 | Automated safety check: Pass | MIT | |
| ClankerBankrBot/skills | 1.2k | 1 repos | ~3k | Automated safety check: Notes | None | |
| Defenderquillai-network/quillshield_skills | 129 | — | ~1.7k | Automated safety check: Notes | MIT |
sablier-labs/evm-monorepo
Deploy Sablier protocols to a new EVM chain. An agent skill from sablier-labs/evm-monorepo.
waynesutton/markdown-site
Integrate Convex static self hosting into existing apps using the latest upstream instructions from get-convex/self-hosting every time.
davila7/claude-code-templates
Expert knowledge for deploying to Vercel with Next.js Use when: vercel, deploy, deployment, hosting, production.
BankrBot/skills
Deploy ERC20 tokens on Base, Ethereum, Arbitrum, and other EVM chains using the Clanker SDK.
quillai-network/quillshield_skills
Blue-team release-gate analysis for smart contract deployment and upgrade readiness.
cloudflare/skills
Build, migrate, and deploy Next.js apps on Cloudflare Workers with vinext.
ccashwell/evm-cortex
A skill your agent uses when preparing for a security audit, performing reconnaissance on a new codebase, or creating a protocol overview.
ccashwell/evm-cortex
A skill your agent uses when integrating with Aave V3 for lending, borrowing, flash loans, or building on top of Aave markets.
ccashwell/evm-cortex
Access control design patterns for Solidity protocols. An agent skill from ccashwell/evm-cortex.
ccashwell/evm-cortex
A skill your agent uses when running a local Ethereum node with Anvil.
ccashwell/evm-cortex
A skill your agent uses when performing systematic breadth-first review of all contracts during a security audit.
ccashwell/evm-cortex
A skill your agent uses when performing deep analysis of specific findings or high-risk areas during a security audit.
Works with
A skill your agent uses when deploying dApp frontends to IPFS or decentralized hosting. Ipfs Deployment is an agent skill from ccashwell/evm-cortex. Use when deploying dApp frontends to IPFS or decentralized hosting.
Ipfs Deployment fits situations like: deploying dApp frontends to IPFS; decentralized hosting.
Run `npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a claude-code`. Or copy the skill folder (skills/ipfs-deployment in ccashwell/evm-cortex) into .claude/skills/ipfs-deployment in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a codex`. Or copy the skill folder (skills/ipfs-deployment in ccashwell/evm-cortex) into .agents/skills/ipfs-deployment in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ccashwell/evm-cortex --skill ipfs-deployment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ipfs-deployment, .gemini/skills/ipfs-deployment, .github/skills/ipfs-deployment and .opencode/skills/ipfs-deployment in your project.
Going by SKILL.md and its folder, Ipfs Deployment needs the command-line tools its instructions call (npm, curl and npx) and credentials named DEPLOYER_KEY and ENS_DEPLOYER_KEY. Our summary lists: Node.js; A credential in DEPLOYER_KEY; A credential in ENS_DEPLOYER_KEY.
SKILL.md names 3 domains. In commands or code: gateway.pinata.cloud, cloudflare-ipfs.com and api.pinata.cloud; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ipfs Deployment is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ipfs Deployment: Protocol Deployment (sablier-labs/evm-monorepo, 353 stars), Convex Self Hosting (waynesutton/markdown-site, 628 stars), Vercel Deployment (davila7/claude-code-templates, 32k stars) and Clanker (BankrBot/skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ccashwell (a GitHub user) maintains it in ccashwell/evm-cortex, which has 131 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on September 30, 2026.
Source: ccashwell/evm-cortex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.