Wallet

Sats individuais podem ser inscritos com conteúdo arbitrário, criando artefatos digitais nativos do Bitcoin que podem ser mantidos em uma carteira Bitcoin e transferidos usando transações Bitcoin. As inscrições são tão duráveis, imutáveis, seguras e descentralizadas quanto o próprio Bitcoin.

Trabalhar com inscrições requer um nó completo do Bitcoin, para fornecer uma visão do estado atual da blockchain do Bitcoin, e uma carteira que pode criar inscrições e realizar controle de sat ao construir transações para enviar inscrições para outra carteira.

O Bitcoin Core fornece um nó completo e uma carteira Bitcoin. No entanto, a carteira Bitcoin Core não pode criar inscrições e não realiza controle de sat.

Isso requer ord, o utilitário ordinal. ord não implementa sua própria carteira, então os subcomandos ord wallet interagem com carteiras Bitcoin Core.

Este guia cobre:

  1. Instalando Bitcoin Core
  2. Sincronizando a blockchain do Bitcoin
  3. Criando uma carteira Bitcoin Core
  4. Usando ord wallet receive para receber sats
  5. Criando inscrições com ord wallet inscribe
  6. Enviando inscrições com ord wallet send
  7. Recebendo inscrições com ord wallet receive
  8. Batch inscribing with ord wallet inscribe --batch

Obtendo Ajuda

Se você tiver dúvidas, tente pedir ajuda no Ordinals Discord Server ou verifique o GitHub para problemas relevantes e discussões.

Instalando Bitcoin Core

O Bitcoin Core está disponível em bitcoincore.org na página de download.

Making inscriptions requires Bitcoin Core 28 or newer.

This guide does not cover installing Bitcoin Core in detail. Once Bitcoin Core is installed, you should be able to run bitcoind -version successfully from the command line. Do NOT use bitcoin-qt.

Configurando o Bitcoin Core

ord requires Bitcoin Core's transaction index and rest interface.

Para configurar seu nó Bitcoin Core para manter um índice de transação, adicione o seguinte ao seu bitcoin.conf:

txindex=1

Ou execute bitcoind com -txindex:

bitcoind -txindex

Details on creating or modifying your bitcoin.conf file can be found here.

Sincronizando a Blockchain do Bitcoin

Para sincronizar a cadeia, execute:

bitcoind -txindex

…e deixe rodando até getblockcount:

bitcoin-cli getblockcount

concorde com a contagem de blocos em um explorador de blocos como o explorador de blocos mempool.space. ord interage com bitcoind, então você deve deixar bitcoind rodando em segundo plano quando você estiver usando o ord.

The blockchain takes about 600GB of disk space. If you have an external drive you want to store blocks on, use the configuration option blocksdir=<external_drive_path>. This is much simpler than using the datadir option because the cookie file will still be in the default location for bitcoin-cli and ord to find.

Solução de problemas

Make sure you can access bitcoind with bitcoin-cli -getinfo and that it is fully synced.

If bitcoin-cli -getinfo returns Could not connect to the server, bitcoind is not running.

Make sure rpcuser, rpcpassword, or rpcauth are NOT set in your bitcoin.conf file. ord requires using cookie authentication. Make sure there is a file .cookie in your bitcoin data directory.

If bitcoin-cli -getinfo returns Could not locate RPC credentials, then you must specify the cookie file location. If you are using a custom data directory (specifying the datadir option), then you must specify the cookie location like bitcoin-cli -rpccookiefile=<your_bitcoin_datadir>/.cookie -getinfo. When running ord you must specify the cookie file location with --cookie-file=<your_bitcoin_datadir>/.cookie.

Make sure you do NOT have disablewallet=1 in your bitcoin.conf file. If bitcoin-cli listwallets returns Method not found then the wallet is disabled and you won't be able to use ord.

Make sure txindex=1 is set. Run bitcoin-cli getindexinfo and it should return something like

{
  "txindex": {
    "synced": true,
    "best_block_height": 776546
  }
}

If it only returns {}, txindex is not set. If it returns "synced": false, bitcoind is still creating the txindex. Wait until "synced": true before using ord.

If you have maxuploadtarget set it can interfere with fetching blocks for ord index. Either remove it or set whitebind=127.0.0.1:8333.

Instalando o ord

O utilitário ord é escrito em Rust e pode ser compilado a partir da fonte. Binários pré-construídos estão disponíveis na página de lançamentos.

Você pode instalar o binário pré-construído mais recente a partir da linha de comando com:

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

Depois que o ord estiver instalado, você poderá executar:

ord --version

Que imprime o número da versão do ord.

Creating a Wallet

ord uses bitcoind to manage private keys, sign transactions, and broadcast transactions to the Bitcoin network. Additionally the ord wallet requires ord server running in the background. Make sure these programs are running:

bitcoind -txindex
ord server

To create a wallet named ord, the default, for use with ord wallet, run:

ord wallet create

This will print out your seed phrase mnemonic, store it somewhere safe.

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

If you want to specify a different name or use an ord server running on a non-default URL you can set these options:

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

To see all available wallet options you can run:

ord wallet help

Restoring and Dumping Wallet

The ord wallet uses descriptors, so you can export the output descriptors and import them into another descriptor-based wallet. To export the wallet descriptors, which include your private keys:

$ ord wallet dump
==========================================
= THIS STRING CONTAINS YOUR PRIVATE KEYS =
=        DO NOT SHARE WITH ANYONE        =
==========================================
{
  "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
    }
  ]
}

An ord wallet can be restored from a mnemonic:

ord wallet restore --from mnemonic

Type your mnemonic and press return.

To restore from a descriptor in descriptor.json:

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

To restore from a descriptor in the clipboard:

ord wallet restore --from descriptor

Paste the descriptor into the terminal and press CTRL-D on unix and CTRL-Z on Windows.

Recebendo Sats

As inscrições são feitas em sats individuais, usando transações normais de Bitcoin que pagam taxas em sats, então sua carteira precisará de alguns sats.

Obtenha um novo endereço da sua carteira ord executando:

ord wallet receive

E envie alguns fundos.

Você pode ver transações pendentes com:

ord wallet transactions

Assim que a transação for confirmada, você poderá ver as saídas da transação com ord wallet outputs.

Criando conteúdo de inscrição

Sats pode ser inscrito com qualquer tipo de conteúdo, mas a carteira ord só suporta tipos de conteúdo que podem ser exibidos pelo explorador de blocos ord.

Além disso, as inscrições estão incluídas nas transações, portanto, quanto maior o conteúdo, maior será a taxa que a transação de inscrição deverá pagar.

O conteúdo da inscrição está incluído nas testemunhas da transação, que recebem o desconto de testemunha. Para calcular a taxa aproximada que uma transação de inscrição pagará, divida o tamanho do conteúdo por quatro e multiplique pela taxa da rede." BOOKMAR

As transações de inscrição devem ter menos de 400.000 unidades de peso ou não serão retransmitidas pelo Bitcoin Core. Um byte de conteúdo de inscrição custa uma unidade de peso. Como uma transação de inscrição não inclui apenas o conteúdo da inscrição, limite o conteúdo da inscrição a menos de 400.000 unidades de peso. 390.000 unidades de peso é uma margem segura.

Criando Inscrições

Para criar uma inscrição com o conteúdo de ARQUIVO, execute:

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

Ord produzirá dois IDs de transação, um para a transação de confirmação, outro para a transação de revelação, e o ID de inscrição. Os IDs de inscrição têm o formato TXIDiN, onde TXID é o ID da transação de revelação e N é o índice da inscrição na transação de revelação.

A transação de commit confirma um tapscript contendo o conteúdo da inscrição, e a transação de revelação gasta a partir desse tapscript, revelando o conteúdo na cadeia e inscrevendo-o no primeiro sat da entrada que contém o tapscript correspondente.

Aguarde até que a transação de revelação seja extraída. Você pode verificar o status do commit e revelar transações usando o explorador de blocos mempool.space.

Depois que a transação de revelação for minerada, o ID da inscrição deverá ser impresso quando você executar:

ord wallet inscriptions

Parent-Child Inscriptions

Parent-child inscriptions enable what is colloquially known as collections, see provenance for more information.

To make an inscription a child of another, the parent inscription has to be inscribed and present in the wallet. To choose a parent run ord wallet inscriptions and copy the inscription id (<PARENT_INSCRIPTION_ID>).

Now inscribe the child inscription and specify the parent like so:

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

This relationship cannot be added retroactively, the parent has to be present at inception of the child.

Enviando Inscrições

Peça ao destinatário para gerar um novo endereço executando:

ord wallet receive

Envie a inscrição executando:

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

Veja a transação pendente com:

ord wallet transactions

Assim que a transação de envio for confirmada, o destinatário poderá confirmar o recebimento executando:

ord wallet inscriptions

Sending Runes

Peça ao destinatário para gerar um novo endereço executando:

ord wallet receive

Send the runes by running:

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

Where RUNES_AMOUNT is the number of runes to send, a : character, and the name of the rune. For example if you want to send 1000 of the EXAMPLE rune, you would use 1000:EXAMPLE.

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

Veja a transação pendente com:

ord wallet transactions

Once the send transaction confirms, the recipient can confirm receipt with:

ord wallet balance

Recebendo Inscrições

Gere um novo endereço de recebimento usando:

ord wallet receive

O remetente pode transferir a inscrição para o seu endereço usando:

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

Veja a transação pendente com:

ord wallet transactions

Once the send transaction confirms, you can confirm receipt by running:

ord wallet inscriptions