owned this note
owned this note
Published
Linked with GitHub
# Configurar una wallet en Bitcoin Core
###### tags: `bitcoin` `cli` `wallet`
_Ahora que ya tienes un nodo de bitcoin vas a aprender a usarlo para crear carteras_
**Tabla de contenido**
[TOC]
## Autor
**EntrePlanctonyBallenas**.
Twitter para correcciones, comentarios o sugerencias: [@entreplanctony1](https://twitter.com/Entreplanctony1)
El presente tutorial fue elaborado para el [Seminario socrático de Mastering Bitcoin](https://libreriadesatoshi.com/) a través de [@libreriadesatoshi](https://twitter.com/libdesatoshi).
En el siguiente enlace puedes encontrar la documentación de referencia:
[Setting Up Your Wallet](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/03_3_Setting_Up_Your_Wallet.md)
:::success
:bulb: **¿Tienes un nodo de bitcoin?**
En este tutorial explicamos como usar la línea de comando de bitcoin core (bitcoin-cli), por lo que debes tener un nodo de bitcoin, también se asume que sabes cómo usar el modo ++testnet++, si no has instalado un nodo o no sabes como usar la testnet puedes hacerlo consultando los [Tutoriales sobre Nodos de Bitcoin](/jprsYssCTvuunqevvvzkZw).
**NOTA:** Los ejemplos de este tutorial se corren en un nodo inicializado por configuracion (bitcoin.conf) en modo testnet.
:::
## ¿Qué es una wallet de Bitcoin?
Una **wallet** (_billetera en español_) de Bitcoin es el equivalente digital de una billetera física en la red Bitcoin. Almacena información sobre la cantidad de bitcoins que te pertenecen y en qué direcciones se encuentra, así como las formas en que puedes gastarlo. Gastar dinero físico es intuitivo, pero para gastar bitcoins, los usuarios deben proporcionar la clave privada correcta asociada a una clave pública. La información del par de claves se guarda en un archivo de la wallet, además de los datos sobre preferencias y transacciones. En su mayor parte, no tendrás que preocuparte por esa clave privada: el software la usará cuando sea necesario. Sin embargo, esto hace que el archivo sea extremadamente importante: si lo pierdes, pierdes tus claves privadas, y si pierdes tus claves privadas, ¡pierdes tus fondos!
:::danger
:no_entry: Las wallets que puedes crear con _Bitcoin Core_ no usan frases semillas, en su lugar puedes usar un password para encriptarlas, por lo tanto, aunque las wallets de _Bitcoin Core_ son funcionales y muy útiles para fines educacionales, ++no son recomendables para guardar bitcoin real++ en ellas.
:::
## Crear una wallet simple
Al inicializar el software de _Bitcoin Core_ no hay ninguna wallet cargada, por lo que debes crear una para poder interactuar con la red.
El comando para crear wallets es:
``` python
bitcoin-cli -named createwallet wallet_name="nombre-de-tu-wallet" descriptors=false
```
Hay muchas opciones para crear wallets, por ahora solo crearemos una simple. Pero puedes explorar las opciones con el comando **bitcoin-cli help createwallet**
En el siguiente ejemplo estamos creando una wallet llamada ++"prueba1"++ y el resultado será el siguiente, si en el campo de "warning" no hay ningún mensaje de error, quiere decir que se creó correctamente
``` json
bitcoin-cli -named createwallet wallet_name="prueba1" descriptors=false
{
"name": "prueba1",
"warning": ""
}
```
Con una wallet creada, ahora debemos crear una dirección pública que será donde recibiremos bitcoin, el comando es el siguiente:
``` python
bitcoin-cli getnewaddress "etiqueta" "Tipo_de_direccion"
```
Donde:
- "**etiqueta**" es un valor de texto opcional definido por nosotros para diferenciar esta dirección dentro de nuestra wallet.
- "**Tipo_de_direccion**" es un valor de texto que puede ser una de las siguientes 3 opciones: "**legacy**", "**p2sh-segwit**" y "**bech32**".
El siguiente ejemplo crea una dirección llamada "**faucet**" y que será de tipo "**bech32**", la cadena resultante será la dirección de depósito:
``` json
bitcoin-cli getnewaddress "faucet" "bech32"
tb1qnnvqdmuhkn77lm0jds3gvfhc5yqgjgfx6qukt8
```
Tenga en cuenta que esta dirección comienza con las letras "**tb1**" porque es una dirección **bech32** de **++testnet++**, si hubiéramos especificado "**legacy**" sería una "**m**" (o, a veces, una "**n**") o sería un "**2**" para una dirección "**P2SH**".
:::info
🔗 TESTNET vs. MAINNET: La dirección principal equivalente comenzaría con un "**1**" (para **Legacy**), "**3**" (para **P2SH**) o "**bc1**" (para **Bech32**).
:::
## Enviar Testnet coins a tu wallet
Ahora que tienes una dirección de bitcoin, puedes ir a alguna _faucet_ que regale testnet coins de bitcoin como [https://bitcoinfaucet.uo1.net/](https://bitcoinfaucet.uo1.net/)
Solo copia la dirección testnet que acabas de crear, introdúcela en "_bitcoin address_" y da clic en "_Send testnet bitcoins_"
## Consulta tu balance
Después de unos minutos, tu transacción deberá estar confirmada, por lo que ahora querrás saber, cómo confirmas que recibiste el saldo. Los siguientes 3 comandos te dirán tu balance total, el que hay un tu cartera y las **txid** (++utxo++) que tienes para gastar respectivamente:
```json=
bitcoin-cli getbalance
0.00001000
bitcoin-cli getwalletinfo
{
"walletname": "prueba1",
"walletversion": 169900,
"format": "bdb",
"balance": 0.00001000,
"unconfirmed_balance": 0.00000000,
"immature_balance": 0.00000000,
"txcount": 1,
"keypoololdest": 1677021603,
"keypoolsize": 999,
"hdseedid": "e82e328cb77dc2bba1fea97525a98a735361d3bb",
"keypoolsize_hd_internal": 1000,
"paytxfee": 0.00000000,
"private_keys_enabled": true,
"avoid_reuse": false,
"scanning": false,
"descriptors": false
}
bitcoin-cli listunspent
[
{
"txid": "fc2067320c7811079a826c80785f509769c20537a322457be0489c33662ddf4d",
"vout": 0,
"address": "tb1qnnvqdmuhkn77lm0jds3gvfhc5yqgjgfx6qukt8",
"label": "faucet",
"scriptPubKey": "00149cd806ef97b4fdefedf26c228626f8a100892126",
"amount": 0.00001000,
"confirmations": 1,
"spendable": true,
"solvable": true,
"desc": "wpkh([cef220f5/0'/0'/0']02e2f07438f06cdb9ad240aff30cfa699e11d87732c6431d23ad91316bf14ed723)#y4a0g4pw",
"safe": true
}
]
```
## Activar y Desactivar una wallet
Cada vez que reinicies el software de *Bitcoin Core* tendrás que cargar una wallet creada ya que por default ninguna wallet se carga al inicializar (a menos que lo hayas definido al crear la wallet, mira el *help* de *createwallet*).
Cada vez que creas una wallet, se crea un directorio con el nombre de la wallet en la ruta de archivos que hayas definido en la instalación de *Bitcoin Core*. Ese directorio contiene la información de tu wallet y las llaves que esta administra. Para visualizar este directorio usa:
```json
bitcoin-cli listwalletdir
{
"wallets": [
{
"name": "prueba1"
},
{
"name": "prueba2"
}
]
}
```
Una vez localizado el nombre de tu wallet, para activarla, usa el comando:
```
bitcoin-cli loadwallet nombre-de-wallet
```
Si quieres desactivar una wallet (para crear una nueva) usa el comando:
```
bitcoin-cli unloadwallet nombre-de-wallet
```
Para listar el nombre de la wallet que tienes activa actualmente:
```
bitcoin-cli listwallets
```
## :zap: Donaciones
:::success
Si te fue útil este material puedes agradecer a Iván @entreplanctonyballenas, enviándole un aporte vía Lightning Address:
entreplanctonyballenas@getalby.com
:::