Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pluginagentmarketplace avatar

Solidity Development

  • 202 installs
  • 1 repo stars
  • Updated January 5, 2026
  • pluginagentmarketplace/custom-plugin-blockchain

Author, test, and deploy Solidity smart contracts with safe patterns for tokens, access control, and on-chain logic when building Web3 backends and wallet-integrated features.

About

Equips agents to implement Ethereum-compatible smart contracts in Solidity: secure contract design, standard libraries, local testing, deployment, and ABI wiring so Web3 products expose reliable on-chain backends for dApps and integrations.

  • Solidity syntax, types, and contract structure
  • OpenZeppelin patterns for security and reuse
  • Testing with Hardhat or Foundry workflows
  • Gas optimization and upgrade considerations
  • Deployment, verification, and ABI integration hooks

Solidity Development by the numbers

  • 202 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #93 of 479 Web3 & Blockchain skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-blockchain --skill solidity-development

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs202
repo stars1
Last updatedJanuary 5, 2026
Repositorypluginagentmarketplace/custom-plugin-blockchain

What it does

Author, test, and deploy Solidity smart contracts with safe patterns for tokens, access control, and on-chain logic when building Web3 backends and wallet-integrated features.

Files

SKILL.mdMarkdownGitHub ↗

Solidity Development Skill

Master Solidity smart contract development with design patterns, testing strategies, and production best practices.

Quick Start

# Invoke this skill for Solidity development
Skill("solidity-development", topic="patterns", solidity_version="0.8.24")

Topics Covered

1. Language Features (0.8.x)

Modern Solidity essentials:

  • Data Types: Value, reference, mappings
  • Functions: Visibility, modifiers, overloading
  • Inheritance: Diamond problem, C3 linearization
  • Custom Errors: Gas-efficient error handling

2. Design Patterns

Battle-tested patterns:

  • CEI: Checks-Effects-Interactions
  • Factory: Contract deployment patterns
  • Proxy: Upgradeable contracts
  • Access Control: RBAC, Ownable

3. Testing

Comprehensive test strategies:

  • Unit Tests: Foundry, Hardhat
  • Fuzz Testing: Property-based testing
  • Invariant Testing: System-wide properties
  • Fork Testing: Mainnet simulation

4. Upgradability

Safe upgrade patterns:

  • UUPS: Self-upgrading proxy
  • Transparent: Admin separation
  • Beacon: Shared implementation
  • Diamond: Multi-facet

Code Examples

CEI Pattern

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract SecureVault {
    mapping(address => uint256) public balances;

    error InsufficientBalance();
    error TransferFailed();

    function withdraw(uint256 amount) external {
        // 1. CHECKS
        if (balances[msg.sender] < amount) revert InsufficientBalance();

        // 2. EFFECTS
        balances[msg.sender] -= amount;

        // 3. INTERACTIONS
        (bool ok,) = msg.sender.call{value: amount}("");
        if (!ok) revert TransferFailed();
    }
}

Factory Pattern

contract TokenFactory {
    event TokenCreated(address indexed token, address indexed owner);

    function createToken(
        string memory name,
        string memory symbol
    ) external returns (address) {
        Token token = new Token(name, symbol, msg.sender);
        emit TokenCreated(address(token), msg.sender);
        return address(token);
    }
}

Foundry Test

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "forge-std/Test.sol";

contract VaultTest is Test {
    Vault vault;
    address alice = makeAddr("alice");

    function setUp() public {
        vault = new Vault();
        vm.deal(alice, 10 ether);
    }

    function test_Deposit() public {
        vm.prank(alice);
        vault.deposit{value: 1 ether}();

        assertEq(vault.balances(alice), 1 ether);
    }

    function testFuzz_Withdraw(uint256 amount) public {
        amount = bound(amount, 0.01 ether, 10 ether);

        vm.startPrank(alice);
        vault.deposit{value: amount}();
        vault.withdraw(amount);
        vm.stopPrank();

        assertEq(vault.balances(alice), 0);
    }

    function test_RevertWhen_InsufficientBalance() public {
        vm.prank(alice);
        vm.expectRevert(Vault.InsufficientBalance.selector);
        vault.withdraw(1 ether);
    }
}

Pattern Reference

PatternUse CaseComplexity
CEIAll state changesLow
FactoryMultiple instancesLow
Clone (1167)Gas-efficient copiesMedium
UUPSUpgradeableMedium
DiamondUnlimited sizeHigh

Common Pitfalls

PitfallIssueSolution
Stack too deep>16 variablesUse structs or helpers
Contract too large>24KBSplit into libraries
ReentrancyState after callUse CEI pattern
Missing accessAnyone can callAdd modifiers

Troubleshooting

"Stack too deep"

// Solution 1: Use struct
struct Params { uint256 a; uint256 b; uint256 c; }

// Solution 2: Block scoping
{ uint256 temp = x + y; }

// Solution 3: Internal function
function _helper(uint256 a) internal { }

"Contract size exceeds limit"

# Check contract sizes
forge build --sizes

Solutions: Split into libraries, use Diamond pattern.

Security Checklist

  • [ ] CEI pattern on all withdrawals
  • [ ] Access control on admin functions
  • [ ] Input validation (zero address, bounds)
  • [ ] Reentrancy guards on external calls
  • [ ] Event emission for state changes
  • [ ] Custom errors for gas efficiency

CLI Commands

# Development workflow
forge init                    # New project
forge build                   # Compile
forge test -vvv               # Run tests
forge coverage                # Coverage report
forge fmt                     # Format code
forge snapshot                # Gas snapshot

Cross-References

  • Bonded Agent: 03-solidity-expert
  • Related Skills: ethereum-development, smart-contract-security

Version History

VersionDateChanges
2.0.02025-01Production-grade with Foundry, patterns
1.0.02024-12Initial release

Related skills

Web3 & Blockchainbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.