Skip to main content

Plantillas y Casos de Uso

Las plantillas son contratos inteligentes pre-certificados y listos para configurar que cubren los casos de uso más comunes. En lugar de desarrollar desde cero, puedes elegir una plantilla, configurarla con tus parámetros y desplegarla rápidamente.

Qué es una plantilla

Una plantilla es un contrato inteligente:

  • Pre-certificado: Ya ha pasado el proceso de conformidad
  • Probado: Tests completos y análisis de seguridad
  • Documentado: Casos de uso y ejemplos claros
  • Desplegable: Solo configuras parámetros y despliegas
  • Mantenido: ISBE actualiza y mejora las plantillas

Plantilla vs Desarrollo Custom

AspectoPlantillaCustom
DesarrolloSolo configuraciónDesarrollas tu lógica
CertificaciónAutomáticaProceso completo
FlexibilidadLimitada al estándarTotal
MantenimientoISBE se encargaTu responsabilidad

Cuándo usar una plantilla

Usa una plantilla si:

  • Tu caso de uso encaja en alguna de las plantillas disponibles
  • No necesitas lógica de negocio específica más allá de la plantilla
  • Prefieres usar soluciones probadas y certificadas

Cuándo desarrollar custom

Desarrolla custom si:

  • Necesitas funcionalidad específica que no existe
  • Tu lógica de negocio es única
  • Requieres reglas de validación particulares

Ver Desarrollo de Contratos Custom para más información.


ERC20: Tokens Fungibles

Los tokens ERC20 son activos digitales intercambiables donde cada unidad tiene el mismo valor (fungibles). Son ideales para representar monedas, puntos, créditos y otros activos de valor uniforme.

Qué es ERC20 en ISBE

ERC20 en ISBE es una implementación del estándar ERC-20 (EIP-20) que se apoya en los contratos Core de ISBE, proporcionando:

  • Control de acceso basado en roles (AccessControl)
  • Capacidad de pausa para emergencias (Pausable)
  • Gestión de propiedad (Ownable)
  • Integración con identidad descentralizada (DID)
  • Soporte ERC165 para detección de interfaces

Extensiones Disponibles

ISBE ofrece las siguientes extensiones que puedes combinar según tus necesidades:

  • Base: Token ERC20 estándar con funcionalidad básica
  • Burnable: Destrucción de tokens
  • Capped: Límite máximo de suministro
  • Snapshot: Instantáneas de balances para auditoría
  • Controller: Control administrativo forzado para casos excepcionales

Variantes ERC20

Base - Token ERC20 Estándar

Token fungible con las funciones básicas de transferencia y aprobación.

Funcionalidad:

  • Transferencias (transfer, transferFrom)
  • Aprobaciones (approve, allowance)
  • Consultas de balance (balanceOf, totalSupply)
  • Metadatos (name, symbol, decimals)

Cuándo usar:

  • Utility tokens simples
  • Créditos internos de plataforma
  • Tokens de acceso sin requerimientos especiales

Inicialización:

initializeErc20(
"Mi Token", // name
"MTK", // symbol
18 // decimals
)

Burnable - Destrucción de Tokens

Permite quemar (destruir permanentemente) tokens, reduciendo el suministro total.

Funcionalidad adicional:

  • burn(amount) - Quemar tokens propios
  • burnFrom(account, amount) - Quemar tokens de otra dirección (requiere allowance)

Cuándo usar:

  • Tokens con deflación programada
  • Mecanismos de recompra y quema
  • Gestión de oferta dinámica

Capped - Suministro Máximo

Establece un límite máximo de tokens que pueden existir y proporciona funcionalidad de acuñación.

Funcionalidad adicional:

  • mint(address, amount) - Acuñar nuevos tokens
  • cap() - Consultar el límite máximo
  • Validación automática al acuñar (no puede exceder el cap)

Roles requeridos:

  • MINTER_ROLE - Para acuñar tokens
  • CAP_ROLE - Para configurar el límite máximo

Cuándo usar:

  • Tokens con suministro limitado (ej: 21M como Bitcoin)
  • Prevención de inflación descontrolada
  • Garantía de escasez

Snapshot - Instantáneas de Balances

Permite crear instantáneas (snapshots) de los balances en momentos específicos para auditoría o gobernanza.

