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:
- La instalación de Bitcoin Core
- Sincronización de la blockchain de Bitcoin Core
- Creación de un monedero de Bitcoin Core
- Utilizando
ord wallet receive
para recibir sats - Creación de inscripciones usando
ord wallet inscribe
- Enviar inscripciones usando
ord wallet send
- Recibir inscripciones con
ord wallet receive
- 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 ord
ejecutando:
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