¿Qué son?

Los procesos en Stamping.io son flujos de trabajo orquestados que permiten la creación de tareas secuenciales. Estos procesos se diseñan visualmente y se ejecutan como nuevas API REST que pueden ser invocadas desde las dApps de los clientes. En esencia, los procesos son la infraestructura que permite automatizar y gestionar tareas de manera eficiente.

Modo de uso

  • Diseño Visual: La creación de procesos se realiza de manera visual y sin necesidad de programación. Los usuarios pueden diseñar flujos de trabajo mediante una interfaz intuitiva y amigable.
  • Secuencia de Tareas: Los procesos consisten en una secuencia de tareas que están vinculadas entre sí. Estas tareas se ejecutan de manera ordenada, permitiendo una ejecución paso a paso del flujo de trabajo.
  • Parametrización: Se pueden enviar parámetros a las tareas del proceso, lo que brinda flexibilidad y personalización en la ejecución de las tareas. Asimismo, las tareas pueden devolver respuestas que son gestionadas por el propio proceso.
  • Finalización como API REST: Al concluir, un proceso se convierte en una nueva API REST, permitiendo su invocación desde las aplicaciones descentralizadas (dApps) de los clientes. Esto facilita la integración de la lógica del proceso en diversas aplicaciones.

Ejemplo

A continuación se muestra una imagen donde se muestra un proceso que permite atestar una imagen:

Beneficios

En una herramienta NoCode (sin código), los procesos desempeñan un papel clave al permitir a los usuarios definir la lógica y comportamientos específicos de un procesos de negocios para conectarla con sus aplicaciones descentralizadas sin la necesidad de escribir código tradicional. Estos procesos son implementados desde interfaces gráficas por cada tarea, en lugar de escribir código manualmente presentando los siguientes beneficios:

  • Diseño Intuitivo: La interfaz visual y amigable facilita la creación de flujos de trabajo sin necesidad de conocimientos extensos de programación.
  • Automatización Eficiente: Los procesos permiten automatizar tareas de manera secuencial, mejorando la eficiencia en la ejecución de operaciones complejas.
  • Integración con dApps: La finalización como API REST facilita la integración de la lógica del proceso en las aplicaciones descentralizadas (dApps) de los clientes.
  • Personalización: La capacidad de enviar y recibir parámetros permite una personalización flexible de las tareas en el proceso.
  • Interacción con Web3 y Web2: Los procesos pueden abarcar desde la invocación de APIs externas (Web2) hasta la creación de billeteras, interacción con smart contracts (Web3), servidores IPFS, afirmaciones verificables, evidencias digitales, entre otras funcionalidades avanzadas.

En resumen, los procesos en Stamping.io ofrecen una solución No-code para la automatización de flujos de trabajo, brindando a los usuarios la capacidad de diseñar, ejecutar y gestionar tareas de manera visual y eficiente, incluso integrando operaciones complejas de Web3 y Web2. A continuación se muestra la lista de tareas disponibles en el apificador de Stamping.io:
Listado de procesos (tareas)

goWalletCreate(Secret, Nonce)

El proceso goWalletCreate() en Stamping.io permite la creación de una billetera mediante la combinación de un código secreto (Secret) y asociarlo a un identificador (nonce opcional). La llave privada asociada se genera utilizando el algoritmo SHA256 y se basa en la concatenación de secret y nonce. Si el nonce es vacío, la llave privada se genera únicamente a partir del secret.

Entradas
  • Secret: Código secreto utilizado como componente para la generación de la billetera.
  • Nonce (Opcional): Valor opcional utilizado para vincularlo a un identificador del usuario (ej: email, dni, codigointerno, address, etc); además permite fortalecer la generación de la llave privada.
Proceso
  • Si el Nonce no está vacío, la llave privada se genera mediante SHA256(secret + nonce).
  • Si el Nonce está vacío, la llave privada se genera mediante SHA256(secret).
Salida del proceso
  • El address asociado a la llave privada.
  • La llave privada generada.
El proceso goWalletCreate() es útil cuando se necesita generar billeteras de forma segura utilizando un código secreto. La inclusión opcional de un nonce mejora la seguridad de la llave privada.

goWalletCreateBIP39(Secret, Lenguaje, #Palabras)

El proceso goWalletCreateBIP39 en Stamping.io facilita la creación de una billetera mediante el estándar BIP39 (Bitcoin Improvement Proposal 39). BIP39 es un método para generar secuencias de palabras mnemotécnicas que representan claves privadas. Este proceso utiliza un código secreto (Secret), elige un lenguaje específico para las palabras mnemotécnicas, y permite determinar la cantidad de palabras a generar.

Entradas
  • Secret: Código secreto utilizado como componente para la generación de la billetera.
  • Lenguaje: Idioma en el que se generarán las palabras mnemotécnicas (ej. "es" para español, "en" para inglés).
  • Cantidad de Palabras: Número que indica la cantidad de palabras mnemotécnicas a generar.
Proceso
  • Se utiliza el código secreto para generar una semilla inicial.
  • La semilla se convierte en una secuencia de palabras mnemotécnicas según el estándar BIP39 y el idioma especificado.
  • La cantidad de palabras generadas se determina por el parámetro Cantidad de Palabras.
Salida del proceso
  • El address asociado a la llave privada.
  • La llave privada generada.
  • La secuencia de palabras mnemotécnicas que representa la billetera generada.
El proceso goWalletCreateBIP39 es útil cuando se requiere una billetera basada en el estándar BIP39, que proporciona una forma mnemotécnica y fácil de recordar para respaldar y recuperar claves privadas.

goWalletSignEthereum(SigningMethod, Message, PrivateKey)

El proceso goWalletSignEthereum en Stamping.io facilita la firma de mensajes utilizando una billetera, permitiendo elegir entre distintos métodos de firma. Los métodos disponibles son "data message" (firma de datos directos), "hash message" (firma de hash del mensaje), y "transaction message" (firma de mensajes de transacción en formato JSON).

Entradas
  • SigningMethod: Método de firma a utilizar ("data message", "hash message", "transaction message").
  • Message: Mensaje a firmar, que varía según el método elegido.
  • PrivateKey: Clave privada asociada a la billetera que realizará la firma.
Proceso
Firma el mensaje según el método de firma seleccionado:
  • "data message": Se firma directamente el dato proporcionado en el mensaje.
  • "hash message": Se genera un hash del mensaje antes de realizar la firma.
  • "transaction message": Se firma un mensaje de transacción en formato JSON.
Salida del proceso
  • La firma generada.
El proceso goWalletSignEthereum es útil cuando se requiere la firma de mensajes utilizando una billetera. La posibilidad de elegir el método de firma brinda flexibilidad en la aplicación de la firma según los requisitos específicos. Si no desea exponer su llave privada use: getPrivateKey() o getVariableRemote().

goWalletRecover(SigningMethod, Signature, Message)

El proceso goWalletRecover en Stamping.io facilita la recuperación de la dirección pública asociada a una firma mediante el uso de la firma de curva elíptica ECDSA (Elliptic Curve Digital Signature Algorithm). Se ofrecen diferentes métodos de recuperación dependiendo el método usado para el firmado (goWalletSignEthereum), como "data message" (recuperación de datos directos), "hash message" (recuperación de hash del mensaje), y "transaction message" (recuperación de mensajes de transacción en formato JSON).

Entradas
  • SigningMethod: Método de firma a utilizar ("data message", "hash message", "transaction message").
  • Signature: Firma ECDSA que se desea recuperar.
  • Message: Mensaje firmado, que varía según el método elegido en goWalletSignEthereum().
Proceso
Recupera el 0xaddress directamente desde la firma de datos mediante ECDSA.
Salida del proceso
  • La dirección pública recuperada.
El proceso goWalletRecover es útil cuando se necesita recuperar la dirección pública asociada a una firma mediante el uso de ECDSA. La elección del método de recuperación permite adaptarse a diferentes escenarios de aplicación.

goWalletSend(Network, rowTransaction)

El proceso goWalletSend en Stamping.io permite enviar una transacción firmada a una cadena de bloques basada en el protocolo de EVM.

Entradas
  • Network: Red blockchain a donde enviará la transacción.
  • rowTransaction: Firma ECDSA de la transacción que será enviada.
Proceso
Envia la transacción firmada a un nodo de la red usando un RPC público.
Salida del proceso
  • transactionHash: Hash de la transacción.
  • log: Log que devuelve la red al ejecutar la transacción.
El proceso goWalletSend es útil cuando se necesita firmar una transacción offchain de modo no asistido y cuya llave privada se encuentra en custodia del usuario.

goWalletReceipt(Network, transactionHash)

El proceso goWalletReceipt en Stamping.io permite obtener el recibo de una transacción en una red blockchain específica, proporcionando detalles detallados sobre la ejecución de la transacción. Se requiere especificar la red blockchain (Network) y el hash de la transacción (transactionHash) que se desea consultar.

Entradas
  • Network: Nombre de la red blockchain EVM en la que se realizó la transacción (ej. "ethereum", "fantom", "avalanche", "lacchain", etc...).
  • transactionHash: Hash único que identifica la transacción dentro de la red blockchain.
Proceso
Se realiza una consulta a la red blockchain especificada utilizando el hash de la transacción y se recopilan detalles detallados del recibo de la transacción, como estado de ejecución, gas utilizado, confirmaciones, entre otros.
Salida del proceso

Responde el detalle del recibo de la transacción.

  • blockNumber: Numero del bloque donde se encuentra la transacción en la red.
  • from: Address que envió (firmó) la transacción en la cadena de bloques.
  • to: Address de la wallet o smart contrat donde se envió la transacción en la cadena de bloques.
  • explorer: URL del explorador oficial de la red blockchain donde se puede fácilmente verificar la transacción.
  • network: Nombre de la red blockchain.
  • chainid: identificador de la red blockchain.
  • icon: Icono de la red blockchain.
  • status: Si es verdadero es por que la transacción ha sido correcta.
  • response: JSON de la transacción que ha sido almacenada en la cadena de bloques.
El proceso goWalletReceipt es útil cuando se requiere obtener información detallada sobre una transacción específica en una red blockchain. Proporciona una visión completa de la ejecución de la transacción y sus resultados.

goWalletBalance(Network, address)

El proceso goWalletBalance en Stamping.io posibilita la verificación del saldo de criptomonedas asociado a una dirección en redes blockchain compatibles con EVM (Ethereum Virtual Machine). Se deben proporcionar la red blockchain (Network) y la dirección (address) cuyo saldo se desea conocer.

Entradas
  • Network: Nombre de la red blockchain EVM en la que se realizó la transacción (ej. "ethereum", "fantom", "avalanche", "lacchain", etc...).
  • address: Direección de la billetera que se desea consultar el saldo de criptomonedas que tiene en una red blockchain.
Proceso
Se realiza una consulta a la red blockchain especificada utilizando el hash de la transacción y se recopilan detalles detallados del recibo de la transacción, como estado de ejecución, gas utilizado, confirmaciones, entre otros.
Salida del proceso

Responde el detalle del recibo de la transacción.

  • balance: Cantidad de saldo que tiene sin respetar el punto decimal.
  • balanceANSI: Cantidad de saldo que tiene considerando los decimales.
  • response: JSON de la transacción que ha sido almacenada en la cadena de bloques.
El proceso goWalletBalance es útil cuando se desea verificar el saldo de una dirección en redes blockchain compatibles con EVM. Proporciona información actualizada sobre la cantidad de criptomonedas disponibles en la dirección especificada.

goWalletStamp(Bytes, Keystorage)

El proceso goWalletStamp en Stamping.io posibilita la creación de una wallet especial basado en el cifrado de "El Gamal", que permite crear infinitas direcciones asociadas a una llave privada.

Entradas
  • bytes: Tamaño en bytes que tendrá el address a crear, cuando mas bytes ocupa es mas segura pero demora más tiempo en firmar.
  • keystorage: Es el contenedor de llaves de Stamping.io. Es un mecanismo de almacenaje seguro para sus llaves, se recomienda usar un hash de tipo SHA256.
Proceso
Genera una wallet basada en el algoritmo de "El Gamal".
Salida del proceso
  • address: Dirección de la wallet creada.
  • privateKey: Llave privada de la wallet.

goWalletSignStamp(address, signingMethod, message, walletType, privateKey)

El proceso goWalletSignStamp en Stamping.io permite cifrar un mensaje desde una wallet hacia otra.

Entradas
  • address: Dirección de la wallet destinataria, para que pueda leer el mensaje es necesario que use su llave privada.
  • signingMethod: Método de firma a utilizar ("data message", "hash message", "transaction message", "code number").
  • message: Mensaje que será cifrado.
  • walletType: Tipo de contenedor de llaves de Stamping.io que uasará para firmar el mensaje. Si usa un keyStorage, se recomienda recomienda usar un hash de tipo SHA256.
  • privateKey: Si el tipo de contenedor de su wallet es KeyStorage, debe ingresar el Key, caso contrario, ingrese la llave privada con la que firmará el mensaje.
Proceso
Cifra el mensaje usando el cifrado de "El Gamal". Si desea asegurarse que el firmante ha sido autorizado, puede pedirle previamente que descifre un mensaje que luego debe enviar cifrado, tal como se aprecia en este diagrama de secuencia:
  • "data message": Se firma directamente el dato proporcionado en el mensaje.
  • "hash message": Se genera un hash del mensaje antes de realizar la firma.
  • "transaction message": Se firma un mensaje de transacción en formato JSON.
  • "code number": Se firma un numero.
Salida del proceso
  • address: Dirección de la wallet creada.
  • privateKey: Llave privada de la wallet.

goWalletRecoverStamp(signingMethod, signature, walletType, privateKey)

El proceso goWalletRecoverStamp en Stamping.io permite decifrar un mensaje que ha sido cifrado desde una wallet hacia otra.

Entradas
  • signingMethod: Método de firma a utilizar ("data message", "hash message", "transaction message", "code number").
  • signature: Mensaje cifrado.
  • walletType: Tipo de contenedor de llaves de Stamping.io que uasará para firmar el mensaje. Si usa un keyStorage, se recomienda recomienda usar un hash de tipo SHA256.
  • privateKey: Si el tipo de contenedor de su wallet es KeyStorage, debe ingresar el Key, caso contrario, ingrese la llave privada con la que firmará el mensaje.
Proceso
Descifra el mensaje usando el cifrado de "El Gamal". El mensaje dependerá del método usado:
  • "data message": Se firma directamente el dato proporcionado en el mensaje.
  • "hash message": Se genera un hash del mensaje antes de realizar la firma.
  • "transaction message": Se firma un mensaje de transacción en formato JSON.
  • "code number": Se firma un numero.
Salida del proceso
  • message: Mensaje decifrado.
  • response: JSON con los datos de decifrado.

goWalletPay(signingMethod, signature, walletType, privateKey)

El proceso goWalletPay en Stamping.io permite procesar pagos desde una billetera de captura de tarjetas. Este proceso se ejecua desde el backend pero requiere contar con un token que provee el API de checkout de mercadopago cuando se captura los datos del medio de pago del cliente.

Entradas
  • signingMethod: Método de firma a utilizar ("data message", "hash message", "transaction message", "code number").
  • signature: Mensaje cifrado.
  • walletType: Tipo de contenedor de llaves de Stamping.io que uasará para firmar el mensaje. Si usa un keyStorage, se recomienda recomienda usar un hash de tipo SHA256.
  • privateKey: Si el tipo de contenedor de su wallet es KeyStorage, debe ingresar el Key, caso contrario, ingrese la llave privada con la que firmará el mensaje.
Proceso
Permite procesar un pago que es capturado desde el cliente de mercadopago, para que funcione correctamente este proceso es necesario que realice un sitio web donde se capure los datos del medio de pago que el cliente usará para adquirir un bien o servicio, para implementarlo debe incluya el SDK de Stamping "https://stamping.io/sdk/mercadopago/pay.js", tal como se muestra en la siguiente imagen:
Ejemplo de código a implementar:
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pagar con MercadoPago</title>
    <script src="https://stamping.io/sdk/mercadopago/pay.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<style>
body, html {
    margin: 0;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-image: url('/img/logo.png');
    background-repeat: repeat;
    background-size: 120px auto; /* Ancho de 120px, alto automático */
    opacity: 0.2; /* Ajusta este valor para controlar la opacidad del fondo */
    z-index: -1; /* Coloca la imagen detrás del contenido */
    padding: 10;
}

.content {
    position: relative;
    z-index: 1; /* Asegura que el contenido esté sobre el fondo */
    padding: 20px;
}
</style>
<body>
    <div class="container">
        <script>

        function stampingPayInstance() {
            //document.getElementById('payButton').addEventListener('click', function() {
                /*Ingrese sus credenciales correctas*/
                const myCard = new StampingPAY('{PAY_CODE}',
                                               '{PROCESS_ID}',
                                               '{API_KEY}',
                                               420,
                                               'https://stamping.io/img/favicon.ico',
                                               true,
                                               true,
                                               true,
                                               true,
                                               true,
                                               'AjkMlr6'
                                               );
                /*Ingrese los datos del cliente*/
                myCard.payment("Entrada Peru-Colombia 9029493", 
                                20.50,
                                '',
                                '',
                                '',
                                '',
                                '',
                                '',
                                '')
            //});
        }
        
    </script>
    </div>
</body>
</html>
Salida del proceso
  • response: JSON con los datos del pago.

goEDVMerkle(URI, flgCreateEDV)

El proceso goEDVMerkle en Stamping.io, permite la creación de un árbol Merkle que agrupa distintas evidencias digitales. Estas evidencias pueden ser hashes de documentos, imágenes o secuencias de datos. El árbol Merkle (también conocido como árbol hash) se utiliza para estructurar y organizar las evidencias digitales, y se puede estampar en la blockchain si se especifica el flag flgCreateEDV.

Entradas
  • URI: Identificador único (Uniform Resource Identifier) que referencia el conjunto de evidencias digitales. El URI debe recuperar un JSON donde en el atributo "attributes":{"hash1", "hash2", "hash3"} se encuentra un listado (array) de hashes. Ejemplo del contenido que debe devolver el URI:
    
    "attributes":{
        "730f75dafd73e047b86acb2dbd74e75dcb93272fa084a9082848f2341aa1abb6", 
        "fa084a9082848f2341aa1abb6730f75dafd73e047b86acb2dbd74e75dcb93272", 
        "2dbd74e75dcb93272fa084a9082848f2341aa1abb6730f75dafd73e047b86acb"
    }                                                        
                                                        
                                                        
  • flgCreateEDV: Flag que indica si se debe crear y estampar el árbol Merkle en la blockchain. Si es true, se realiza el proceso de estampado.
Proceso
Se agrupan las evidencias digitales utilizando un árbol Merkle y el árbol se construye mediante la aplicación sucesiva de funciones hash a pares de evidencias digitales, hasta llegar al hash raíz.
Si flgCreateEDV es true, se estampa el hash raíz del árbol Merkle en la blockchain, proporcionando una prueba verificable de la existencia y estructura de las evidencias digitales en un momento específico.
Salida del proceso
  • root: Hash raíz del árbol Merkle creado.
  • count: Cantidad de evidencias registradas.
  • trxid: identificado de la transacción del estampado.
  • evidence: SHA256 del contenido atestado.
  • status: Estado del atestado del link del contendo: "does not exist", "new" o "exist".
  • uriView: URL del visor para verificar el estampado.
  • lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo async=false.
  • rollux: Transacción en rollux, solo se muestra cuando se atesta en modo async=false.
  • timestamp: Sello de tiempo de la atestación.
  • proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo async=false..
  • credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo async=false.
  • nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
  • response: JSON del resultado de la atestación.

goEDVStamp(hash, transactionType, flgAsync, params, data)

El proceso goEDVStamp en Stamping.io permite atestar un hash de tipo SHA256 para ser estampado en la Blockchain mediante Stamping.io.

Entradas
  • hash: SHA256 que será estampado en la Blockchain.
  • transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
  • Options: Opciones que se usará para estampar el hash.
    • Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
    • Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
    • Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Se estampa (atesta) en la blockchain un hash de tipo SHA256.
Salida del proceso
  • trxid: identificado de la transacción del estampado.
  • evidence: SHA256 del contenido atestado.
  • uriView: URL del visor para verificar el estampado.
  • lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo async=false.
  • rollux: Transacción en rollux, solo se muestra cuando se atesta en modo async=false.
  • timestamp: Sello de tiempo de la atestación.
  • proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo async=false..
  • credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo async=false.
  • nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
  • response: JSON del resultado de la atestación.

goEDVStampPDF(contentType, content, options, metadata)

El proceso goEDVStamp en Stamping.io permite atestar un documento PDF en la Blockchain mediante Stamping.io.

Entradas
  • contentType: Tipo de contenido que se va a atestar, puede ser el URL de un documento PDF o el archivo PDF codificado en base64.
  • content: Contenido que se va a atestar, depende del tipo serleccionado en el atributo contentType.
  • Options: Opciones que se usará para estampar el documento PDF
    • Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
    • transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
    • target: Tipo de salida del documento PDF atestado, si se selecciona memory se devuelve en el atributo de salida file como base64, si se selecciona storage se devuelve como un URL. Tenga en cuenta que cuando el target es memory, el atributo fileReadAndDelete viene vacio.
    • mode: Especifica el tipo de atestación. Si seleccionas simple, el documento permanecerá inalterado. Si seleccionas complete, el certificado de atestación se insertará en la primera página del documento PDF, tal como se muestra en la imagen siguiente:
      El certificado de atestación tiene las siguientes características:
      • Holograma: Se genera usando geometría fractal en función al hash del documento, siendo un elemento visual único.
      • QR: Contiene el URL del visor de stamping.io, además es compatible para ser leido con el lector especial de atestaciones: validaQR.com.
      • Fingerprint: Hash del tipo SHA256 del documento PDF.
      • Emisor: Nombre de la empresa atestadora, se configura desde stamping.io/admin => panel/config/.
      • RUC: RUC de la empresa atestadora, se configura desde stamping.io/admin => panel/config/.
      • Address: Dirección (0xaddress) del atestador del documento.
  • Metadata: Opciones adicionales que se usará para estampar el documento PDF.
    • Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
    • Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Se estampa (atesta) en la blockchain el hash de tipo SHA256 del documento PDF.
Salida del proceso
  • trxid: identificado de la transacción del estampado.
  • evidence: SHA256 del contenido atestado.
  • file: Archivo atestado que puede ser leido múltiples veces, si se selecciona el target de tipo memory, se muestra el contenido codificado en base64.
  • fileReadAndDelete: Archivo atestado que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo memory, se muestra vacio.
  • uriView: URL del visor para verificar el estampado.
  • lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo async=false.
  • rollux: Transacción en rollux, solo se muestra cuando se atesta en modo async=false.
  • timestamp: Sello de tiempo de la atestación.
  • proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo async=false..
  • credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo async=false.
  • nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
  • response: JSON del resultado de la atestación.

goEDVStampIMG(contentType, content, options, metadata)

El proceso goEDVStampIMG en Stamping.io permite atestar una imagen en la Blockchain mediante Stamping.io.

Entradas
  • contentType: Tipo de contenido que se va a atestar, puede ser el URL de un documento PDF o el archivo PDF codificado en base64.
  • content: Contenido que se va a atestar, depende del tipo serleccionado en el atributo contentType.
  • Options: Opciones que se usará para estampar el documento PDF
    • Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
    • Quality: Calidad de la imagen. El valor de pone en porcentaje.
    • Esteganografía: Texto que será ocultado dentro de la imagen.
    • transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
    • target: Tipo de salida de la imagen atestada, si se selecciona memory se devuelve en el atributo de salida file como base64, si se selecciona storage se devuelve como un URL. Tenga en cuenta que cuando el target es memory, el atributo fileReadAndDelete viene vacio.
    • mode: Especifica el tipo de atestación. Si seleccionas attestation only, se muestra solo el cetificado de atestación. Si se selecciona image with attestation la imagen se muestra con el certificado en la parte superior. Si se selecciona image without attestation la imagen permanecerá inalterada y no se creará el certificado. El certificado se muestra en la imagen siguiente:
      El certificado de atestación tiene las siguientes características:
      • Color: El color del holograma esta relacionado con el color de la imagen.
      • Holograma: Se genera usando geometría fractal en función al hash del documento, siendo un elemento visual único.
      • QR: Contiene el URL del visor de stamping.io, además es compatible para ser leido con el lector especial de atestaciones: validaQR.com.
      • Fingerprint: Hash del tipo SHA256 del documento PDF.
      • Emisor: Nombre de la empresa atestadora, se configura desde stamping.io/admin => panel/config/.
      • Address: Dirección (0xaddress) del atestador del documento.
      • Sello de tiempo: Fecha y hora de registro.
  • Metadata: Opciones adicionales que se usará para estampar el documento PDF.
    • Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
    • Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Se estampa (atesta) en la blockchain el hash de tipo SHA256 de la imagen.
Salida del proceso
  • trxid: identificado de la transacción del estampado.
  • evidence: SHA256 del contenido atestado.
  • file: Archivo atestado que puede ser leido múltiples veces, si se selecciona el target de tipo memory, se muestra el contenido codificado en base64.
  • fileReadAndDelete: Archivo atestado que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo memory, se muestra vacio.
  • uriView: URL del visor para verificar el estampado.
  • lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo async=false.
  • rollux: Transacción en rollux, solo se muestra cuando se atesta en modo async=false.
  • timestamp: Sello de tiempo de la atestación.
  • proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo async=false..
  • credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo async=false.
  • nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
  • response: JSON del resultado de la atestación.

goEDVSignBot(certificateP12, documentPDF, appearance, options)

El proceso EDVSignBot en Stamping.io permite firmar digitalmente un documento PDF usando el agente automatizado de Stamping.io.

Entradas
  • contentType (p12): Tipo de contenido del certificado p12, puede ser el URL de un documento PDF o el archivo PDF codificado en base64.
  • content (p12): Contenido del certificado p12, depende del tipo serleccionado en el atributo contentType.
  • password (p12): Contraseña del certificado P12.
  • contentType (pdf): Tipo de contenido que se va a atestar, puede ser el URL de un documento PDF o el archivo PDF codificado en base64.
  • content (pdf): Contenido que se va a atestar, depende del tipo serleccionado en el atributo contentType.
  • appearance: Opciones de apariencia que se usará para firmar el documento PDF
    • Page: Número de página donde se incluye la imagen de la firma del documento.
    • Show: Si es true se muestra la inmagen, sino se oculta.
    • Image: URL de la imagen que será usada al lado derecho de la firma.
    • PosX: Posición inferior donde se coloca la imagen de la firma. Se inicia desde la parte suerior en cero, el valor es positivo.
    • PosY: Posición lateral izquierda donde se coloca la imagen de la firma. Se inicia desde la parte izquierda en cero, el valor es positivo.
    • Height: Altura en pixeles de la imagen. Se recomienda usar el valor: 240
    • Width: Ancho en pixeles de la imagen. Se recomienda usar el valor: 80. Para una mejor apariencia, se recomienda matener la relación de altura/ancho en 3:1

Options

Entradas
  • Metadata properties: Propiedades que se incluyen en la metadata del documento PDF junto con la firma:
    • Name: Nombre del firmante.
    • Reason: Razón de la firma.
    • Location: Ciudad/pais donde se firma.
    • contact: Datos de contacto del firmante.
  • Text inside the image: Texto que se incluye en la imagen de la firma, mejorando su apariencia:
    • Line1: Primera línea de la firma.
    • Line2: Segunda línea de la firma.
    • Line3: Tercera línea de la firma.
    • Line4: Cuarta línea de la firma.
    • Line5: Quinta línea de la firma.
Proceso
Se firma digitalmente un documento PDF usando un certificado p12 y se devuelve el documento firmado.
Salida del proceso
  • fileid: identificado del documento.
  • file: Documento PDF firmado que puede ser leido múltiples veces, si se selecciona el target de tipo memory, se muestra el contenido codificado en base64.
  • fileReadAndDelete: Documento PDF firmado que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo memory, se muestra vacio.
  • hash: Hash del documento firmado.
  • response: JSON del resultado de la firma.

goEDVStamphCRC(secret, nonce, options, metadata)

El proceso goEDVStamphCRC en Stamping.io permite crear una holograma de validación de reduncancia de una atestación. Esta imagen se genera en función a un hash de tipo SHA1 que puede ser calculada dependiendo del modo de geneación que seleccione. La imagen sirve como un sello de comprobación para detectar alguna alteraciónn en una imagen o en un documento PDF. Un ejemplo de holograma se muestra así:

Entradas
  • secret: Hash de tipo SHA1 que será usado como base para crear el holograma.
  • nonce: Hash o secreto que es usado para enmascarar el secreto.
  • Options: Opciones que se usará para estampar el documento PDF
    • Mode: Seleccione el tipo de contenido que se creará en el holograma, puede ser de tres tipos:
      • Simple: Secret
      • Hidden: sha1(sha256(Secret.nonce))
      • Signer: sha1(sha256(Secret.sha256(getPrivateKey()).nonce))
    • Attestation: Si es true se atesta en la blockchain.
    • Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
  • Metadata: Opciones adicionales que se usará para estampar el documento PDF.
    • Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Crea una imagen como holograma de un hash de tipo SHA1 que es usado para comprobar redundancia e integridad de una imagen o documento.
Salida del proceso
  • checksum: Código binario usado en el holograma.
  • trxid: identificado de la transacción del estampado.
  • evidence: SHA256 del contenido atestado.
  • file: Imagen del holograma que puede ser leido múltiples veces, si se selecciona el target de tipo memory, se muestra el contenido codificado en base64.
  • fileReadAndDelete: Imagen del holograma que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo memory, se muestra vacio.
  • uriView: URL del visor para verificar el estampado.
  • lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo async=false.
  • rollux: Transacción en rollux, solo se muestra cuando se atesta en modo async=false.
  • timestamp: Sello de tiempo de la atestación.
  • proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo async=false..
  • credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo async=false.
  • nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
  • response: JSON del resultado de la atestación.

goEDVGet(trxid, params)

El proceso goEDVGet en Stamping.io permite recuperar los datos que se encuentran registrados en las distintas cadenas de bloques donde fue atestado.

Entradas
  • trxid: Es el identificador que retorna Stamping.io cuando atesta alguna evidencia en la blockchain. Se calcula sha1(evidence).
  • Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
Proceso
Recupera los datos de atestación basado en un trxid.
Salida del proceso
  • evidence: SHA256 del contenido atestado.
  • uriView: URL del visor para verificar el estampado.
  • hash2: segundo SHA256 del contenido atestado.
  • hash3: tercer SHA256 del contenido atestado.
  • url: URL asociado al contenido atestado.
  • data: datos asociada al contenido atestado.
  • timestamp: Sello de tiempo de la atestación.
  • anchored: Sello de tiempo cuando fue confirmada en la cadena de bloques.
  • ipfs: CID del servidor IPFS donde se encuentran agrupadas los hashes que ingresaron juntos en una atestación.
  • lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo async=false.
  • rollux: Transacción en rollux, solo se muestra cuando se atesta en modo async=false.
  • nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
  • response: JSON del resultado de la atestación.