Monedero

Cada sat puede ser inscrito con contenido arbitrario, permitiendo la creación de artefactos digitales únicos nativos en Bitcoin. Estos artefactos digitales pueden almacenarse en monederos de Bitcoin y transferirse mediante transacciones de Bitcoin. Las inscripciones son tan duraderas, inmutables, seguras y descentralizadas como el propio Bitcoin.

Trabajar con inscripciones requiere de un nodo de Bitcoin para darte una visión del estado actual de la blockchain de Bitcoin, además de un monedero capaz de crear inscripciones y realizar control de sats a la hora de construir transacciones para enviar inscripciones a otro monedero.

Bitcoin Core proporciona un nodo completo de Bitcoin y un monedero. Sin embargo, el monedero de Bitcoin Core no puede crear inscripciones y no realiza control de sats.

Para esto se requiere de ord, la utilidad de ordinals. ord no implementa su propio monedero, por lo que los subcomandos del monedero ord interactúan con los monederos de Bitcoin Core.

Esta guía cubre:

  1. La instalación de Bitcoin Core
  2. Sincronización de la blockchain de Bitcoin Core
  3. Creación de un monedero de Bitcoin Core
  4. Utilizando ord wallet receive para recibir sats
  5. Creación de inscripciones usando ord wallet inscribe
  6. Enviar inscripciones usando ord wallet send
  7. Recibir inscripciones con ord wallet receive
  8. Inscripción por lotes con ord wallet inscribe --batch

Obtener Ayuda

Si te atascas, intenta pedir ayuda en el Servidor de Discord de Ordinals, o consulta el GitHub para ver problemas y discusiones relevantes.

La instalación de Bitcoin Core

Bitcoin Core está disponible en la página de descargas de bitcoincore.org.

Making inscriptions requires Bitcoin Core 28 or newer.

Esta guía no cubre en detalle la instalación de Bitcoin Core. Una vez que hayas instalado Bitcoin Core, deberías poder ejecutar bitcoind -version exitosamente desde la línea de comandos. NO utilices bitcoin-qt.

Configuración de Bitcoin Core

ord requiere el índice de transacciones y la interfaz REST de Bitcoin Core.

Debes configurar tu nodo de Bitcoin Core para que mantenga un índice de transacciones. Añade lo siguiente a tu archivo bitcoin.conf:

txindex=1

O ejecuta bitcoind con -txindex:

bitcoind -txindex

Los detalles sobre cómo crear o modificar tu archivo bitcoin.conf se pueden encontrar aquí.

Sincronizando la Blockchain de Bitcoin

Para sincronizar la blockchain o cadena de bloques de bitcoin, ejecuta:

bitcoind -txindex

…y déjalo ejecutar hasta que getblockcount:

bitcoin-cli getblockcount

coincida con el recuento de bloques en un explorador de bloques como el explorador de bloques mempool.space. ord interactúa con bitcoind, así que debes dejar bitcoind ejecutándose en segundo plano mientras estés usando ord.

La cadena de bloques ocupa aproximadamente 600GB de espacio en disco. Si tienes un disco externo en el que deseas almacenar los bloques, utiliza la opción de configuración blocksdir=<ruta_del_disco_externo>. Esto es mucho más sencillo que usar datadir, ya que el archivo de cookies permanecerá en la ubicación predeterminada, facilitando su acceso para bitcoin-cli y ord.

Solución de problemas

Asegúrate de poder acceder a bitcoind utilizando bitcoin-cli -getinfo y que esté completamente sincronizado.

Si bitcoin-cli -getinfo devuelve "Could not connect to the server", bitcoind no se está ejecutando.

Verifica que rpcuser, rpcpassword o rpcauth NO estén configurados en tu archivo bitcoin.conf. ord requiere el uso de autenticación con cookies. Asegúrate de que exista un archivo .cookie en tu directorio de datos de Bitcoin.

Si bitcoin-cli -getinfo muestra "Could not locate RPC credentials", necesitas especificar la ubicación del archivo de cookies. Si utilizas un directorio de datos personalizado (especificando la opción datadir), entonces debes indicar la ubicación del archivo de cookies de la siguiente manera: bitcoin-cli -rpccookiefile=<tu_directorio_de_datos_de_bitcoin>/.cookie -getinfo. Al ejecutar ord, debes especificar la ubicación del archivo de cookies con --cookie-file=<tu_directorio_de_datos_de_bitcoin>/.cookie.