Funcionalidad adicional:

  • snapshot() - Crear una nueva instantánea
  • balanceOfAt(account, snapshotId) - Balance en un snapshot específico
  • totalSupplyAt(snapshotId) - Supply total en un snapshot específico

Roles requeridos:

  • SNAPSHOT_ROLE - Para crear instantáneas

Cuándo usar:

  • Distribución de dividendos proporcional
  • Gobernanza con voting power histórico
  • Auditorías fiscales
  • Cumplimiento regulatorio

Controller - Control Forzado

Proporciona funciones de control administrativo forzado para casos regulatorios excepcionales.

Funcionalidad adicional:

  • forceBurn(account, amount) - Quemar tokens de cualquier dirección
  • forceTransfer(from, to, amount) - Transferir tokens entre direcciones sin allowance

Roles requeridos:

  • CONTROLLER_ROLE - Para operaciones de control forzado

Cuándo usar:

  • Casos excepcionales que requieren control administrativo
  • Situaciones regulatorias especiales

Nota: Las funciones de control forzado están diseñadas para casos excepcionales. Su uso debe estar justificado.

Roles del Sistema ERC20

RolPermisosCuándo se necesita
MINTER_ROLEAcuñar nuevos tokensEmisión inicial, recompensas, expansión de suministro
CAP_ROLEConfigurar límite máximoEstablecer o modificar el suministro máximo
SNAPSHOT_ROLECrear instantáneasAuditorías, gobernanza, distribución de dividendos
CONTROLLER_ROLEControl forzadoCumplimiento de mandatos legales
PAUSER_ROLEPausar/despausarEmergencias, mantenimiento, incidentes de seguridad

Casos de Uso ERC20

Utility Tokens:

  • Token de acceso a API
  • Créditos de plataforma SaaS
  • Tokens de juegos

Puntos de Fidelidad:

  • Programa de fidelización retail
  • Recompensas de comunidad
  • Cashback digital

Monedas Internas:

  • Moneda corporativa interna
  • Vales digitales
  • Créditos institucionales

Tokens Deflacionarios:

  • Tokens con burn en cada transacción
  • Recompra y quema periódica
  • Reducción programada de oferta

ERC721: Tokens No Fungibles

Los tokens ERC721 son activos digitales únicos donde cada token tiene una identidad diferenciada (no fungibles). Son ideales para representar certificados, credenciales, activos únicos y cualquier elemento que requiera identificación individual.

Qué es ERC721 en ISBE

ERC721 en ISBE es una implementación del estándar ERC-721 (EIP-721) que se apoya en los contratos Core de ISBE, proporcionando:

  • Control de acceso basado en roles (AccessControl)
  • Capacidad de pausa para emergencias (Pausable)
  • Gestión de propiedad (Ownable)
  • Integración con identidad descentralizada (DID)
  • Soporte ERC165 para detección de interfaces

Extensiones Disponibles

  • Base: Token ERC721 estándar con funcionalidad básica
  • Burnable: Destrucción de NFTs
  • Capped: Límite máximo de supply
  • Snapshot: Instantáneas de balances y ownership
  • Enumerable: Enumeración de tokens existentes
  • Royalty: Regalías en reventas (EIP-2981)
  • Consecutive: Acuñación masiva optimizada (EIP-2309)
  • Controller: Control administrativo forzado para casos excepcionales

Variantes ERC721

Base - Token ERC721 Estándar

Token no fungible con las funciones básicas de ownership, transferencia y aprobación.

Funcionalidad:

  • Transferencias seguras (safeTransferFrom)
  • Transferencias estándar (transferFrom)
  • Aprobaciones individuales (approve, getApproved)
  • Aprobaciones globales (setApprovalForAll, isApprovedForAll)
  • Consultas de ownership (ownerOf, balanceOf)
  • Metadatos (name, symbol, tokenURI)

Cuándo usar:

  • NFTs simples sin requerimientos especiales
  • Certificados digitales básicos
  • Activos únicos sin funcionalidades avanzadas

Burnable - Destrucción de NFTs

Permite quemar (destruir permanentemente) tokens, reduciendo el supply total.

Funcionalidad adicional:

  • burn(tokenId) - Quemar NFT propio
  • burnFrom(owner, tokenId) - Quemar NFT de otra dirección (requiere aprobación)

Cuándo usar:

  • Certificados con caducidad
  • Credenciales revocables
  • NFTs con ciclo de vida limitado

