CtrlK
BlogDocsLog inGet started
Tessl Logo

developing-smart-contracts

Solidity smart contract development guidelines for Linea blockchain. Use when writing, reviewing, or refactoring Solidity contracts, or when the user asks about Solidity best practices, contract structure, or NatSpec docstrings. Covers NatSpec documentation, naming conventions, file layout, and code style.

91

1.47x
Quality

86%

Does it follow best practices?

Impact

99%

1.47x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Linea Smart Contract Development

Best practices for developing Solidity smart contracts on Linea blockchain. Contains rules covering documentation, naming, structure, and code style.

Reference: Linea Contract Style Guide

When to Apply

Reference these guidelines when:

  • Writing new Solidity contracts for Linea
  • Reviewing smart contract code
  • Refactoring existing contracts
  • Adding NatSpec docstring documentation
  • Setting up contract file structure

Licenses

// SPDX-License-Identifier: Apache-2.0 OR MIT

Solidity Pragma

  • Contracts: 0.8.33 (exact)
  • Interfaces, abstract contracts, libraries: ^0.8.33 (caret)

Rule Categories by Priority

PriorityCategoryImpactRule File
1Gas optimizationCRITICALrules/gas-optimization.md
2NatSpec DocstringsHIGHrules/natspec.md
3File LayoutHIGHrules/file-layout.md
4NamingHIGHrules/naming-conventions.md
5ImportsMEDIUMrules/imports.md
6VisibilityMEDIUMrules/visibility.md
7General RulesMEDIUMrules/general-rules.md

Read individual rule files for detailed explanations and code examples (correct and incorrect).

Quick Reference

1. Gas Optimization (CRITICAL)

Gas efficiency is critical for Linea contracts. Apply these rules unless there is a documented safety, audit, or readability reason to deviate.

See rules/gas-optimization.md for details.

2. NatSpec Docstrings (HIGH)

ALWAYS use NatSpec docstrings for all public/external items.

Consult rules/natspec.md for NatSpec docstring rules and examples

3. File Layout (HIGH)

Interface structure:

  1. Structs → 2. Enums → 3. Events → 4. Errors → 5. External Functions

Contract structure:

  1. Using statements → 2. Constants → 3. State variables → 4. Structs → 5. Enums → 6. Events → 7. Errors → 8. Modifiers → 9. Functions

See rules/file-layout.md for templates.

4. Naming Conventions (HIGH)

See rules/naming-conventions.md for symbol naming conventions.

5. Imports (MEDIUM)

Always use named imports. Always insert a blank line after imports.

See rules/imports.md for details.

6. Visibility (MEDIUM)

See rules/visibility.md for rules on applying visibility modifiers (internal, external, public, etc).

7. General Rules (MEDIUM)

See rules/general-rules.md for inheritance and general style rules

Commit Checklist

Before making a commit, please verify:

  • Rules on licenses and Solidity pragma have been applied
  • All public items have NatSpec docstrings (@notice, @param, @return)
  • All rules in rules/*.md have been applied
  • Linting passes (pnpm -F contracts run lint:fix)

Commands

For commands for testing and linting, refer to rules/commands.md

Repository
Consensys/linea-monorepo
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.