Asegúrate de no tener disablewallet=1 en tu archivo bitcoin.conf. Si bitcoin-cli listwallets devuelve "Method not found", entonces la billetera está deshabilitada y no podrás usar ord.

Asegúrate de que txindex=1 esté configurado. Ejecuta bitcoin-cli getindexinfo y debería devolver algo similar a esto

{
  "txindex": {
    "sincronizado": true,
    "mejor_altura_de_bloque": 776546
  }
}

Si solo sale {}, significa que txindex no está configurado. Si sale "synced": false, bitcoind todavía está creando el txindex. Espera hasta que "synced": true antes de usar ord.

Si tienes configurado maxuploadtarget, esto puede interferir con la obtención de bloques para el índice de ord. Para solucionarlo, elimínalo o configura whitebind=127.0.0.1:8333.

Instalación de ord

La herramienta ord está desarrollada en Rust y puede compilarse desde el código fuente. Los binarios preconstruidos están disponibles en la página de lanzamientos.

Puedes instalar el último binario precompilado desde la línea de comandos usando:

curl --proto '=https' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s

Una vez que ord esté instalado, deberías poder de ejecutar:

ord --version

Esto mostrará el número de versión de ord.

Creando un Monedero

ord utiliza bitcoind para manejar claves privadas, firmar transacciones y transmitir transacciones a la red de Bitcoin. Además, el monedero ord requiere que ord server esté ejecutándose en segundo plano. Asegúrate de que estos programas estén en funcionamiento:

bitcoind -txindex
ord server

Para crear un monedero llamado ord, que es el predeterminado, para utilizar con ord wallet, ejecuta:

ord wallet create

Esto mostrará tu frase semilla mnemotécnica. Guárdala en un lugar seguro.

`` { "mnemonic": "dignity buddy actor toast talk crisp city annual tourist orient similar federal", "passphrase": "" }

Si deseas especificar un nombre diferente o utilizar un servidor de ord que se esté ejecutando en una URL no predeterminada, puedes configurar estas opciones:

ord wallet --name foo --server-url http://127.0.0.1:8080 create

Para ver todas las opciones disponibles del Monedero, puedes usar el siguiente comando:

ord wallet help

Restauración y Dump del Monedero

El monedero ord utiliza descriptores, lo que te permite exportar los descriptores de salida e importarlos en otro monedero que también use descriptores. Para exportar los descriptores del monedero, que incluyen tus claves privadas:

$ ord wallet dump
============================================
= ESTE STRING CONTIENE TUS LLAVES PRIVADAS =
=        NO LAS COMPARTAS CON NADIE        =
============================================
{
  "wallet_name": "ord",
  "descriptors": [
    {
      "desc": "tr([551ac972/86'/1'/0']tprv8h4xBhrfZwX9o1XtUMmz92yNiGRYjF9B1vkvQ858aN1UQcACZNqN9nFzj3vrYPa4jdPMfw4ooMuNBfR4gcYm7LmhKZNTaF4etbN29Tj7UcH/0/*)#uxn94yt5",
      "timestamp": 1296688602,
      "active": true,
      "internal": false,
      "range": [
        0,
        999
      ],
      "next": 0
    },
    {
      "desc": "tr([551ac972/86'/1'/0']tprv8h4xBhrfZwX9o1XtUMmz92yNiGRYjF9B1vkvQ858aN1UQcACZNqN9nFzj3vrYPa4jdPMfw4ooMuNBfR4gcYm7LmhKZNTaF4etbN29Tj7UcH/1/*)#djkyg3mv",
      "timestamp": 1296688602,
      "active": true,
      "internal": true,
      "range": [
        0,
        999
      ],
      "next": 0
    }
  ]
}

Una billetera ord puede ser restaurada a partir de una frase mnemotécnica:

ord wallet restore --from mnemonic

Escribe tu frase mnemotécnica y presiona enter.

Para restaurar desde un descriptor en descriptor.json:

cat descriptor.json | ord wallet restore --from descriptor

Para restaurar desde un descriptor en el portapapeles:

ord wallet restore --from descriptor

Pega el descriptor en la terminal y presiona CTRL-D en unix y CTRL-Z en Windows.

Recibir Sats

Las inscripciones se crean en sats individuales, mediante transacciones estándar de Bitcoin que pagan comisiones en sats, por lo que tu monedero necesitará tener algunos sats disponibles.

Obtén una nueva dirección de tu monedero ordejecutando:

ord wallet receive

Y envíale algunos fondos.

Puedes ver las transacciones pendientes con:

ord wallet transactions

Una vez que la transacción se confirme, podrás ver las salidas de la transacción con ord wallet outputs.

Creación de Contenido para las Inscripciones

Los sats pueden ser inscritos con cualquier tipo de contenido, pero el monedero ord solo admite tipos de contenido que pueden ser mostrados por el explorador de bloques de ord.

Además, las inscripciones se incluyen en las transacciones, debido a esto, en cuanto más grande sea el contenido, mayor será la comisión que debe pagar por la transacción de la inscripción.

El contenido de inscripción se incluye en el testigo de la transacción, los cuales reciben el descuento de testigo. Para calcular un aproximado de la comisión que se trendrá que pagar por la transacción de una inscripción, divide el tamaño del contenido por cuatro y multiplica por la tasa de comisión.

Las transacciones de inscripción deben tener un peso inferior a 400,000 unidades, de lo contrario, no serán retransmitidas por Bitcoin Core. Un byte del contenido de inscripción equivale a una unidad de peso. Considerando que una transacción de inscripción abarca más que solo el contenido de la inscripción se debe restringir el contenido de cada inscripción a menos de 400,000 unidades de peso. Para mantener un margen de seguridad, se recomienda no exceder las 390,000 unidades de peso.

Creando una Inscripción

Para crear una inscripción con el contenido de ARCHIVO, ejecuta:

ord wallet inscribe --fee-rate FEE_RATE --file FILE

Ord mostrará dos IDs de transacciones, uno para la transacción de compromiso, uno para la transacción de revelación, y el ID de inscripción. Los IDs de inscripción tienen el formato TXIDiN, donde TXID es el ID de la transacción de revelación, y N es el índice de la inscripción en la transacción de revelación.

La transacción de compromiso se compromete a un tapscript que aloja el contenido de la inscripción, mientras que la transacción de revelación consume ese tapscript, revelando el contenido en la cadena e inscribiéndolo en el primer sat del input que contiene el tapscript correspondiente.

Espera a que la transacción de revelación sea minada. Puedes verificar el estado de las transacciones de compromiso y revelación usando el explorador de bloques mempool.space.

Después de que la transacción de revelación sea minada, el ID de inscripción debería salir al ejecutar:

ord wallet inscriptions

Inscripciones Padre-Hijo (Parent-Child)

Las inscripciones de tipo padre-hijo permiten crear lo que coloquialmente se conoce como colecciones. Para más información, consulta proveniencia.

Para designar una inscripción como hijo de otra inscripción, la inscripción padre debe estar inscrita y disponible en el monedero. Para seleccionar una inscripción padre, ejecuta ord wallet inscriptions y copia el ID de la inscripción (<ID_DE_INSCRIPCIÓN_PADRE>).

Luego, inscribe la inscripción hijo y especifica el padre de esta manera:

ord wallet inscribe --fee-rate FEE_RATE --parent <PARENT_INSCRIPTION_ID> --file CHILD_FILE

Esta relación no puede añadirse retroactivamente, el padre debe estar presente en el momento de la creación del hijo.

Envíar Inscripciones

Pide al destinatario que genere una dirección nueva ejecutando:

ord wallet receive

Envía la inscripción ejecutando:

ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>

Consulta la transacción con:

ord wallet transactions

Una vez que la transacción de envío haya sido confirmada, el destinatario podrá verificarlo ejecutando:

ord wallet inscriptions

Envíar Runas

Pide al destinatario que genere una dirección nueva ejecutando:

ord wallet receive

Para envíar las runas ejecuta:

ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <RUNES_AMOUNT>

En donde RUNES_AMOUNT es la cantidad de runas a enviar, seguida por dos puntos : y el nombre de la runa. Por ejemplo, si deseas enviar 1000 runas EXAMPLE, usarías 1000:EXAMPLE.

ord wallet send --fee-rate 1 SOME_ADDRESS 1000:EXAMPLE

Consulta la transacción con:

ord wallet transactions

Una vez que la transacción de envío se confirme, el destinatario puede verificar la recepción con:

ord wallet balance

Recibir Inscripciones

Genera una nueva dirección de recepción usando:

ord wallet receive

El remitente puede transferir la inscripción a tu dirección usando:

ord wallet send --fee-rate <FEE_RATE> ADDRESS INSCRIPTION_ID

Consulta la transacción con:

ord wallet transactions

Una vez que la transacción se confirme, puedes verificar si lo recibiste ejecutando con:

ord wallet inscriptions