1---2name: solidity3description: Solidity language and compiler — source layout, types, contracts, control flow, security, compiler, ABI, internals.4---56> Skill based on Solidity (ethereum/solidity) docs, generated at 2026-02-09.78Solidity is a statically typed, object-oriented language for EVM smart contracts. This skill covers source layout, types, contract structure, control flow, security patterns, compiler usage, and ABI/internals.910## Core References1112| Topic | Description | Reference |13|-------|-------------|-----------|14| Source Layout | SPDX, pragma, import, comments | [core-layout](references/core-layout.md) |15| Contract Structure | State, functions, modifiers, events, errors, structs, enums | [core-structure](references/core-structure.md) |16| Types | Value/reference/mapping types, operators, conversions | [core-types](references/core-types.md) |17| Control Structures | if/loop, internal/external calls, revert, try/catch | [core-control](references/core-control.md) |18| Units and Globals | Ether/time units, block/msg/tx, ABI/hash helpers | [core-units-globals](references/core-units-globals.md) |1920## Features2122### Contracts2324| Topic | Description | Reference |25|-------|-------------|-----------|26| Contracts | Creation, visibility, modifiers, functions, events, errors, inheritance, interfaces, libraries, using-for | [features-contracts](references/features-contracts.md) |27| Inline Assembly | Yul in Solidity, access to variables, safety | [features-assembly](references/features-assembly.md) |28| Yul | Intermediate language, EVM opcodes, objects | [features-yul](references/features-yul.md) |29| NatSpec | Tags, userdoc/devdoc output, @inheritdoc, @custom | [features-natspec](references/features-natspec.md) |30| Events | Indexed, anonymous, topics, selector, emit | [features-events](references/features-events.md) |31| Custom Errors | revert/require, selector, try/catch, ABI | [features-errors](references/features-errors.md) |32| Libraries | DELEGATECALL, internal vs external, linking | [features-libraries](references/features-libraries.md) |33| Inheritance | virtual/override, super, C3, base constructors | [features-inheritance](references/features-inheritance.md) |34| Interfaces | Restrictions, enum/struct, ABI alignment | [features-interfaces](references/features-interfaces.md) |35| Transient Storage | EIP-1153, transaction-scoped, reentrancy locks | [features-transient-storage](references/features-transient-storage.md) |36| Visibility and Getters | external/public/internal/private, getter generation | [features-visibility-getters](references/features-visibility-getters.md) |3738### Best Practices3940| Topic | Description | Reference |41|-------|-------------|-----------|42| Security | Reentrancy, gas, visibility, randomness, front-running | [best-practices-security](references/best-practices-security.md) |43| Common Patterns | Withdrawal, access control, checks-effects-interactions, proxies | [best-practices-patterns](references/best-practices-patterns.md) |44| Style and Layout | File/contract order, modifier order, naming | [best-practices-style](references/best-practices-style.md) |4546## Advanced4748| Topic | Description | Reference |49|-------|-------------|-----------|50| Compiler | solc CLI, Standard JSON, optimizer, libraries, path resolution | [advanced-compiler](references/advanced-compiler.md) |51| Internals | Storage/memory/calldata layout, optimizer, source mappings | [advanced-internals](references/advanced-internals.md) |52| ABI and Metadata | ABI spec, contract metadata, NatSpec | [advanced-abi-metadata](references/advanced-abi-metadata.md) |53| SMTChecker | Formal verification, engines, targets, options | [advanced-smtchecker](references/advanced-smtchecker.md) |54| Path Resolution | VFS, base/include paths, remapping, allowed paths | [advanced-path-resolution](references/advanced-path-resolution.md) |55| Compilation Output | Bytecode, --asm, optimized vs non-optimized | [advanced-compilation-output](references/advanced-compilation-output.md) |