Caza de Sats

La caza de Ordinals es difícil pero gratificante. La sensación de poseer un monedero lleno de UTXOs, impregnado con el aroma de sats raros y exóticos, es incomparable.

Los Ordinales son números para los satoshis. Cada satoshi tiene un número ordinal y cada número ordinal tiene un satoshi.

Preparación

Antes de empezar, necesitarás algunas cosas.

  1. Primero, necesitarás un nodo de Bitcoin Core sincronizado con un índice de transacciones. Para activar la indexación de transacciones, ejecuta -txindex en la línea de comandos:

    bitcoind -txindex
    

    O escribe lo siguiente en tu Archivo de Configuración de Bitcoin::

    txindex=1
    

    Ejecutalo y espera hasta que llegue al final de la cadena; una vez hecho esto, el siguiente comando debería imprimir la altura del bloque actual:

    bitcoin-cli getblockcount
    
  2. En segundo lugar, vas a necesitar un índice de ord sincronizado.

    • Obtén una copia de ord desde el repositorio..

    • Ejecuta ord --index-sats server. Esto debería conectar con tu nodo de Bitcoin Core y comenzar el indexado.

    • Once it has finished indexing, leave the server running and submit new ord commands in a separate terminal session.

  3. En tercer lugar, necesitarás un monedero con los UTXOs que quieras analizar.

Buscando Ordinals Raros

Buscando Ordinals Raros en un Monedero de Bitcoin Core

El comando ord wallet es solo un envoltorio alrededor de la API RPC de Bitcoin Core, así que buscar ordinals raros en un monedero de Bitcoin Core es fácil. Digamos que tu monedero se llama foo:

  1. Carga tu monedero:

    bitcoin-cli loadwallet foo
    
  2. Visualiza los UTXOs raros del monedero de ordinales foo:

    ord --index-sats wallet --name foo sats
    

Buscando Ordinals Raros en un Monedero que no es de Bitcoin Core

El comando ord wallet es solo un envoltorio alrededor de la API RPC de Bitcoin Core, así que para buscar ordinales raros en un monedero que no es de Bitcoin Core, necesitarás importar los descriptores de tu monedero a Bitcoin Core.

Los descriptors describen la manera en que los monederos generan llaves privadas y públicas.

Solo deberías importar los descriptores en Bitcoin Core para las claves públicas de tu monedero, no para las claves privadas.

Si el descriptor de llave pública de tu monedero está comprometido, un atacante podrá ver las direcciones de tu monedero, pero tus fondos estarán seguros.

Si el descriptor de llave privada de tu monedero está comprometido, un atacante podrá vaciar los fondos de tu monedero.

  1. Obtén el descriptor del monedero cuyos UTXOs quieres analizar para identificar si contiene ordinals raros. Se verá algo así:

    wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#csvefu29
    
  2. Crea un monedero de solo lectura llamada foo-solo-lectura:

    bitcoin-cli createwallet foo-watch-only true true
    

    ¡Siéntete libre de elegir un nombre major que foo-solo-lectura!

  3. Carga el monedero foo-solo-lectura:

    bitcoin-cli loadwallet foo-watch-only
    
  4. Importa los descriptores de tu monedero a 1foo-solo-lectura:

    bitcoin-cli importdescriptors \
      '[{ "desc": "wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#tpnxnxax", "timestamp":0 }]'
    

    Si conoces la marca de tiempo Unix cuando tu monedero comenzó a recibir transacciones, puedes usarla para el valor de "timestamp" en lugar de 0. Esto reducirá el tiempo que Bitcoin Core tardará en buscar los UTXO en tu monedero.

  5. Comprueba que todo haya funcionado correctamente:

    bitcoin-cli getwalletinfo
    
  6. Visualiza los ordinals raros de tu monedero:

    ord wallet sats
    

Buscando Ordinals Raros en un Monedero que Exporta Descriptores de Múltiples Rutas (multi-path)

Algunos descriptores describen múltiples rutas en un descriptor utilizando paréntesis angular, por ejemplo, <0;1>. Los descriptores de múltiples rutas aún no son compatibles con Bitcoin Core, así que primero deberás convertirlos en múltiples descriptores y luego importarlos a Bitcoin Core.

  1. En primer lugar, obtén el descriptor de múltiples rutas de tu monedero. Se verá algo así:

    wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/<0;1>/*)#fw76ulgt
    
  2. Crea un descriptor para la ruta de dirección que lo recibirá:

    wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)
    

    Y la dirección que recibirá lo que sobra de bitcoin o el cambio:

    wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)
    
  3. Obtén y anota el checksum del descriptor de la dirección de recepción, en este caso es tpnxnxax:

    bitcoin-cli getdescriptorinfo \
      'wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)'
    
    {
      "descriptor": "wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#csvefu29",
      "checksum": "tpnxnxax",
      "isrange": true,
      "issolvable": true,
      "hasprivatekeys": false
    }
    

    Y para el descriptor de la dirección de cambio, en este caso 64k8wnd7:

    bitcoin-cli getdescriptorinfo \
      'wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)'
    
    {
      "descriptor": "wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)#fyfc5f6a",
      "checksum": "64k8wnd7",
      "isrange": true,
      "issolvable": true,
      "hasprivatekeys": false
    }
    
  4. Carga el monedero al cual deseas importar los descriptores:

    bitcoin-cli loadwallet foo-watch-only
    
  5. Ahora importa los descriptores, con los checksums correctos, a Bitcoin Core.

    bitcoin-cli \
     importdescriptors \
     '[
       {
         "desc": "wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#tpnxnxax"
         "timestamp":0
       },
       {
         "desc": "wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)#64k8wnd7",
         "timestamp":0
       }
     ]'
    

    Si conoces la marca de tiempo de Unix cuando tu monedero comenzó a recibir transacciones por primera vez, puedes utilizarlo como el valor del campo "timestamp" en lugar de 0. Esto reducirá el tiempo que tarda Bitcoin Core en buscar los UTXOs de tu monedero.

  6. Comprueba que todo haya funcionado correctamente:

    bitcoin-cli getwalletinfo
    
  7. Visualiza los ordinals raros de tu monedero:

    ord wallet sats
    

Exportar Descriptores

Monedero Sparrow

Haz clic en la pestaña Settings, luego en Script Policy, y presiona el botón de editar para mostrar el descriptor.

Transferir Ordinals

Puedes transferir satoshis específicos utilizando el nombre asignado en el monedero ord. Para enviar el satoshi denominado zonefruits, sigue estos pasos:

ord wallet send <RECEIVING_ADDRESS> zonefruits --fee-rate 21

También puedes utilizar los comandos de bitcoin-cli como createrawtransaction, signrawtransactionwithwallet y sendrawtransaction, pero este método puede ser complejo y está fuera del alcance de esta guía.