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
| Aspecto | Plantilla | Custom |
|---|---|---|
| Desarrollo | Solo configuración | Desarrollas tu lógica |
| Certificación | Automática | Proceso completo |
| Flexibilidad | Limitada al estándar | Total |
| Mantenimiento | ISBE se encarga | Tu 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 propiosburnFrom(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 tokenscap()- 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 tokensCAP_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áneabalanceOfAt(account, snapshotId)- Balance en un snapshot específicototalSupplyAt(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ónforceTransfer(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
| Rol | Permisos | Cuándo se necesita |
|---|---|---|
MINTER_ROLE | Acuñar nuevos tokens | Emisión inicial, recompensas, expansión de suministro |
CAP_ROLE | Configurar límite máximo | Establecer o modificar el suministro máximo |
SNAPSHOT_ROLE | Crear instantáneas | Auditorías, gobernanza, distribución de dividendos |
CONTROLLER_ROLE | Control forzado | Cumplimiento de mandatos legales |
PAUSER_ROLE | Pausar/despausar | Emergencias, 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 propioburnFrom(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 NFTscap()- 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 NFTsCAP_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áneabalanceOfAt(account, snapshotId)- Balance en un snapshot específicototalSupply(snapshotId)- Supply total en un snapshot específicoownerOfAt(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 existentestokenByIndex(index)- Token ID en posición globaltokenOfOwnerByIndex(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 globaldeleteDefaultRoyalty()- Eliminar regalía globalsetTokenRoyalty(tokenId, receiver, feeNumerator)- Regalía por tokenresetTokenRoyalty(tokenId)- Resetear regalía de un tokenroyaltyInfo(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ónforceTransfer(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
| Rol | Permisos | Cuándo se necesita |
|---|---|---|
MINTER_ROLE | Acuñar nuevos tokens | Emisión de certificados, creación de NFTs |
BURNER_ROLE | Quemar tokens | Revocación de certificados, destrucción de NFTs |
CAP_ROLE | Configurar límite máximo | Establecer o modificar el suministro máximo |
SNAPSHOT_ROLE | Crear instantáneas | Auditorías, gobernanza, registro histórico |
ROYALTY_ROLE | Configurar regalías | Gestión de comisiones en reventas |
CONTROLLER_ROLE | Control forzado | Cumplimiento de mandatos legales |
PAUSER_ROLE | Pausar/despausar | Emergencias, 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 tokensetSymbol(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 completafreezePartialTokens(address, amount)- Congelar cantidad específicaunfreezePartialTokens(address, amount)- Descongelar cantidad específicaisFrozen(address)- Consultar si cuenta está congeladagetFrozenTokens(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áximosetCap(newCap)- Actualizar límite máximocap()- Consultar el límite máximomint(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 tokensCAP_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ónforceBurn(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áneabalanceOfAt(account, snapshotId)- Balance en un snapshot específicototalSupply(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ímitesetMaxBalance(maxBalance)- Actualizar límitegetMaxBalance()- Consultar límite actualenableMaxBalance()- Activar validacióndisableMaxBalance()- 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ímitessetDayMonthLimits(dailyLimit, monthlyLimit)- Actualizar límitesgetDayMonthLimits()- Consultar límites actualesenableDayMonthLimits()- Activar validacióndisableDayMonthLimits()- 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_ROLEpuede saltar todas las validaciones en operaciones especiales
Roles del Sistema ERC3643
| Rol | Permisos | Cuándo se necesita |
|---|---|---|
MINTER_ROLE | Acuñar nuevos tokens | Emisión de securities, ampliaciones de capital |
METADATA_ROLE | Actualizar nombre y símbolo | Cambios de branding, requisitos regulatorios |
FREEZE_ROLE | Congelar/descongelar cuentas | Órdenes judiciales, investigaciones |
CONTROLLER_ROLE | Transferencias y quemas forzadas | Mandatos legales, resolución de disputas |
RECOVERY_ROLE | Recuperar wallets perdidos | Pérdida de claves, cambio de custodio |
SNAPSHOT_ROLE | Crear instantáneas | Auditorías, distribución de dividendos |
CAP_ROLE | Configurar límite máximo | Establecer emisión máxima |
COMPLIANCE_ROLE | Configurar y bypassear compliance | Gestión de reglas regulatorias, operaciones excepcionales |
PAUSER_ROLE | Pausar/despausar | Emergencias, 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
| Rol | Permisos | Cuándo se necesita |
|---|---|---|
ASSET_EVENT_TRACKER_ROLE | Registrar nuevos estados | Emisores autorizados, sistemas de gestión |
PAUSER_ROLE | Pausar/despausar | Emergencias, 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
| Rol | Permisos | Cuándo se necesita |
|---|---|---|
HASH_TIMESTAMP_ROLE | Registrar nuevos hashes | Emisores autorizados, sistemas de notarización |
PAUSER_ROLE | Pausar/despausar | Emergencias, 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:
| Capacidad | Qué incluye |
|---|---|
| Identidad (DIDs) | Sistema de identidades W3C integrado |
| Control de Acceso | RBAC con roles configurables |
| Pausabilidad | Protección whenNotPaused en funciones críticas |
| Upgradability | Diamond Pattern (EIP-2535) |
| Ownership | Gestió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
- Configura los parámetros de tu plantilla
- Solicita el despliegue a ISBE
- 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.