Capped - Suministro Máximo

Establece un límite máximo de tokens que pueden existir y proporciona funcionalidad de acuñación.

Funcionalidad adicional:

  • mint(address, tokenId) - Acuñar nuevos NFTs
  • cap() - Consultar el límite máximo
  • Validación automática al acuñar (no puede exceder el cap)

Roles requeridos:

  • MINTER_ROLE - Para acuñar NFTs
  • CAP_ROLE - Para configurar el límite máximo

Cuándo usar:

  • Colecciones limitadas (ej: 10,000 NFTs)
  • Certificados con cupos definidos
  • Garantía de escasez

Snapshot - Instantáneas Históricas

Permite crear instantáneas de balances, ownership y supply en momentos específicos para auditoría.

Funcionalidad adicional:

  • snapshot() - Crear una nueva instantánea
  • balanceOfAt(account, snapshotId) - Balance en un snapshot específico
  • totalSupply(snapshotId) - Supply total en un snapshot específico
  • ownerOfAt(tokenId, snapshotId) - Owner de un token en un snapshot específico

Roles requeridos:

  • SNAPSHOT_ROLE - Para crear instantáneas

Cuándo usar:

  • Gobernanza con voting power histórico
  • Distribución de beneficios proporcional
  • Auditorías fiscales
  • Cumplimiento regulatorio

Enumerable - Enumeración de Tokens

Proporciona funciones para listar y enumerar tokens existentes.

Funcionalidad adicional:

  • totalSupplyEnumerable() - Total de tokens existentes
  • tokenByIndex(index) - Token ID en posición global
  • tokenOfOwnerByIndex(owner, index) - Token ID en posición del owner

Cuándo usar:

  • Marketplaces que necesitan listar NFTs
  • Interfaces que muestran colecciones completas
  • Sistemas que requieren iterar sobre tokens

Nota: Enumerable incrementa significativamente el coste de gas en transfers y mints. Usar solo si es necesario.

Royalty - Regalías en Reventas

Implementa el estándar EIP-2981 para regalías en mercados secundarios.

Funcionalidad adicional:

  • setDefaultRoyalty(receiver, feeNumerator) - Configurar regalía global
  • deleteDefaultRoyalty() - Eliminar regalía global
  • setTokenRoyalty(tokenId, receiver, feeNumerator) - Regalía por token
  • resetTokenRoyalty(tokenId) - Resetear regalía de un token
  • royaltyInfo(tokenId, salePrice) - Consultar regalía

Roles requeridos:

  • ROYALTY_ROLE - Para configurar regalías

Cuándo usar:

  • Arte digital con regalías para el creador
  • Colecciones con comisiones en reventas
  • Cumplimiento de contratos con artistas

Consecutive - Acuñación Masiva

Permite acuñar múltiples tokens consecutivos en una sola operación optimizada (EIP-2309).

Funcionalidad adicional:

  • mintConsecutive(to, quantity) - Acuñar múltiples tokens consecutivos

Roles requeridos:

  • MINTER_ROLE - Para acuñar tokens

Cuándo usar:

  • Emisión inicial de colecciones grandes
  • Distribución masiva de certificados
  • Ahorro de gas en mints múltiples

Controller - Control Forzado

Proporciona funciones de control administrativo forzado para casos regulatorios excepcionales.

Funcionalidad adicional:

  • forceBurn(owner, tokenId) - Quemar NFT de cualquier dirección
  • forceTransfer(from, to, tokenId) - Transferir NFT sin aprobación

Roles requeridos:

  • CONTROLLER_ROLE - Para operaciones de control forzado

Cuándo usar:

  • Cumplimiento de órdenes judiciales
  • Recuperación de activos en casos de fraude
  • Revocación de credenciales bajo mandato legal

Nota: Las funciones de control forzado están diseñadas solo para casos excepcionales bajo mandato legal o regulatorio. Su uso debe estar documentado y justificado.

Roles del Sistema ERC721

RolPermisosCuándo se necesita
MINTER_ROLEAcuñar nuevos tokensEmisión de certificados, creación de NFTs
BURNER_ROLEQuemar tokensRevocación de certificados, destrucción de NFTs
CAP_ROLEConfigurar límite máximoEstablecer o modificar el suministro máximo
SNAPSHOT_ROLECrear instantáneasAuditorías, gobernanza, registro histórico
ROYALTY_ROLEConfigurar regalíasGestión de comisiones en reventas
CONTROLLER_ROLEControl forzadoCumplimiento de mandatos legales
PAUSER_ROLEPausar/despausarEmergencias, mantenimiento, incidentes de seguridad

Casos de Uso ERC721

Certificados Digitales:

  • Diplomas universitarios
  • Certificaciones profesionales
  • Títulos académicos

Credenciales de Identidad:

  • Credenciales verificables W3C
  • Licencias profesionales
  • Permisos y autorizaciones

Arte Digital y Coleccionables:

  • Arte digital
  • Coleccionables limitados
  • Fotografía digital

Activos Tokenizados:

  • Bienes inmuebles
  • Objetos de valor
  • Equipamiento industrial

Licencias y Permisos:

  • Licencias de software
  • Derechos de acceso
  • Membresías
  • Configuración sugerida: Base + Burnable + Capped

ERC3643: Tokens Regulados

Los tokens ERC3643 se utilizan para representar instrumentos financieros que requieren cumplimiento regulatorio estricto. Están diseñados exclusivamente para tokenizar securities (acciones, bonos, fondos) que deben cumplir con normativas financieras.

Nota: ERC3643 está diseñado exclusivamente para representar instrumentos financieros regulados (acciones, bonos, fondos de inversión). Para utility tokens usa ERC20.

Qué es ERC3643 en ISBE

ERC3643 en ISBE es una implementación del estándar ERC-3643 que se apoya en los contratos Core de ISBE, proporcionando:

  • Control de acceso basado en roles (AccessControl)
  • Capacidad de pausa para emergencias (Pausable)
  • Gestión de propiedad (Ownable)
  • Integración con identidad descentralizada (DID)
  • Soporte ERC165 para detección de interfaces

Diferencias con ERC20 Estándar

ERC3643 extiende ERC20 añadiendo validaciones regulatorias obligatorias:

  • Whitelist de direcciones: Solo wallets autorizadas pueden operar
  • Reglas de compliance: Límites de balance, volumen, restricciones
  • Congelación de fondos: Freeze completo o parcial de cuentas
  • Control forzado: Transferencias y quemas sin aprobación previa
  • Recuperación de wallets: Recuperar tokens de wallets perdidos

Extensiones Disponibles

  • Base: Token ERC3643 con funcionalidad regulatoria básica
  • Metadata: Actualización dinámica de nombre y símbolo
  • Freeze: Congelación completa y parcial de cuentas
  • Capped: Límite máximo de suministro
  • Controller: Operaciones forzadas sin aprobación
  • Snapshot: Instantáneas de balances para auditoría
  • Recovery: Recuperación de tokens de wallets perdidos
  • Compliance: Orquestador de reglas regulatorias (activa/desactiva features)
  • Compliance MaxBalance: Límite máximo de balance por cuenta
  • Compliance DayMonthLimits: Límites diarios y mensuales de transferencias

Variantes ERC3643

Base - Token ERC3643 Estándar

Token fungible regulado con validaciones de identidad y compliance integradas.

Funcionalidad:

  • Todas las operaciones ERC20 estándar
  • Validación de whitelist obligatoria
  • Verificación de compliance en cada transferencia
  • Consultas de balance y supply
  • Metadatos (name, symbol, decimals)

Cuándo usar:

  • Instrumento financiero regulado básico
  • Security token sin requerimientos especiales de compliance

Metadata - Actualización de Metadatos

Permite actualizar dinámicamente el nombre y símbolo del token (requerimiento regulatorio).

Funcionalidad adicional:

  • setName(string) - Actualizar nombre del token
  • setSymbol(string) - Actualizar símbolo del token

Roles requeridos:

  • METADATA_ROLE - Para actualizar metadatos

Cuándo usar:

  • Tokens que requieren cambios de branding
  • Cumplimiento de requisitos regulatorios de nomenclatura

Freeze - Congelación de Cuentas

Permite congelar cuentas completa o parcialmente por razones regulatorias.

Funcionalidad adicional:

  • setAddressFrozen(address, bool) - Congelar/descongelar cuenta completa
  • freezePartialTokens(address, amount) - Congelar cantidad específica
  • unfreezePartialTokens(address, amount) - Descongelar cantidad específica
  • isFrozen(address) - Consultar si cuenta está congelada
  • getFrozenTokens(address) - Consultar tokens congelados parcialmente
  • Operaciones batch para múltiples cuentas

Roles requeridos:

  • FREEZE_ROLE - Para operaciones de congelación

Cuándo usar:

  • Órdenes judiciales de congelación de activos
  • Prevención de movimientos durante investigaciones
  • Gestión de disputas o conflictos

Capped - Suministro Máximo

Establece un límite máximo de tokens que pueden existir y proporciona funcionalidad de acuñación.

Funcionalidad adicional:

  • initializeCap(cap) - Inicializar límite máximo
  • setCap(newCap) - Actualizar límite máximo
  • cap() - Consultar el límite máximo
  • mint(address, amount) - Acuñar tokens (validación de cap)
  • batchMint(addresses[], amounts[]) - Acuñar múltiples en batch

Roles requeridos:

  • MINTER_ROLE - Para acuñar tokens
  • CAP_ROLE - Para configurar el límite máximo

Cuándo usar:

  • Securities con emisión limitada
  • Garantía de no dilución por encima de límite

Controller - Control Forzado

Proporciona funciones de control administrativo forzado para cumplimiento regulatorio.

Funcionalidad adicional:

  • forceTransfer(from, to, amount) - Transferir sin aprobación
  • forceBurn(from, amount) - Quemar tokens sin aprobación
  • Operaciones batch para múltiples transferencias/quemas
  • Auto-unfreeze: Descongela automáticamente tokens necesarios

Roles requeridos:

  • CONTROLLER_ROLE - Para operaciones de control forzado

Cuándo usar:

  • Casos excepcionales que requieren control administrativo
  • Situaciones regulatorias especiales

Nota: Las funciones de control forzado están diseñadas para casos excepcionales. Su uso debe estar justificado.

Snapshot - Instantáneas Históricas

Permite crear instantáneas de balances y supply en momentos específicos para auditoría.

Funcionalidad adicional:

  • snapshot() - Crear una nueva instantánea
  • balanceOfAt(account, snapshotId) - Balance en un snapshot específico
  • totalSupply(snapshotId) - Supply total en un snapshot específico

Roles requeridos:

  • SNAPSHOT_ROLE - Para crear instantáneas

Cuándo usar:

  • Distribución de dividendos proporcional
  • Auditorías regulatorias periódicas
  • Reportes fiscales históricos
  • Gobernanza con voting power histórico

Recovery - Recuperación de Wallets

Permite recuperar tokens de wallets perdidos o comprometidos a nuevos wallets verificados.

Funcionalidad adicional:

  • recoveryAddress(lostWallet, newWallet) - Recuperar tokens a nueva wallet

Roles requeridos:

  • RECOVERY_ROLE - Para operaciones de recuperación

Cuándo usar:

  • Pérdida de claves privadas
  • Wallets comprometidos
  • Cambio de custodio
  • Migración de identidad

Compliance - Orquestador de Reglas

Módulo central que gestiona la activación y orquestación de todas las reglas de compliance.

Funcionalidad adicional:

  • Orquesta la validación de todas las features de compliance activas
  • Ejecuta validaciones en cada transferencia, mint y burn
  • Permite bypass para cuentas con COMPLIANCE_ROLE

Roles requeridos:

  • COMPLIANCE_ROLE - Para gestionar features y bypassear validaciones

Cuándo usar:

  • Siempre presente en tokens ERC3643
  • Actúa como capa central de validación regulatoria

Compliance: MaxBalance

Límite máximo de balance que puede tener cada cuenta.

Funcionalidad adicional:

  • initializeERC3643ComplianceMaxBalance(maxBalance) - Inicializar límite
  • setMaxBalance(maxBalance) - Actualizar límite
  • getMaxBalance() - Consultar límite actual
  • enableMaxBalance() - Activar validación
  • disableMaxBalance() - Desactivar validación
  • Validación automática en cada transferencia y mint

Roles requeridos:

  • COMPLIANCE_ROLE - Para configurar y activar/desactivar

Cuándo usar:

  • Prevención de concentración de ownership
  • Cumplimiento de límites regulatorios por inversor
  • Distribución equitativa requerida por ley

Compliance: DayMonthLimits

Límites de volumen de transferencias diario y mensual por cuenta.

