n8n-nodes-smart-contract
v1.0.0
Published
n8n node for interacting with Ethereum Smart Contracts
Maintainers
Readme
n8n-nodes-smart-contract
Este es un nodo personalizado de n8n para interactuar con Smart Contracts de Ethereum y redes compatibles con EVM.
🚀 Características
- Call Function: Ejecuta funciones de solo lectura (view/pure)
- Send Transaction: Ejecuta transacciones que modifican el estado del blockchain
- Get Balance: Obtiene el balance de una dirección
📋 Requisitos previos
- Node.js v16 o superior
- n8n instalado
- Una cuenta de Infura, Alchemy u otro proveedor RPC
- Una wallet con su clave privada
📦 Instalación
Opción 1: Instalación en n8n Cloud o n8n local
- Clona este repositorio:
git clone https://github.com/jesusrosab/n8n-nodes-smart-contract.git
cd n8n-nodes-smart-contract- Instala las dependencias:
npm install- Compila el nodo:
npm run build- Enlaza el nodo a n8n:
npm link- En tu instalación de n8n, ejecuta:
cd ~/.n8n
npm link n8n-nodes-smart-contract- Reinicia n8n
Opción 2: Instalación desde npm (cuando esté publicado)
npm install n8n-nodes-smart-contract🔧 Estructura del proyecto
n8n-nodes-smart-contract/
├── credentials/
│ └── SmartContractApi.credentials.ts
├── nodes/
│ └── SmartContract/
│ └── SmartContract.node.ts
├── package.json
├── tsconfig.json
└── README.md🎯 Uso
1. Configurar las credenciales
- En n8n, ve a Credentials → New
- Busca Smart Contract API
- Completa:
- Network RPC URL: Tu URL de Infura/Alchemy (ej:
https://sepolia.infura.io/v3/TU_PROJECT_ID) - Private Key: Tu clave privada (comienza con 0x)
- Network Name: Selecciona la red
- Network RPC URL: Tu URL de Infura/Alchemy (ej:
2. Usar el nodo
Ejemplo 1: Leer un valor (Call Function)
- Añade el nodo Smart Contract a tu workflow
- Selecciona la operación Call Function
- Configura:
- Contract Address:
0x87e10fC2902f36145e7725b270cB96e57aab8040 - Contract ABI: Pega el ABI JSON de tu contrato
- Function Name:
retrieve - Parameters: (vacío si la función no tiene parámetros)
- Contract Address:
Ejemplo 2: Enviar una transacción (Send Transaction)
- Añade el nodo Smart Contract
- Selecciona Send Transaction
- Configura:
- Contract Address: Dirección del contrato
- Contract ABI: ABI del contrato
- Function Name:
store - Parameters:
- Type:
number - Value:
100
- Type:
- Gas Options (opcional):
- Gas Limit:
0(auto-estimación) - Gas Price Multiplier:
110(10% extra)
- Gas Limit:
Ejemplo 3: Obtener balance
- Selecciona Get Balance
- Introduce la dirección de la wallet
🔐 Seguridad
⚠️ IMPORTANTE:
- NUNCA compartas tu clave privada
- NUNCA subas tu clave privada a repositorios públicos
- Usa variables de entorno o el gestor de credenciales de n8n
- Para testing, usa redes de prueba (Sepolia, Goerli)
📝 Ejemplo de ABI
[
{
"inputs": [
{
"internalType": "uint256",
"name": "num",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]🌐 Redes soportadas
- Ethereum Mainnet
- Sepolia Testnet
- Goerli Testnet
- Polygon
- Mumbai Testnet
- Binance Smart Chain (BSC)
- BSC Testnet
- Cualquier red compatible con EVM
🛠️ Desarrollo
# Instalar dependencias
npm install
# Compilar en modo desarrollo (watch)
npm run dev
# Compilar para producción
npm run build
# Formatear código
npm run format
# Lint
npm run lint📚 Recursos
🤝 Contribuir
Las contribuciones son bienvenidas. Por favor:
- Haz fork del proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
📄 Licencia
MIT
👤 Autor
Jesús Rosa Bilbao
📞 Soporte
Si encuentras algún problema o tienes sugerencias:
- Abre un Issue
- Contáctame en [email protected]
