solidity — скилл для Claude Code: безопасные контракты и gas
Скилл для написания и ревью Solidity-контрактов: паттерны защиты от reentrancy, оптимизация gas, тесты и связка с React-фронтендом.
npx skills add Mindrally/skills --skill solidity -a claude-codeЧто делает solidity
Скилл задаёт агенту набор правил по Solidity. Внутри — структура кода и безопасность: явные модификаторы видимости, NatSpec, паттерн Checks-Effects-Interactions, ReentrancyGuard, SafeERC20, AccessControl из OpenZeppelin, требование Solidity 0.8.0+ для защиты от переполнений, Pausable для аварийной остановки, таймлоки и мультисиг для чувствительных операций.
Отдельный блок про gas: immutable для значений из конструктора, custom errors вместо строк в revert, плотная упаковка storage-переменных. Для анализа скилл опирается на Slither и Mythril, тесты и разработку — на Hardhat, плюс pre-commit линтеры. Есть и продвинутые паттерны: Chainlink VRF для случайности, state machine, ERC20Snapshot, ERC20Permit и ERC20Votes.
Фронтенд-часть требует типизировать вызовы контрактов через генерацию TypeScript-типов из ABI (TypeChain, wagmi/viem), держать состояние кошелька и сети явным, показывать жизненный цикл транзакции от submitted до confirmed. Перед подписью скилл советует симулировать вызов через eth_call и оценку gas. Если у вас в проекте контракты на версии ниже 0.8.0, часть рекомендаций по переполнениям не сработает — это повод проверить компилятор.
Какие задачи решает
- закрыть контракт от reentrancy через Checks-Effects-Interactions
- снизить расход gas на деплое и в рантайме
- настроить Slither и Mythril в CI
- сгенерировать TypeScript-типы из ABI для фронтенда
- показать в UI статус транзакции от отправки до подтверждения
Примеры запросов агенту
- проверь мой контракт на reentrancy и доступы
- оптимизируй gas в этом контракте: immutable и custom errors
- сгенерируй типы из ABI и подключи вызов контракта в React
Как установить solidity
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill solidity -a claude-code2Вручную: положить файлы
~/.claude/skills/solidity/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/solidity/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill solidity -a codex2Вручную: положить файлы
.agents/skills/solidity/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill solidity -a cursor2Вручную: положить файлы
.cursor/skills/solidity/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills solidity2Вручную: положить файлы
.github/skills/solidity/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill solidity -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path solidityВручную: положить файлы
.devin/skills/solidity/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill solidity -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора168
Похожие
Рядом в теме «Языки программирования»
Все скиллы по теме «Языки программирования» →Вопросы о solidity
Как установить solidity в Claude?
Выполните npx skills add Mindrally/skills --skill solidity -a claude-code. После этого файл скилла лежит в ~/.claude/skills/solidity/SKILL.md.
Что делает скилл solidity?
Даёт агенту правила по разработке и ревью Solidity-контрактов: безопасность, оптимизация gas, тестирование и интеграция с Web3-фронтендом.
Какие инструменты нужны для работы скилла?
В рекомендациях названы Slither и Mythril для статического анализа, Hardhat для тестов и разработки, OpenZeppelin для контрактов, Chainlink VRF для случайности, TypeChain или wagmi/viem для типов фронтенда.
Исходный текст
SKILL.md · Apache-2.0
--- name: solidity description: "Best practices for secure, gas-efficient Solidity smart contract development and Web3 frontend integration. Use when writing or reviewing Solidity contracts, hardening against reentrancy and access-control bugs, optimizing gas usage, setting up Hardhat/Foundry testing and static analysis, or wiring a React frontend to wallets, providers, and on-chain transactions." metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills --- # Solidity This skill covers best practices for Solidity smart contract development, including security patterns, gas optimization, testing/tooling, and integrating contracts with a Web3 React frontend. ## Core Principles - Cut the fluff. Code or detailed explanations only - Maintain brevity while prioritizing accuracy and depth - Answer first, explain later when needed ## Code Structure & Security - Use explicit visibility modifiers and NatSpec documentation - Apply function modifiers to reduce redundancy - Follow naming conventions: - CamelCase for contracts - PascalCase for interfaces (prefix with "I") - Implement Interface Segregation Principle - Use proxy patterns for upgradeable contracts - Emit comprehensive events for state changes - Follow Checks-Effects-Interactions pattern against reentrancy ## Security Best Practices - Use OpenZeppelin's AccessControl for permissions - Require Solidity 0.8.0+ for overflow/underflow protection - Use Pausable pattern for circuit breakers - Implement ReentrancyGuard for additional protection - Use SafeERC20 for token interactions - Employ pull-over-push payment patterns - Implement timelocks and multisig controls for sensitive operations ## Gas Optimization - Optimize gas consumption (deployment and runtime) - Use immutable variables for constructor-set values - Use custom errors instead of revert strings - Pack storage variables efficiently - Use appropriate data types ## Tools & Analysis - Integrate Slither and Mythril for static analysis - Leverage Hardhat's testing and development environment - Implement robust CI/CD pipelines - Use pre-commit linting tools ## Advanced Patterns - Chainlink VRF for randomness - Strategic assembly use with extensive documentation - State machine patterns for complex logic - ERC20Snapshot, ERC20Permit, and ERC20Votes for specialized tokens ## Testing & Quality - Comprehensive unit, integration, and end-to-end testing - Property-based testing approaches - High coverage targets - Regular security audits ## Web3 Frontend Integration - Keep frontend code that talks to contracts type-safe and explicit — generate TypeScript types from ABIs (e.g. via TypeChain or wagmi/viem codegen) rather than hand-writing contract call signatures - Treat wallet connection, chain/network state, and transaction status as explicit, typed state (connected/connecting/wrong-network/error), not implicit booleans - Surface transaction lifecycle clearly in the UI: submitted, pending confirmation, confirmed, reverted — never assume a submitted transaction succeeded - Validate and simulate transactions (e.g. `eth_call`/gas estimation) before prompting the user to sign, to catch reverts early - Never trust client-side reads of contract state for authorization decisions — always re-verify on-chain in the contract itself - Handle provider/RPC failures and user rejection of signature requests as expected, recoverable error states
© Mindrally · Apache-2.0 · Mindrally/skills