skills/blockchain/solidity/SKILL.md
Solidity is a statically-typed language for writing secure smart contracts on the Ethereum blockchain.
npx skillsauth add alphaonedev/openclaw-graph solidityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables the AI to write, compile, and debug Solidity code for secure smart contracts on the Ethereum blockchain. It focuses on generating and manipulating Solidity scripts to interact with decentralized applications.
Use this skill when developing Ethereum-based smart contracts, such as token implementations, decentralized exchanges, or voting systems. Apply it for tasks requiring on-chain logic, like handling transactions or state changes, especially in projects involving Web3 integration or blockchain prototyping.
To accomplish tasks, structure code with a contract definition, state variables, and functions. For example, invoke this skill by providing a prompt like: "Write a Solidity contract for a simple token." Always specify the Solidity version in code, e.g., pragma solidity ^0.8.0;. Use it in loops for iterative development, such as compiling code, checking for errors, and redeploying. Integrate with testing frameworks like Hardhat or Truffle for end-to-end workflows.
Use the solc compiler for building contracts. To compile a file: solc --optimize --bin YourContract.sol --output-dir build/. For ABI generation: solc --abi YourContract.sol. In OpenClaw, call this via API endpoints like POST /api/solidity/compile with a JSON body: {"source": "pragma solidity ^0.8.0; contract Simple {}"}. Config formats: Use a solc.json file with {"language": "Solidity", "sources": {"YourContract.sol": {"content": "..."}}}. For Ethereum interactions, set environment variables like $ETHEREUM_API_KEY for RPC nodes, then use web3.js: const web3 = new Web3(new Web3.providers.HttpProvider(https://mainnet.infura.io/v3/${process.env.ETHEREUM_API_KEY})).
Integrate Solidity with OpenClaw by passing code snippets in prompts, e.g., "Compile this Solidity code: pragma solidity ^0.8.0; contract Example {}." Use Hardhat for project setup: install via npm install --save-dev hardhat, then run npx hardhat compile in your workflow. For API calls, ensure $SOLC_VERSION is set, e.g., export SOLC_VERSION=0.8.19, and use it in commands like solc-select $SOLC_VERSION. If deploying, reference Infura or Alchemy endpoints with auth: export ALCHEMY_API_KEY=yourkey, then connect via web3. Avoid direct blockchain interactions without error checking.
When compiling, check for syntax errors like undeclared variables; use solc --optimize YourContract.sol 2>&1 to capture output and parse for messages like "Parser error: Expected token". For runtime errors, wrap functions with require statements, e.g.: function safeTransfer(uint amount) public { require(amount > 0, "Amount must be positive"); }. In OpenClaw, handle API errors by checking response codes: if (response.status === 400) { retry with corrected code; }. Common issues: Gas limit exceeded—optimize code by removing unnecessary computations; Type mismatches—use explicit casting, e.g., uint8(myUint) = 255;. Log errors with events: event Error(string message); emit Error("Transaction failed").
tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui