- Wallet Solana: Backpack, Phantom, Brave Wallet, MetaMask, Ledger o Trezor
- Red: Localnet (desarrollo) o Devnet
- SOL Balance: Necesario para pagar fees de transacción
- Abre la aplicación en
http://localhost:3000 - Conecta tu wallet haciendo clic en "Connect Wallet"
- Selecciona tu wallet preferida (Backpack recomendado para localnet)
- Una vez conectado, navega a Deploy Token o Manage Tokens
URL: /deploy
La página de deploy te permite crear un nuevo token de seguridad compliant en Solana.
| Campo | Descripción | Requerido |
|---|---|---|
| Token Name | Nombre completo del token (ej: "My Security Token") | Sí |
| Symbol | Símbolo corto del token (ej: "MST"), máximo 10 caracteres | Sí |
| Decimals | Número de decimales (0-18, recomendado: 9) | No (default: 9) |
| Initial Supply | Supply inicial (se puede mintear después) | No (default: 0) |
| Mint Authority | Dirección que puede mintear tokens (vacío = tu wallet) | No |
| Freeze Authority | Dirección que puede congelar cuentas (vacío = tu wallet) | No |
- Completa los campos requeridos (Name y Symbol)
- Revisa el Deployment Summary en la parte inferior
- Haz clic en "Deploy Token"
- Acepta la transacción en tu wallet
- Espera la confirmación
| Error | Causa | Solución |
|---|---|---|
| "Token already initialized at..." | Token ya existe para esta wallet | Usa otra wallet o resetea el localnet |
| "Wallet not connected" | Wallet desconectada | Conecta tu wallet primero |
| "Insufficient funds" | Sin SOL para fees | Añade SOL a tu wallet |
URL: /manage
La página de manage es el panel de control para gestionar tu token. Se organiza en 10 pestañas con diferentes operaciones.
Al entrar verás:
- Connected Wallet: Tu dirección de wallet (abreviada)
- SOL Balance: Tu balance de SOL en tiempo real
- Barra de pestañas: Navegación entre las 10 operaciones
Envía tokens a otra dirección Solana.
Campos:
- Recipient Address: Dirección Solana del destinatario
- Amount: Cantidad de tokens a enviar
Pasos:
- Ingresa la dirección del destinatario
- Ingresa la cantidad de tokens
- Haz clic en "Transfer Tokens"
- Acepta la transacción en tu wallet
Crea nuevos tokens y envíalos a un destinatario.
Campos:
- Recipient Address: Dirección que recibirá los tokens nuevos
- Amount to Mint: Cantidad de tokens a crear
Pasos:
- Ingresa la dirección receptora
- Ingresa la cantidad a mintear
- Haz clic en "Mint Tokens"
- Acepta la transacción
Nota: Solo la Mint Authority puede mintear tokens.
Destruye tokens desde tu cuenta.
Campos:
- Amount: Cantidad de tokens a destruir
Pasos:
- Ingresa la cantidad a quemar
- Haz clic en "Burn Tokens"
- Acepta la transacción
Nota: Los tokens quemados se reducen permanentemente del supply.
Congela o descongela una cuenta de token.
Campos:
- Account to Freeze: Dirección de la cuenta de token a congelar
Pasos:
- Ingresa la dirección de la cuenta
- Haz clic en "Toggle Freeze Status"
- Acepta la transacción
Nota: Solo la Freeze Authority puede congelar cuentas. Una cuenta congelada no puede transferir tokens.
Agrega agentes autorizados para operar con el token.
Campos:
- Agent Address: Dirección del agente a autorizar
Pasos:
- Ingresa la dirección del agente
- Haz clic en "Add Agent"
- Acepta la transacción
Nota: Los agentes pueden realizar operaciones en nombre del owner.
Transfiere la propiedad del token a otra dirección.
Campos:
- New Owner Address: Dirección del nuevo propietario
Pasos:
- Ingresa la dirección del nuevo owner
- Haz clic en "Transfer Ownership"
- Acepta la transacción
⚠️ ADVERTENCIA: Esta acción es irreversible. El nuevo owner tendrá control total del token.
Transfiere la autoridad de congelación a otra dirección.
Campos:
- New Freeze Authority Address: Dirección de la nueva autoridad
Pasos:
- Ingresa la dirección de la nueva autoridad
- Haz clic en "Transfer Freeze Authority"
- Acepta la transacción
Nota: La Freeze Authority puede congelar/descongelar cuentas de token.
Visualiza información del supply del token.
Botón: "Load Supply Info"
Información mostrada:
- Current Supply: Supply actual de tokens
- Max Supply: Supply máximo permitido
- Decimals: Número de decimales del token
Pasos:
- Haz clic en "Load Supply Info"
- La información se cargará automáticamente
Gestiona el sistema de compliance del token.
Campos:
- Aggregator Account: Dirección del aggregator (opcional)
Pasos:
- Ingresa la dirección del aggregator (o deja vacío para PDA)
- Haz clic en "Initialize Compliance Aggregator"
- Acepta la transacción
Campos:
- Aggregator Account: Dirección del aggregator
- Token Program ID: ID del programa del token
- Module Program ID: ID del módulo de compliance
Pasos:
- Ingresa las direcciones requeridas
- Haz clic en "Add Compliance Module"
- Acepta la transacción
Campos:
- Aggregator Account: Dirección del aggregator
Pasos:
- Ingresa la dirección del aggregator
- Haz clic en "Get Aggregator State"
- El estado se mostrará en pantalla
Gestiona el registro de identidad del token.
Campos:
- Registry Account: Dirección del registry (opcional)
Pasos:
- Ingresa la dirección del registry (o deja vacío para PDA)
- Haz clic en "Initialize Identity Registry"
- Acepta la transacción
Campos:
- Registry Account: Dirección del registry
- Identity Data: Datos de identidad
Pasos:
- Ingresa los datos requeridos
- Haz clic en "Register Identity"
- Acepta la transacción
Campos:
- Registry Account: Dirección del registry
- Identity Name: Nombre de la identidad
- Identity Symbol: Símbolo de la identidad
- Identity Data: Datos de identidad
- Metadata URI: URI de metadatos
Pasos:
- Completa todos los campos
- Haz clic en "Register Identity with Metadata"
- Acepta la transacción
Campos:
- Registry Account: Dirección del registry
Pasos:
- Ingresa la dirección del registry
- Haz clic en "Get Identity"
- La información de identidad se mostrará en pantalla
- Verifica que la wallet está instalada y desbloqueada
- Recarga la página (Ctrl+Shift+R)
- Intenta con otra wallet (Backpack recomendado)
- Verifica que tienes suficiente SOL para fees
- Asegúrate de estar en la red correcta (localnet/devnet)
- Revisa el mensaje de error en la interfaz
- El token ya existe para esta wallet
- Opciones:
- Usa la página
/managepara gestionar el token existente - Usa otra wallet para crear un nuevo token
- Resetea el localnet:
pkill -f surfpool && rm -rf solana-rwa/.surfpool/*.db && surfpool start --no-deploy && bash deploy.sh
- Usa la página
- Verifica que aceptaste la transacción en tu wallet
- Espera hasta 30 segundos
- Si persiste, recarga la página
- Asegúrate de usar la misma wallet que usaste para deployar
- El PDA se deriva de tu wallet:
[Buffer.from("token"), walletPublicKey] - Verifica que el deploy fue exitoso (revisa la firma de transacción)
| Rol | Operaciones Disponibles |
|---|---|
| Owner | Transfer, Mint, Burn, Freeze, Add Agent, Transfer Owner, Transfer Freeze Auth |
| Agent | Transfer (desde cuenta del owner) |
| Freeze Authority | Freeze/Unfreeze accounts |
| Mint Authority | Mint tokens |
| Cualquier usuario | Supply Info, Compliance, Identity |
- Decimales: 0-18 (recomendado: 9)
- Símbolo: Máximo 10 caracteres
- Token por wallet: 1 (el PDA es único por wallet)
- Agentes: Sin límite máximo
# Iniciar localnet
cd solana-rwa && surfpool start --no-deploy
# Deploy programas
cd solana-rwa && bash deploy.sh
# Resetear localnet completo
pkill -f surfpool
rm -rf solana-rwa/.surfpool/*.db solana-rwa/.surfpool/*.sqlite*
cd solana-rwa && surfpool start --no-deploy
bash deploy.sh
# Iniciar frontend
cd web && npm run dev