Guía paso a paso para desplegar el contrato y publicar el frontend de FeatherScript.
1. Desplegar el contrato
Preparación
cd contracts
forge install foundry-rs/forge-std
forge build
forge test
Asegúrate de tener ETH en la wallet de despliegue (testnet o mainnet).
Testnet (recomendado primero)
export PRIVATE_KEY=0x... # Linux/macOS
# En PowerShell: $env:PRIVATE_KEY="0x..."
forge script script/Deploy.s.sol \
--rpc-url https://rpc.testnet.chain.robinhood.com \
--broadcast \
--private-key $PRIVATE_KEY
O con forge create:
forge create src/InscriptionRegistry.sol:InscriptionRegistry \
--rpc-url https://rpc.testnet.chain.robinhood.com \
--private-key $PRIVATE_KEY
Guarda la dirección del contrato que aparece en la salida:
Deployed to: 0xAbCdEf...
Mainnet
Mismo proceso, cambiando el RPC:
forge script script/Deploy.s.sol \
--rpc-url https://rpc.mainnet.chain.robinhood.com \
--broadcast \
--private-key $PRIVATE_KEY
Usa una wallet dedicada para deploy. Nunca commitees private keys.
Verificar en Blockscout
forge verify-contract 0xTU_CONTRATO \
src/InscriptionRegistry.sol:InscriptionRegistry \
--chain-id 4663 \
--watch
2. Configurar el frontend
En la raíz del proyecto, crea .env.local:
NEXT_PUBLIC_REGISTRY_ADDRESS=0xTuContratoDesplegado
Reinicia el servidor de desarrollo si estaba corriendo.
3. Probar end-to-end
npm run dev- Conecta wallet con ETH en la red correcta
- Cambia a Robinhood Chain (4663) si es necesario
- Inscribe un mensaje de prueba
- Verifica en Blockscout:
- La transacción aparece
- El evento
Inscribedestá en los logs getInscription(1)retorna tus datos
4. Build de producción
npm run build
Si el build falla, revisa errores TypeScript antes de continuar.
5. Desplegar el frontend
Vercel (recomendado)
- Conecta el repositorio en vercel.com
- Framework preset: Next.js
- Añade variable de entorno:
NEXT_PUBLIC_REGISTRY_ADDRESS= dirección del contrato
- Deploy
Otras opciones
| Plataforma | Notas |
|---|---|
| Netlify | Soporta Next.js con adaptador |
| Cloudflare Pages | Requiere @cloudflare/next-on-pages |
| Docker | npm run build && npm run start en contenedor |
| VPS | Node.js 18+, PM2 o systemd |
Variables de entorno en producción
| Variable | Entorno | Obligatoria |
|---|---|---|
NEXT_PUBLIC_REGISTRY_ADDRESS | Production | Sí |
6. Checklist post-despliegue
- Contrato desplegado y verificado en Blockscout
-
NEXT_PUBLIC_REGISTRY_ADDRESSconfigurado en producción - Wallet conecta correctamente
- Switch network funciona para cadenas no-Robinhood
- Inscripción de prueba confirmada on-chain
- Historial muestra la inscripción
- Modal de detalle muestra tx hash
- Links del explorer funcionan
- Logo y metadata OG cargan correctamente
7. Actualizar el contrato
El contrato no es upgradeable. Si necesitas cambios:
- Despliega una nueva instancia de
InscriptionRegistry - Actualiza
NEXT_PUBLIC_REGISTRY_ADDRESS - Las inscripciones del contrato anterior permanecen en su dirección original
Considera documentar la dirección histórica si hay inscripciones previas.