Cómo crear tu propio token en Ethereum paso a paso
✍️ Por: Profeta Oscar Orellana Cortez
🌐 CryptoDineroPro.com – Universidad de la nueva economía digital
🧭 Panorama rápido (lo que vas a lograr)
- Crearás un token ERC-20 estándar (el formato más usado).
- Lo desplegarás en una red de pruebas y en mainnet (cuando estés listo).
- Aprenderás a verificar el contrato, agregarlo a MetaMask, configurar supply, activar mint/burn, y pausarlo si hace falta.
- Bonus: checklist legal, seguridad, y guía express para Hardhat o Remix.
1) Conceptos clave en 2 minutos
- ERC-20: estándar que define cómo se comportan los tokens fungibles en Ethereum (transferencias, saldos, aprobación, etc.).
- Redes: Mainnet (real), Testnets (pruebas: Sepolia/Holesky). Empieza SIEMPRE en testnet.
- Gas: costo por ejecutar transacciones/contratos.
- OpenZeppelin: librería de contratos auditados (seguridad + buenas prácticas).
2) Diseña tu token (checklist de producto)
Antes de escribir una sola línea de código, define:
- Nombre y símbolo (ej.: CryptoDineroPro Token –
CDP). - Decimales (por defecto 18).
- Suministro:
- Fijo (se acuña todo al inicio) o
- Elástico (permite
mint()y/oburn()).
- Gobernanza: ¿necesitas
Ownable,Pausable,AccessControl? - Uso: pagos, puntos, gobernanza, utilidad en dApps, loyalty, etc.
- Listados: ¿se usará solo en tu ecosistema o quieres exchanges/DEX?
- Cumplimiento: restricciones por país, KYC en ventas, términos de uso.
Regla de oro: si el token captura valor real (ventas públicas, promesas de rendimiento), consulta a un abogado regulatorio en tu jurisdicción.
3) Herramientas que vas a usar (elige una ruta)
Ruta A – Remix (la más rápida, en el navegador)
- MetaMask
- Remix IDE
- OpenZeppelin Wizard (opcional para generar el esqueleto)
Ruta B – Hardhat (flujo profesional para proyectos)
- Node.js + npm
- Hardhat
- OpenZeppelin Contracts
- Scripts/Pruebas + verificación
Ambas rutas usan la misma base: contratos de OpenZeppelin.
4) Contrato ERC-20 listo para producción (plantilla segura)
Opción con: suministro inicial,
Ownable,Pausable,MintyBurn.
Úsalo tal cual o ajusta opciones.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract CryptoDineroProToken is ERC20, ERC20Burnable, Pausable, Ownable {
constructor(
string memory name_,
string memory symbol_,
uint256 initialSupply_ // en wei (18 decimales si usas por defecto)
) ERC20(name_, symbol_) Ownable(msg.sender) {
_mint(msg.sender, initialSupply_);
}
function pause() public onlyOwner { _pause(); }
function unpause() public onlyOwner { _unpause(); }
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
function _update(address from, address to, uint256 value) internal override whenNotPaused {
super._update(from, to, value);
}
}
Parámetros de ejemplo al desplegar:
name_ = "CryptoDineroPro Token"symbol_ = "CDP"initialSupply_ = 1_000_000 * 10**18→ un millón con 18 decimales
Si NO quieres poder acuñar más supply después, elimina la función
mint()y la herenciaOwnable(si no la usas parapause).
5) Ruta A: Despliegue con Remix (rápido y sencillo)
- Configura MetaMask
- Añade la testnet Sepolia.
- Consigue faucet ETH de Sepolia (para gas).
- Abre Remix → crea archivo
CDPToken.soly pega el contrato. - Compiler
- Selecciona
0.8.20(o compatible). - Activa
Auto compile.
- Selecciona
- Deploy & Run
- Environment: Injected Provider – MetaMask.
- Selecciona el contrato
CryptoDineroProToken. - Ingresa parámetros (nombre, símbolo, supply inicial).
- Presiona Deploy y confirma en MetaMask.
- Verifica en el explorador (Etherscan testnet)
- Copia la dirección del contrato y usa “Verify & Publish”.
- Coincide la versión del compilador y license MIT.
Probar funciones en Remix/MetaMask
pause()/unpause()mint(to, amount)(si lo dejaste activo)burn(amount)en tu cuentatransfer(to, amount)yapprove/spend
6) Ruta B: Despliegue profesional con Hardhat
Instala y configura:
mkdir cdp-token && cd cdp-token
npm init -y
npm install --save-dev hardhat
npx hardhat init
npm install @openzeppelin/contracts dotenv
Estructura sugerida:
cdp-token/
├─ contracts/
│ └─ CDPToken.sol
├─ scripts/
│ ├─ deploy.ts (o .js)
│ └─ verify.ts
├─ test/
├─ hardhat.config.ts
└─ .env
hardhat.config.ts ejemplo:
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import * as dotenv from "dotenv";
dotenv.config();
const config: HardhatUserConfig = {
solidity: "0.8.20",
networks: {
sepolia: {
url: process.env.SEPOLIA_RPC!,
accounts: [process.env.PRIVATE_KEY!],
},
mainnet: {
url: process.env.MAINNET_RPC!,
accounts: [process.env.PRIVATE_KEY!],
},
},
etherscan: {
apiKey: {
sepolia: process.env.ETHERSCAN_KEY!,
mainnet: process.env.ETHERSCAN_KEY!,
},
},
};
export default config;
scripts/deploy.ts ejemplo:
import { ethers } from "hardhat";
async function main() {
const NAME = "CryptoDineroPro Token";
const SYMBOL = "CDP";
const INITIAL_SUPPLY = ethers.parseEther("1000000"); // 1,000,000 CDP
const Token = await ethers.getContractFactory("CryptoDineroProToken");
const token = await Token.deploy(NAME, SYMBOL, INITIAL_SUPPLY);
await token.waitForDeployment();
console.log("CDP deployed at:", await token.getAddress());
}
main().catch((e) => { console.error(e); process.exit(1); });
Despliega:
npx hardhat compile
npx hardhat run scripts/deploy.ts --network sepolia
Verifica (opcional pero recomendado):
npx hardhat verify --network sepolia \
<ADDRESS_DEL_CONTRATO> \
"CryptoDineroPro Token" "CDP" 1000000000000000000000000
7) Agrega tu token a MetaMask
- Abre MetaMask → Import tokens → pega la dirección del contrato.
- Si la verificación es correcta, completará símbolo y decimales.
8) Buenas prácticas de seguridad (imprescindibles)
- Usa OpenZeppelin (evitas vulnerabilidades comunes).
- Fija la versión de Solidity (
^0.8.20o específica). - Limita privilegios:
onlyOwnersolo donde sea necesario. - Pausable: para congelar transferencias ante incidentes.
- Multi-sig para claves de propietario/tesorería.
- Auditoría si el token moverá capital significativo.
- Pruebas (Hardhat/Foundry) y testnets antes de mainnet.
9) Ajustes frecuentes (elige según tu caso)
a) Token fijo (sin mint):
- Elimina
mint()y cualquier rol que ya no uses.
b) Token deflacionario (burn por transferencia):
- Implementa una tasa de quema en
_update(con cuidado: puede romper integraciones con DEX si no lo haces bien).
c) Roles granulares:
- Cambia
OwnableporAccessControlparaMINTER_ROLE,PAUSER_ROLE, etc.
d) Tax/fee token:
- Evítalo salvo que sepas lo que haces: tiene implicaciones en listados y en DEX (puede requerir whitelist de pares).
10) Listado en DEX (ejemplo Uniswap v2/v3)
- Asegura liquidez inicial: decide cuántos
CDPy cuántosETH/USDCaportarás. - Crea el par y añade liquidez desde la interfaz del DEX.
- Bloquea LPs si vas a hacer fair launch (mejora confianza).
- Comunica riesgos y supply de forma transparente.
11) Verificación pública y transparencia
- Etherscan: código verificado, metadata y read/write disponible.
- README/Docs: publica tokenomics, direcciones de contratos, políticas de mint/burn/pausa.
- Gnosis Safe (multifirma) para operar funciones sensibles.
12) Checklist legal y de cumplimiento (resumen)
- Revisa si tu venta es utility o puede considerarse security.
- Política de privacidad, Términos de uso.
- Restricciones por país (OFAC, listas sancionadas).
- Si harás airdrop o IDO, define reglas claras y KYC/AML cuando aplique.
Consejo de CryptoDineroPro: Transparencia hoy = confianza mañana.
13) Problemas típicos y cómo salvarlos
- Transacción falla: falta gas o constructor mal parametrizado.
- No aparece en MetaMask: red incorrecta o contrato no verificado.
- Decimals incorrectos: fijados al crear; si te equivocas, redeploy.
- Dirección sin saldo: recuerda que
initialSupplyva amsg.sender. - Mint mal usado: si minteas demasiado, destruyes confianza/valor.
14) Roadmap sugerido para lanzar un token serio
- MVP en testnet (contrato, pruebas, UI mínima).
- Auditoría ligera + bug bounty.
- Despliegue mainnet con multisig.
- Liquidez inicial y plan anti-MEV.
- Documentación pública, dashboard de holders y treasury.
- Campaña de adopción (uso real: puntos, pagos, acceso premium).
- Iteración: métricas, gobernanza, utilidades adicionales.
15) Preguntas rápidas (FAQ)
¿Puedo cambiar el nombre/símbolo después?
No, a menos que migres a otro contrato.
¿Cuánto gas cuesta?
Varía según congestión; un despliegue simple puede costar desde decenas a cientos de USD en mainnet.
¿Puedo congelar fondos de usuarios?
Solo si implementas lógica específica. En el contrato de ejemplo no existe tal función (buena práctica pro-usuario).
¿Qué red usar para empezar?
Sepolia para pruebas; mainnet cuando todo esté verificado y auditado.
16) Plantilla ultra-simple (solo ERC-20 básico)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract SimpleToken is ERC20 {
constructor() ERC20("SimpleToken", "STK") {
_mint(msg.sender, 1_000_000 * 10**18);
}
}
Úsalo para pruebas rápidas. Para producción, prefiere la versión segura con
Pausable/Ownabley políticas claras.
🏁 Conclusión
Crear tu propio token en Ethereum es más accesible que nunca si sigues buenas prácticas:
- OpenZeppelin para seguridad.
- Testnet primero, mainnet después.
- Transparencia en tokenomics y poderes del owner.
- Multisig + verificación para confianza real.
El futuro de los creadores está en la tokenización.
Hazlo con excelencia… y lidera tu economía digital.
✍️ Por: Profeta Oscar Orellana Cortez
🌐 CryptoDineroPro.com – Universidad de la nueva economía digital
📣 Formando a los nuevos millonarios del blockchain.


Oscar Orellana Cortez es un experto en criptomonedas y creador del blog CryptoDineroPro.com, donde comparte su conocimiento sobre inversiones y tecnología blockchain. Residente en Canadá desde 1991, Oscar tiene una sólida trayectoria en el sector petrolero en Alberta. Además, ha sido un creador de contenido apasionado, con presencia en diversas plataformas en línea, incluyendo su canal de YouTube. Su misión es educar y guiar a otros en el mundo de las criptomonedas y la economía digital.