Wallet
I singoli satoshi possono essere iscritti con contenuti arbitrari, creando artefatti digitali nativi di Bitcoin che possono essere conservati in un portafoglio Bitcoin e trasferiti tramite transazioni Bitcoin. Le iscrizioni sono durevoli, immutabili, sicure e decentralizzate come Bitcoin stesso.
Per lavorare con le iscrizioni è necessario un nodo Bitcoin completo, per avere una visione dello stato attuale della blockchain Bitcoin, e un portafoglio in grado di creare iscrizioni e di eseguire il controllo sat quando si costruiscono transazioni per inviare iscrizioni a un altro portafoglio.
Bitcoin Core fornisce sia un nodo completo Bitcoin che un portafoglio. Tuttavia, il portafoglio di Bitcoin Core non può creare iscrizioni e non esegue il controllo sat.
Per questo è necessario ord
, l'utilità ordinale. ord
non implementa un proprio portafoglio, quindi i sottocomandi del portafoglio ord
interagiscono con i portafogli di Bitcoin Core.
Questa guida tratta di:
- Installazione di Bitcoin Core
- Sincronizzare la blockchain di Bitcoin
- Creare un portafoglio Bitcoin Core
- Usare
ord wallet receive
per ricevere sats - Creare iscrizioni con
ord wallet inscribe
- Inviare iscrizioni con
ord wallet send
- Ricevere iscrizioni con
ord wallet receive
- Inscrivere in batch con
ord wallet inscribe --batch
Ricevere Aiuto
Se siete bloccati, provate a chiedere aiuto su Ordinals Discord Server, o a controllare su GitHub i problemi e le discussioni pertinenti.
Installazione di Bitcoin Core
Bitcoin Core è disponibile su bitcoincore.org alla pagina di download.
Making inscriptions requires Bitcoin Core 28 or newer.
Questa guida non tratta in dettaglio l'installazione di Bitcoin Core. Una volta installato Bitcoin Core, si dovrebbe essere in grado di eseguire con successo bitcoind -version
dalla riga di comando. NON utilizzare bitcoin-qt
.
Configurazione di Bitcoin Core
ord
richiede l'indice delle transazioni e l'interfaccia rest di Bitcoin Core.
Per configurare il tuo nodo Bitcoin Core in modo che mantenga un indice delle transazioni, aggiungere quanto segue al tuo bitcoin.conf
:
txindex=1
Oppure, eseguire bitcoind
con -txindex
:
bitcoind -txindex
I dettagli sulla creazione o la modifica del file bitcoin.conf
sono disponibili qui.
Sincronizzazione della catena di Bitcoin
Per sincronizzare la catena, eseguire:
bitcoind -txindex
…e lasciarlo in esecuzione fino a getblockcount
:
bitcoin-cli getblockcount
concorda con il conteggio dei blocchi su un block explorer come mempool.space block explorer. ord
interagisce con bitcoind
, quindi si dovrebbe lasciare bitcoind
in esecuzione in background quando si utilizza ord
.
La blockchain occupa circa 600 GB di spazio su disco. Se si dispone di un disco esterno su cui memorizzare i blocchi, utilizzare l'opzione di configurazione blocksdir=<external_drive_path>
. È molto più semplice che usare l'opzione datadir
, perché il file cookie sarà ancora nella posizione predefinita per essere trovato da bitcoin-cli
e ord
.
Risoluzione dei problemi
Assicurarsi di poter accedere a bitcoind
con bitcoin-cli -getinfo
e che sia completamente sincronizzato.
Se bitcoin-cli -getinfo
restituisce Could not connect to the server
, bitcoind
non è in esecuzione.
Assicurarsi che rpcuser
, rpcpassword
, o rpcauth
NON siano impostati nel file bitcoin.conf
. ord
richiede l'uso dell'autenticazione tramite cookie. Assicurarsi che ci sia un file .cookie
nella tua directory dei dati di bitcoin.
Se bitcoin-cli -getinfo
restituisce Could not locate RPC credentials
, è necessario specificare la posizione del file cookie. Se si utilizza una directory di dati personalizzata (specificando l'opzione datadir
), è necessario specificare la posizione del cookie come bitcoin-cli -rpccookiefile=<your_bitcoin_datadir>/.cookie -getinfo
. Quando si esegue ord
è necessario specificare la posizione del file cookie con --cookie-file=<your_bitcoin_datadir>/.cookie
.
Assicurarsi di NON avere disablewallet=1
nel file bitcoin.conf
. Se bitcoin-cli listwallets
restituisce Method not found
, il portafoglio è disabilitato e non sarà possibile utilizzare ord
.
Assicurarsi che txindex=1
sia impostato. Eseguite bitcoin-cli getindexinfo
e dovrebbe restituire qualcosa come
{
"txindex": {
"synced": true,
"best_block_height": 776546
}
}
Se restituisce solo {}
, il txindex
non è impostato. Se restituisce "synced": false
, bitcoind
sta ancora creando il txindex
. Attendere fino a "synced": true
prima di usare ord
.
Se è impostato maxuploadtarget
, può interferire con il recupero dei blocchi per l'indice ord
. Rimuoverlo o impostare whitebind=127.0.0.1:8333
.
Installazione di ord
L'utilità ord
è scritta in Rust e può essere compilata dalla sorgente. I binari precompilati sono disponibili nella pagina dei rilasci.
È possibile installare l'ultimo binario precostruito dalla riga di comando con:
curl --proto '=https' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
Una volta installato ord
, dovrebbe essere possibile eseguirlo:
ord --version
Che stampa il numero di versione di 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.
Ricevere i Sats
Le iscrizioni vengono effettuate su singoli sat, utilizzando le normali transazioni Bitcoin che pagano le commissioni in sats, quindi il vostro portafoglio avrà bisogno di alcuni sats.
Ottenere un nuovo indirizzo dal proprio portafoglio ord
eseguendo:
ord wallet receive
E inviategli dei fondi.
È possibile vedere le transazioni in sospeso con:
ord wallet transactions
Una volta confermata la transazione, si dovrebbe essere in grado di vedere i risultati delle transazioni con ord wallet outputs
.
Creazione del contenuto dell'iscrizione
I sats possono essere iscritti con qualsiasi tipo di contenuto, ma il portafoglio ord
supporta solo i tipi di contenuto che possono essere visualizzati dall'explorer di blocchi ord
.
Inoltre, le iscrizioni sono incluse nelle transazioni, quindi più grande è il contenuto, più alta è la commissione che la transazione di iscrizione deve pagare.
I contenuti delle iscrizioni sono inclusi nei witness delle transazioni, che ricevono uno sconto sulle commissioni. Per calcolare la tariffa approssimativa che una transazione di iscrizione dovrà pagare, dividere la dimensione del contenuto per quattro e moltiplicare per la tariffa.
Le transazioni di iscrizione devono essere inferiori a 400.000 unità di peso, altrimenti non saranno trasmesse dal Bitcoin Core. Un byte di contenuto di iscrizione costa un'unità di peso. Poiché una transazione di iscrizione non include solo il contenuto dell'iscrizione, limitate il contenuto dell'iscrizione a meno di 400.000 unità di peso. 390.000 unità di peso dovrebbero essere sicure.
Creazione di iscrizioni
Per creare un'iscrizione con il contenuto di FILE
, eseguire:
ord wallet inscribe --fee-rate FEE_RATE --file FILE
Ord produrrà due ID di transazione, uno per la transazione di commit e uno per la transazione di reveal, e l'ID dell'iscrizione. Gli ID delle iscrizioni sono della forma TXIDiN
, dove TXID
è l'ID della transazione di rivelazione e N
è l'indice dell'iscrizione nella transazione di rivelazione.
La transazione di commit esegue il commit su un tapscript contenente il contenuto dell'iscrizione e la transazione di reveal esegue il commit da quel tapscript, rivelando il contenuto sulla catena e iscrivendolo sul primo sat dell'input che contiene il tapscript corrispondente.
Attendere che la transazione reveal venga minata. È possibile controllare lo stato delle transazioni di commit e di reveal utilizzando il block explorer di mempool.space.
Una volta che la transazione reveal è stata estratta, l'ID dell'iscrizione dovrebbe essere stampato durante l'esecuzione:
ord wallet inscriptions
Iscrizioni Genitore-Figlio
Le iscrizioni "parent-child" consentono di creare quelle che in gergo si chiamano collezioni, per maggiori informazioni, si veda la voce provenienza.
Per rendere un'iscrizione figlia di un'altra, l'iscrizione parent deve essere iscritta e presente nel portafoglio. Per scegliere un genitore, eseguire ord wallet inscriptions
e copiare l'id dell'iscrizione (<PARENT_INSCRIPTION_ID>
).
Ora iscrivete l'iscrizione figlia e specificate il genitore in questo modo:
ord wallet inscribe --fee-rate FEE_RATE --parent <PARENT_INSCRIPTION_ID> --file CHILD_FILE
Questo rapporto non può essere aggiunto retroattivamente, il genitore deve essere presente al momento dell'iscrizione del bambino.
Invio di iscrizioni
Chiedere al destinatario di generare un nuovo indirizzo eseguendo:
ord wallet receive
Inviare l’iscrizione eseguendo:
ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>
Vedere la transazione in sospeso con:
ord wallet transactions
Una volta confermata la transazione di invio, il destinatario può confermare la ricezione eseguendo:
ord wallet inscriptions
Sending Runes
Chiedere al destinatario di generare un nuovo indirizzo eseguendo:
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
Vedere la transazione in sospeso con:
ord wallet transactions
Once the send transaction confirms, the recipient can confirm receipt with:
ord wallet balance
Ricevere Iscrizioni
Generare un nuovo indirizzo di ricezione utilizzando:
ord wallet receive
Il mittente può trasferire l'iscrizione al vostro indirizzo utilizzando:
ord wallet send --fee-rate <FEE_RATE> ADDRESS INSCRIPTION_ID
Vedere la transazione in sospeso con:
ord wallet transactions
Once the send transaction confirms, you can confirm receipt by running:
ord wallet inscriptions