Funcionalidad adicional:

  • initializeERC3643ComplianceDMLim(dailyLimit, monthlyLimit) - Inicializar límites
  • setDayMonthLimits(dailyLimit, monthlyLimit) - Actualizar límites
  • getDayMonthLimits() - Consultar límites actuales
  • enableDayMonthLimits() - Activar validación
  • disableDayMonthLimits() - Desactivar validación
  • Validación automática en cada transferencia

Roles requeridos:

  • COMPLIANCE_ROLE - Para configurar y activar/desactivar

Cuándo usar:

  • Prevención de lavado de dinero (AML)
  • Control de velocidad de transacciones
  • Cumplimiento de límites regulatorios de trading

Sistema de Validación de Compliance

La arquitectura Diamond de ISBE implementa un sistema modular de compliance:

  • Compliance: Orquestador central que gestiona la activación y ejecución de reglas
  • Features modulares: Cada regla (MaxBalance, DayMonthLimits) es independiente y configurable
  • Activación dinámica: Las features se activan/desactivan sin redeploy mediante flags
  • Validación automática: El orquestador ejecuta validaciones de features activas en cada operación
  • Bypass por rol: COMPLIANCE_ROLE puede saltar todas las validaciones en operaciones especiales

Roles del Sistema ERC3643

RolPermisosCuándo se necesita
MINTER_ROLEAcuñar nuevos tokensEmisión de securities, ampliaciones de capital
METADATA_ROLEActualizar nombre y símboloCambios de branding, requisitos regulatorios
FREEZE_ROLECongelar/descongelar cuentasÓrdenes judiciales, investigaciones
CONTROLLER_ROLETransferencias y quemas forzadasMandatos legales, resolución de disputas
RECOVERY_ROLERecuperar wallets perdidosPérdida de claves, cambio de custodio
SNAPSHOT_ROLECrear instantáneasAuditorías, distribución de dividendos
CAP_ROLEConfigurar límite máximoEstablecer emisión máxima
COMPLIANCE_ROLEConfigurar y bypassear complianceGestión de reglas regulatorias, operaciones excepcionales
PAUSER_ROLEPausar/despausarEmergencias, mantenimiento, incidentes de seguridad

Casos de Uso ERC3643

Acciones Tokenizadas:

  • Acciones de empresa privada
  • Equity crowdfunding
  • Participaciones en startups

Bonos Digitales:

  • Bonos corporativos
  • Deuda pública tokenizada
  • Instrumentos de renta fija

Fondos de Inversión:

  • Real estate funds
  • Fondos de capital riesgo
  • Fondos de inversión colectiva

AssetEventTracker: Trazabilidad de Activos

El AssetEventTracker permite registrar, consultar y auditar eventos asociados a activos digitales (tokens, credenciales, documentos) garantizando trazabilidad inmutable, integridad y cumplimiento normativo.

Qué es AssetEventTracker en ISBE

AssetEventTracker es un sistema de registro de eventos que se apoya en los contratos Core de ISBE, proporcionando:

  • Control de acceso basado en roles (AccessControl)
  • Capacidad de pausa para emergencias (Pausable)
  • Gestión de propiedad (Ownable)
  • Integración con identidad descentralizada (DID)
  • Soporte ERC165 para detección de interfaces

Características Principales

  • Registro inmutable: Eventos permanentes en blockchain
  • Consultas eficientes: Búsqueda por estado, paginación
  • Flexibilidad semántica: Estados configurables según caso de uso
  • Interoperabilidad: Compatible con sistemas de verificación externos

Funcionalidad

Funcionalidad:

  • Registro de cambios de estado (recordState)
  • Consulta del estado actual (getCurrentState)
  • Consulta del último evento (getLatestAssetEvent)
  • Consulta de eventos paginados (getAssetEvents)
  • Validación de cambios de estado (isStateChangeAllowed)

Cuándo usar:

  • Seguimiento de ciclo de vida de credenciales
  • Trazabilidad de tokens no fungibles
  • Auditoría de cambios de estado de documentos
  • Registro de eventos regulatorios

Roles del Sistema

RolPermisosCuándo se necesita
ASSET_EVENT_TRACKER_ROLERegistrar nuevos estadosEmisores autorizados, sistemas de gestión
PAUSER_ROLEPausar/despausarEmergencias, mantenimiento, incidentes de seguridad

Casos de Uso AssetEventTracker

