Saltar a contenido

Blockchain / Web3 Developer - Guía de Entorno

Guía completa para desarrollo de Smart Contracts, DApps y aplicaciones Web3 con Claude Code.

Capacidades de Claude Code

Capacidad Herramientas
Smart Contracts Solidity, Vyper, Rust (Solana)
Testing Hardhat, Foundry, Anchor
Frontend DApp ethers.js, wagmi, RainbowKit
Local Blockchain Ganache, Anvil, Hardhat Network
IPFS/Storage IPFS, Filecoin, Arweave
Auditoría Slither, Mythril, Echidna

Ethereum Development

Node.js Setup

# Node.js 18+ requerido
node --version

# pnpm (recomendado)
corepack enable
pnpm --version

Hardhat (Recomendado)

# Crear proyecto
mkdir my-dapp && cd my-dapp
pnpm init
pnpm add -D hardhat

# Inicializar
npx hardhat init
# Seleccionar: Create a TypeScript project

# Estructura
my-dapp/
├── contracts/
   └── Lock.sol
├── scripts/
   └── deploy.ts
├── test/
   └── Lock.ts
├── hardhat.config.ts
└── package.json

# Comandos
npx hardhat compile
npx hardhat test
npx hardhat node  # Local blockchain
npx hardhat run scripts/deploy.ts --network localhost

hardhat.config.ts:

import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";

const config: HardhatUserConfig = {
  solidity: "0.8.24",
  networks: {
    hardhat: {},
    sepolia: {
      url: process.env.SEPOLIA_RPC_URL || "",
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
    },
  },
  etherscan: {
    apiKey: process.env.ETHERSCAN_API_KEY,
  },
};

export default config;

Foundry (Más rápido, Rust-based)

# Instalar
curl -L https://foundry.paradigm.xyz | bash
foundryup

# Verificar
forge --version
cast --version
anvil --version

# Crear proyecto
forge init my-project
cd my-project

# Estructura
my-project/
├── src/
   └── Counter.sol
├── test/
   └── Counter.t.sol
├── script/
   └── Counter.s.sol
└── foundry.toml

# Comandos
forge build
forge test
forge test -vvvv  # Verbose
anvil  # Local node
forge script script/Counter.s.sol --rpc-url http://localhost:8545 --broadcast

Solidity Compiler

# Via npm
pnpm add -D solc

# O standalone
# Windows
winget install Ethereum.Solidity

# macOS
brew install solidity

# Verificar
solc --version

Solana Development

Rust + Anchor

# Instalar Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Solana CLI
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

# Anchor Framework
cargo install --git https://github.com/coral-xyz/anchor avm --locked
avm install latest
avm use latest

# Verificar
solana --version
anchor --version

# Crear proyecto
anchor init my-solana-project
cd my-solana-project

# Estructura
my-solana-project/
├── programs/
   └── my-solana-project/
       └── src/
           └── lib.rs
├── tests/
   └── my-solana-project.ts
├── Anchor.toml
└── Cargo.toml

# Comandos
anchor build
anchor test
solana-test-validator  # Local validator
anchor deploy

Frontend DApp

Ethers.js + React

pnpm add ethers

# O la nueva versión v6
pnpm add ethers@6

wagmi + viem (Moderno, recomendado)

pnpm add wagmi viem @tanstack/react-query

# Con RainbowKit (wallet connection UI)
pnpm add @rainbow-me/rainbowkit

Configuración básica:

// wagmi.config.ts
import { http, createConfig } from 'wagmi'
import { mainnet, sepolia } from 'wagmi/chains'
import { injected, walletConnect } from 'wagmi/connectors'

export const config = createConfig({
  chains: [mainnet, sepolia],
  connectors: [
    injected(),
    walletConnect({ projectId: process.env.NEXT_PUBLIC_WC_PROJECT_ID! }),
  ],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
})

Web3.js (Legacy)

pnpm add web3

Testing & Auditoría

Slither (Static Analysis)

pip install slither-analyzer

# Analizar contrato
slither .

# Con Hardhat
slither . --hardhat-artifacts-directory ./artifacts

Mythril (Symbolic Execution)

pip install mythril

# Analizar
myth analyze contracts/MyContract.sol

Echidna (Fuzzing)

# Instalar
# https://github.com/crytic/echidna/releases

# Ejecutar
echidna contracts/MyContract.sol --contract MyContract

Local Blockchain

Hardhat Network

npx hardhat node
# RPC: http://127.0.0.1:8545
# Prefunded accounts disponibles

Anvil (Foundry)

anvil
# RPC: http://127.0.0.1:8545
# Fork mainnet
anvil --fork-url https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY

Ganache

npm install -g ganache
ganache
# RPC: http://127.0.0.1:8545

IPFS / Almacenamiento Descentralizado

IPFS

# Instalar IPFS Desktop o CLI
# https://docs.ipfs.tech/install/

# CLI
ipfs init
ipfs daemon

# Subir archivo
ipfs add myfile.json
# Devuelve: QmHash...

# Pinning services
pnpm add @pinata/sdk
pnpm add nft.storage

Arweave

pnpm add arweave

# Bundlr (más fácil)
pnpm add @bundlr-network/client

IDE y Extensiones

VS Code

# Solidity
code --install-extension JuanBlanco.solidity
code --install-extension NomicFoundation.hardhat-solidity

# Rust (Solana)
code --install-extension rust-lang.rust-analyzer

# Utilidades
code --install-extension esbenp.prettier-vscode
code --install-extension dbaeumer.vscode-eslint

Remix IDE

https://remix.ethereum.org

Comandos que Claude Code Ejecutará

# Hardhat
npx hardhat compile
npx hardhat test
npx hardhat node
npx hardhat run scripts/deploy.ts
npx hardhat verify --network sepolia CONTRACT_ADDRESS

# Foundry
forge build
forge test
forge test -vvvv
anvil
forge script script/Deploy.s.sol --broadcast

# Solana/Anchor
anchor build
anchor test
anchor deploy
solana-test-validator

# Auditoría
slither .
myth analyze contracts/MyContract.sol

# IPFS
ipfs add -r ./metadata
ipfs pin add QmHash

Verificación del Entorno

#!/bin/bash
echo "=== Verificación Entorno Blockchain ==="

echo -e "\n--- Node.js ---"
node --version

echo -e "\n--- Hardhat ---"
npx hardhat --version 2>/dev/null || echo "Hardhat no instalado"

echo -e "\n--- Foundry ---"
forge --version 2>/dev/null || echo "Foundry no instalado"

echo -e "\n--- Solidity ---"
solc --version 2>/dev/null || echo "solc no instalado"

echo -e "\n--- Solana ---"
solana --version 2>/dev/null || echo "Solana CLI no instalado"
anchor --version 2>/dev/null || echo "Anchor no instalado"

echo -e "\n--- Security ---"
slither --version 2>/dev/null || echo "Slither no instalado"

echo -e "\n=== Verificación Completa ==="

Recursos