Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Creacion de NFT
Creacion de NFT
Los NFTs son tokens digitales únicos que representan la propiedad o la autenticidad
de un objeto digital particular. Estos objetos pueden ser obras de arte, música, videos,
juegos y mucho más. La creación y comercialización de NFTs ha abierto nuevas
oportunidades para artistas, coleccionistas y entusiastas de las criptomonedas.
1
¿Qué es Solidity?
Solidity es un lenguaje de programación de alto nivel especialmente diseñado para
desarrollar contratos inteligentes en la plataforma Ethereum. Es un lenguaje estático y
fuertemente tipado, que permite a los desarrolladores escribir código seguro y
eficiente para ejecutar en la cadena de bloques de Ethereum.
● Enteros
○ Se utilizan para representar números enteros positivos o negativos. Hay
varios tipos de enteros dependiendo de la cantidad de bits que ocupan
en memoria, como uint8, int16, etc.
● Booleanos
○ representan un valor verdadero o falso y se denotan como bool.
● Cadenas de caracteres
○ Se utilizan para representar texto y se representan con el tipo de datos
string.
● Direcciones
○ Se utilizan para representar direcciones en la red Ethereum y se denotan
como address.
● Bytes y arreglos de bytes
○ Se utilizan para representar datos binarios y se denotan como bytes y
bytes32, respectivamente.
2
● Enumeraciones
○ Se utilizan para representar un conjunto limitado de valores y se definen
mediante el uso de la palabra clave enum.
● Estructuras
○ Se utilizan para agrupar varios valores relacionados en una sola entidad y
se definen mediante la palabra clave struct.
Además de estos tipos de datos básicos, Solidity también permite la creación de tipos
de datos compuestos y personalizados utilizando las características de abstracción del
lenguaje. Estos tipos de datos compuestos pueden incluir matrices, mapas y
contratos.
1. memory: Este comando se usa para especificar que una variable se almacena en
memoria. Por ejemplo:
uint arraySize = 5;
2. storage: Este comando se utiliza para especificar que una variable se almacena en el
almacenamiento permanente (storage) del contrato. Por defecto, todas las variables
de estado (state variables) se almacenan en el storage. Por ejemplo:
3
contract Example {
myVariable = newValue;
Declaración de contrato
Para declarar un contrato en Solidity, utilizamos la palabra clave "contract" seguida del
nombre del contrato. Por ejemplo, la siguiente línea de código declara un contrato
llamado "MiContrato":
contract MiContrato {
Funciones
Las funciones en Solidity definen el comportamiento del contrato. Pueden ser
públicas, privadas o internas y pueden tener parámetros y valor de retorno. Las
funciones se definen dentro del contrato y se pueden llamar desde otros contratos o
desde fuera de la cadena de bloques. Por ejemplo, la siguiente función suma dos
números enteros y devuelve el resultado:
4
function sumar(uint a, uint b) public returns (uint) {
return a + b;
Eventos
Los eventos en Solidity permiten que los contratos se comuniquen con el exterior,
notificando sobre ciertas acciones o cambios en el estado del contrato. Los eventos se
definen utilizando la palabra clave "event" y pueden incluir parámetros opcionales. Por
ejemplo, el siguiente evento notifica cuando se realiza una transferencia de tokens:
Este evento se puede disparar dentro de una función utilizando la palabra clave "emit".
Por ejemplo, si queremos notificar una transferencia desde la dirección "A" a la
dirección "B" con 10 tokens, podemos hacerlo de la siguiente manera:
1. ERC-721
a. Este contrato es uno de los más populares para crear tokens no
fungibles. Permite la creación y gestión de activos digitales individuales
únicos, como imágenes, videos, música, etc.
2. ERC-1155
a. Este contrato es más versátil ya que permite la creación de tokens
fungibles y no fungibles en un solo contrato. Esto significa que puedes
crear tanto tokens únicos como tokens intercambiables.
5
3. ERC-998
a. Este contrato permite la creación de tokens no fungibles que pueden
poseer otros tokens no fungibles. Es decir, puedes tener un NFT que
también contenga otros NFTs.
Estos son solo algunos ejemplos de los tipos de contratos ERC de Ethereum para NFT.
Cada uno tiene sus propias características y funcionalidades, por lo que es importante
comprender sus diferencias antes de elegir el contrato adecuado para tu proyecto de
NFT.
https://hardhat.org/
Remix Ethereum
Remix ethereum es una herramienta de desarrollo que permite desplegar y probar
contratos en la red de Ethereum. Remix es una interfaz en línea que facilita la
escritura, compilación y despliegue de contratos inteligentes en la red de Ethereum.
Con Remix, los desarrolladores pueden escribir sus contratos en Solidity, el lenguaje
de programación utilizado en Ethereum, y luego probarlos en un entorno de
desarrollo integrado antes de desplegarlos en la red principal de Ethereum. Remix
también ofrece funcionalidades adicionales como depuración de contratos,
despliegue de contratos en diferentes redes y análisis estático de código. En resumen,
Remix ethereum es una herramienta esencial para los desarrolladores que trabajan
con contratos inteligentes en la red de Ethereum.
https://remix.ethereum.org
6
Open Zeppelin
OpenZeppelin es una biblioteca de contratos inteligentes preestablecidos para la
plataforma Ethereum. Proporciona un conjunto de contratos estándar y seguros que
se pueden utilizar como base para el desarrollo de contratos inteligentes.
Una de las principales ventajas de utilizar OpenZeppelin es que los contratos están
rigurosamente probados y auditados por expertos en seguridad de contratos
inteligentes. Esto ayuda a mitigar los riesgos de errores y vulnerabilidades en los
contratos y proporciona una mayor confianza a los desarrolladores y usuarios.
https://www.openzeppelin.com/contracts
Infura
Infura es una plataforma que ofrece servicios de infraestructura para redes de
Ethereum. Proporciona a los desarrolladores y usuarios de Ethereum acceso rápido y
confiable a la red sin necesidad de ejecutar su propio nodo completo. Infura
administra una red de nodos descentralizados que se encargan de procesar las
transacciones y almacenar los datos de Ethereum. Esto permite a los desarrolladores
crear aplicaciones descentralizadas (dApps) y interactuar con la red de Ethereum de
manera eficiente. Infura también ofrece herramientas y servicios adicionales para
facilitar el desarrollo y la implementación de aplicaciones en la red de Ethereum. En
resumen, Infura es una solución confiable y conveniente para aquellos que desean
aprovechar los beneficios de Ethereum sin la necesidad de gestionar una
infraestructura completa.
https://app.infura.io/
7
Pinata Cloud
La piñata Cloud es una aplicación de almacenamiento descentralizado utilizando IPFS
(InterPlanetary File System). Con Piñata Cloud, puedes almacenar y recuperar tus
archivos de forma segura y eficiente utilizando la tecnología IPFS.
IPFS es un sistema de archivos peer-to-peer que utiliza una red distribuida de nodos
para almacenar y distribuir contenido de forma descentralizada. En lugar de
depender de un único servidor centralizado, IPFS permite que los archivos se
almacenen en múltiples nodos, lo que los hace más seguros y menos propensos a
perderse o dañarse.
Con Piñata Cloud, puedes subir tus archivos a la red IPFS y acceder a ellos desde
cualquier lugar y en cualquier momento. Tienes la tranquilidad de que tus archivos
estarán seguros y disponibles en todo momento, incluso en caso de que uno de los
nodos falle o se caiga.
https://www.pinata.cloud/
Etherscan
Etherscan es una plataforma en línea que proporciona información y servicios
relacionados con la blockchain de Ethereum. Es una herramienta muy útil para
aquellos que quieren explorar y analizar la red de Ethereum.
8
Además de la información básica, Etherscan también ofrece herramientas avanzadas
como la capacidad de rastrear los tokens ERC-20 y ERC-721, explorar el estado de la
red, buscar y verificar transacciones, y mucho más.
https://etherscan.io/
Sepolia Faucet
Sepolia Faucet de Ethereum es un servicio que brinda la oportunidad de obtener
pequeñas cantidades de Ethereum de forma gratuita. Este servicio se utiliza
principalmente para familiarizarse con la criptomoneda Ethereum y su
funcionamiento.
Para utilizar el faucet, es necesario tener una billetera Ethereum válida. La billetera es
donde se almacenarán los Ethereum que se obtengan a través del faucet. Una vez
que se tiene una billetera Ethereum, se deben seguir los siguientes pasos para utilizar
Sepolia Faucet:
3. Resolver un captcha u otro tipo de verificación para demostrar que no eres un robot.
Es importante destacar que Sepolia Faucet tiene un límite diario para reclamar
Ethereum gratuito. Una vez alcanzado este límite, no se podrá reclamar más
Ethereum hasta el día siguiente. Además, es posible encontrar faucets de Ethereum
fraudulentos que intentan robar información personal o estafar a los usuarios. Por lo
tanto, es necesario tener precaución y utilizar solo faucets confiables.
https://sepolia-faucet.pk910.de/
9
Unidades de medida en Ethereum
En Ethereum, las unidades de medida son utilizadas para determinar el valor y la
cantidad de diferentes activos digitales en la red. A continuación, se describen las
principales unidades de medida utilizadas en Ethereum:
1. Wei
a. Es la unidad más pequeña de medida en Ethereum. Un Wei es
equivalente a 10^-18 Ether (ETH). Esta unidad se utiliza generalmente
para calcular transacciones de pequeña escala o para medir el costo de
las operaciones en la red.
2. Gwei
a. Es una unidad más comúnmente utilizada en Ethereum. Un Gwei es
equivalente a 10^9 Wei, o 0.000000001 Ether. Esta medida se utiliza
principalmente para establecer tarifas de transacción y calcular el costo
de ejecutar contratos inteligentes en la red.
3. Ether (ETH)
a. Es la unidad principal de medida en Ethereum. 1 Ether es equivalente a
10^18 Wei. El Ether se utiliza como la moneda base en la red Ethereum y
se utiliza para transferir valor económico entre diferentes direcciones.
4. Szabo:
a. Es una unidad menos conocida en Ethereum. Un Szabo es equivalente a
10^12 Wei, o 0.000001 Ether. Esta unidad puede ser utilizada para medir
pequeñas cantidades de Ether en operaciones de baja escala.
5. Finney:
a. Es una unidad aún menos utilizada en Ethereum. Un Finney es
equivalente a 10^15 Wei, o 0.001 Ether. Esta medida se utiliza
principalmente para realizar pruebas y experimentos en la red.
10