Control de Máquinas de Estado:

  • Flujos de aprobación multi-etapa
  • Ciclos de vida de activos digitales
  • Procesos con validación de transiciones
  • Trazabilidad de cambios de estado

Auditoría y Compliance:

  • Registro inmutable de eventos
  • Histórico de cambios
  • Trazabilidad regulatoria

HashTimestamp: Sellado Temporal

El HashTimestamp proporciona un mecanismo inmutable, verificable y trazable para registrar la existencia de un documento o dato digital en un momento determinado, mediante el almacenamiento de su hash criptográfico y marca de tiempo en blockchain.

Qué es HashTimestamp en ISBE

HashTimestamp es un sistema de notarización digital descentralizado que se apoya en los contratos Core de ISBE, proporcionando:

  • Control de acceso basado en roles (AccessControl)
  • Capacidad de pausa para emergencias (Pausable)
  • Gestión de propiedad (Ownable)
  • Integración con identidad descentralizada (DID)
  • Soporte ERC165 para detección de interfaces

Características Principales

  • Proof of existence: Prueba de que un documento existía en un momento específico
  • Integridad verificable: Cualquier alteración del documento es detectable
  • No repudio: Registro inmutable en blockchain como evidencia
  • Privacidad: Solo se almacena el hash, no el contenido
  • Eficiencia: Verificación sin necesidad de almacenar documentos on-chain

Funcionalidad

Funcionalidad:

  • Registro de hash con timestamp (timestampHash)
  • Verificación de existencia (exists)
  • Consulta de timestamp (getTimestamp)

Cuándo usar:

  • Sellado de documentos legales
  • Certificación temporal de propiedad intelectual
  • Notarización digital de contratos
  • Auditoría de evidencias
  • Proof of existence de datos

Roles del Sistema

RolPermisosCuándo se necesita
HASH_TIMESTAMP_ROLERegistrar nuevos hashesEmisores autorizados, sistemas de notarización
PAUSER_ROLEPausar/despausarEmergencias, mantenimiento, incidentes de seguridad

Casos de Uso HashTimestamp

Proof of Existence:

  • Certificación temporal de documentos
  • Registro de existencia de datos
  • Prueba de integridad

Notarización Digital:

  • Sellado temporal de contenidos
  • Registro inmutable de hashes
  • Verificación de no manipulación

Flujo de Uso de Plantillas

1. Elige tu plantilla

Revisa las plantillas disponibles y selecciona la que mejor se adapte a tu caso de uso.

2. Configura los parámetros

Cada plantilla requiere parámetros de inicialización según el tipo:

Ejemplo ERC20:

{
name: "Mi Token",
symbol: "MTK",
decimals: 18
}

Ejemplo ERC721:

{
name: "Mis Certificados",
symbol: "CERT",
baseURI: "https://api.miapp.com/metadata/"
}

Ejemplo ERC3643:

{
name: "Security Token",
symbol: "SEC",
decimals: 18,
cap: 1000000,
maxBalance: 100000
}

3. Despliega desde el wizard

Utiliza el wizard de despliegue de ISBE:

  • Selecciona la plantilla deseada
  • Configura los parámetros
  • Confirma el despliegue

4. Obtén tu contrato desplegado

Una vez desplegado, obtendrás la dirección del contrato y podrás verificarlo en BlockScout.

5. Integra en tu aplicación

Interactúa con tu contrato desde tu aplicación usando la dirección desplegada.


Lo que obtienes automáticamente

Todas las plantillas incluyen automáticamente las capacidades del Core:

CapacidadQué incluye
Identidad (DIDs)Sistema de identidades W3C integrado
Control de AccesoRBAC con roles configurables
PausabilidadProtección whenNotPaused en funciones críticas
UpgradabilityDiamond Pattern (EIP-2535)
OwnershipGestión de propiedad del contrato

No necesitas implementar nada de esto, ya está incluido y configurado.


Próximos Pasos

Si una plantilla cubre tu necesidad

  1. Configura los parámetros de tu plantilla
  2. Solicita el despliegue a ISBE
  3. Integra en tu aplicación usando el SDK

Si ninguna plantilla se ajusta

Consulta la guía de Desarrollo de Contratos Custom para implementar lógica personalizada.


¿Necesitas ayuda para elegir una plantilla o configurarla? Contacta con el equipo de ISBE.