Gro Hunting

This guide is out of date. Since it was written, the ord binary was changed to only build the full gro index when the --index-sats flag is supplied. Additionally, ord now has a built-in wallet that wraps a Groestlcoin Core wallet. See ord wallet --help.

Ordinal hunting is difficult but rewarding. The feeling of owning a wallet full of UTXOs, redolent with the scent of rare and exotic gros, is beyond compare.

Ordinals are numbers for gros. Every gro has an ordinal number and every ordinal number has a gro.

Preparación

Antes de empezar, necesitarás algunas cosas.

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

    groestlcoind -txindex
    

    Or put the following in your Groestlcoin configuration file:

    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:

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

    • Get a copy of ord from the repo.

    • Ejecuta RUST_LOG=info ord index. Debería conectarse a tu nodo groestlcoin core e iniciar el proceso de indexación.

    • Espera hasta que termine de indexar.

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

Buscando Ordinals Raros

Buscando Ordinals Raros en un Monedero de Groestlcoin Core

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

  1. Carga tu monedero:

    groestlcoin-cli loadwallet foo
    
    1. Visualiza los UTXOs raros del monedero de ordinales foo:
    ord wallet sats
    

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

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

Descriptors describe the ways that wallets generate private keys and public keys.

Solo deberías importar los descriptores en Groestlcoin 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:

    groestlcoin-cli createwallet foo-watch-only true true
    

    ¡Siéntete libre de asignarle un mejor nombre que foo-solo-lectura!

  3. Carga el monedero foo-solo-lectura:

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

    groestlcoin-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 Groestlcoin Core tardará en buscar los UTXO en tu monedero.

  5. Comprueba que todo haya funcionado correctamente:

    groestlcoin-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 Groestlcoin Core, así que primero deberás convertirlos en múltiples descriptores y luego importarlos a Groestlcoin 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 groestlcoin 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:

    groestlcoin-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:

    groestlcoin-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:

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

    groestlcoin-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 Groestlcoin Core en buscar los UTXOs de tu monedero.

  6. Comprueba que todo haya funcionado correctamente:

    groestlcoin-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

The ord wallet supports transferring specific gros. You can also use groestlcoin-cli commands createrawtransaction, signrawtransactionwithwallet, and sendrawtransaction, how to do so is complex and outside the scope of this guide.