mcpField
B
blockchain-web3

blockchain-web3

github.com/travisjneumanDevelopment106104 installsUpdated 1d ago
Repository

About blockchain-web3

A practical Web3 development skill for developers building Solidity contracts and blockchain applications. It covers contract security, development tools, frontend access, DeFi patterns, and gas optimization.

Key features

  1. 01Solidity contract structure and security
  2. 02Hardhat and Foundry workflows
  3. 03ethers.js v6 and viem integration
  4. 04DeFi design patterns
  5. 05Gas optimization techniques

Use cases

  1. 01Reviewing contract security patterns
  2. 02Choosing Hardhat or Foundry commands
  3. 03Connecting a frontend to a blockchain
  4. 04Planning DeFi contract mechanisms

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/travisjneuman/.claude --skill blockchain-web3

After installing, type/blockchain-web3in Claude Code to confirm it loaded.

Details

From the project README

Blockchain & Web3 Development

Smart Contract Development (Solidity)

Contract Structure
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyToken is ERC20, Ownable {
    constructor() ERC20("MyToken", "MTK") Ownable(msg.sender) {
        _mint(msg.sender, 1000000 * 10 ** decimals());
    }
}
Security Patterns
  • Checks-Effects-Interactions: Validate → update state → external calls
  • Reentrancy guard: Use OpenZeppelin ReentrancyGuard or nonReentrant
  • Access control: Ownable, AccessControl, or custom modifiers
  • Integer safety: Solidity 0.8+ has built-in overflow checks
  • Pull over push: Let users withdraw rather than sending funds
Common Vulnerabilities
VulnerabilityPrevention
ReentrancynonReentrant modifier, CEI pattern
Front-runningCommit-reveal schemes, flashbot protection
Oracle manipulationUse Chainlink, TWAP over spot prices
Unchecked return valuesAlways check transfer() return or use safeTransfer
Delegatecall injectionNever delegatecall to user-supplied addresses

Development Tooling

Hardhat
npx hardhat init
npx hardhat compile
npx hardhat test
npx hardhat deploy --network sepolia
Foundry
forge init
forge build
forge test -vvv
forge script script/Deploy.s.sol --rpc-url $RPC --broadcast

Frontend Integration (ethers.js v6 / viem)

// viem (recommended for new projects)
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'

const client = createPublicClient({ chain: mainnet, transport: http() })
const balance = await client.getBalance({ address: '0x...' })

// wagmi hooks (React)
import { useAccount, useBalance, useContractWrite } from 'wagmi'
const { address } = useAccount()
const { data: balance } = useBalance({ address })

DeFi Patterns

  • AMM: Constant product formula (x * y = k), concentrated liquidity
  • Lending: Overcollateralized loans, liquidation mechanisms, interest rate models
  • Staking: Reward distribution with rewardPerToken accumulator pattern
  • Governance: Token-weighted voting, timelock controllers, proposal lifecycle

Gas Optimization

  • Use calldata over memory for read-only params
  • Pack structs (smaller types together for slot efficiency)
  • Use unchecked blocks for safe arithmetic
  • Minimize storage reads/writes (cache in memory)
  • Use events instead of storage for data that doesn't need on-chain access

Comments

Markdown supported