The problem nitedcrypto solves
Web3 apps that want posts, likes and tipping usually rely on centralized servers: counters can be altered, tips aren’t tied to content, and integration is heavy. NitedCryptoForum is a tokenless on‑chain social primitive on Base to create posts, record one‑per‑address upvotes, and route ETH tips directly to the author, giving verifiable metrics with no backend.
Challenges I ran into
Gas y almacenamiento: al principio consideré guardar la lista de votantes por post; era caro de escribir/leer. Lo reemplacé por mapping anidado mapping(uint256 => mapping(address => bool)) y un contador de upvotes.
Transferencias de ETH: usar transfer fallaba por el límite de 2300 gas en algunos wallets/contratos. Cambié a call{value: ...}("") con require(ok) para mayor compatibilidad.
Orden CEI: para minimizar riesgos de reentrancia en tip, actualicé estado antes de la llamada externa (Checks-Effects-Interactions) y emití eventos después.
Contenido largo: almacenar texto on‑chain disparaba el coste. Decidí mover el contenido a metadataURI (IPFS/HTTP) y solo guardar referencias + eventos.
IDs y validaciones: añadí require(id > 0 && id <= postCount) para evitar lecturas fuera de rango y errores silenciosos.
Ethers v5 vs v6: la dApp del ejemplo usa v5 (Web3Provider, ethers.utils.parseEther). Documenté esto porque mezclar v6 rompía imports en algunos entornos.
Redes de Base: hubo fricción al agregar RPCs y chain IDs (8453/84532) en MetaMask. Dejé instrucciones y links a BaseScan para Mainnet y Sepolia.
Verificación en BaseScan: la verificación fallaba si usaba ^0.8.20 en lugar de la versión exacta. Compilé con 0.8.20 y el mismo optimizador para publicarlo correctamente.
UX de propinas: la UI ya permitía tips directos wallet→wallet; para que cuenten por post, expuse tip(id) y aclaré cuándo usar cada flujo.
Alcance de seguridad: el sistema evita doble voto por dirección, pero no es anti‑sybil. Lo dejé documentado como decisión consciente para mantener el contrato mínimo y barato.
Smart Contract Address(es)
0xDa571Fa0890D0785FCe60587115eBeBE7D9365C2
Tracks Applied (1)
Top 5 New Consumer Apps
Technologies used
