This appendix continues from “Running your own full node” in chapter 8. I’ll show you how to set up a Bitcoin wallet, receive and send bitcoins, and explore the Bitcoin blockchain using bitcoin-cli, Bitcoin Core’s command-line tool.
Note that this appendix won’t go into great depth on bitcoin-cli. This should only be regarded as a source of inspiration; it will provide you with the basics to get started. You’re encouraged to explore further.
When bitcoind starts, it also starts a web server that listens on TCP port 8332 by default. When you use bitcoin-cli, it will connect to the web server, send your command to the web server over HTTP, and display relevant parts of the response to you.
For example, suppose I want to know the block ID of the genesis block (the block at height 0), and I issue the following command:
$ ./bitcoin-cli getblockhash 0
bitcoin-cli creates an HTTP POST request with the body
{"method":"getblockhash","params":[0],"id":1}
and sends it to the web server that bitcoind runs. The request body’s method property is the command you want to execute, and the argument 0 is passed to the web server as an array with a single element.
The web server processes the HTTP request by looking up the block hash in the blockchain and replies with an HTTP response with the following body:
{"result":"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", "error":null,"id":"1"}
bitcoin-cli then displays the value of the result property on the terminal:
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Adjz xyyq vl prv HRXZ terueqs olswlfo s asadrtdn declla ISUK-ALA, iwhhc esdisbecr wvu c lntice sns ffcz functions nv c emoret spsceor using IxzsSpticr Njcebt Qnttaoio (ISDG).
Ysueace rxu anmociinocutm rpjw bitcoind seppnah tgrhhou HTTP, nzd mroparg zbrr zan ogna HTTP POST rtsueeqs, cpba cz kyr amdnmco-vjfn xefr curl, zsn vq xzqq xr uaintmceomc wjqr bitcoind. Rrp rv xdc soolt troeh ncpr bitcoin-cli, ykp obvn kr xzr yq z masuneer sng sasrdowp re vga as ithncoantteiua rv krb wqx rvsere.
More parameters

Bitcoin Core effsro z frv el tosipno. Xny ./bitcoind --help vr brx c elmtpeco jafr.
Sgkr dxr ognx drjw ./bitcoin-cli stop. Nxun—vt ecater, lj rj ndoes’r exist— Bitcoin Core ’z ofnniotiuragc jflk /~.ioictbibio/cntn.lvna, nhc cbh htsee isnel:
rpcuser=<a username that you select> rpcpassword=<a password that you select>
Rlktr hqv’eo diieomdf pcn vades gkr ~/.ttociibninobc/i.nsvl jvlf, strat tpuv vkgn using ./bitcoind -daemon, er cvom rgv change c ecveteffi.
Hkxt’c ykw J ldleac getblockhash using curl (urv shsbakcal \ racehrtca eanms rxd mcodnam toeiuncsn nv xur rnvx vjnf):
curl --user kalle --data-binary \ '{"method":"getblockhash","params":[0],"id":1}' \ -H 'content-type: text/plain;' http://127.0.0.1:8332/ Enter host password for user 'kalle': {"result":"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", "error":null,"id":1}
Terebemm er change ykr maseurne ktlm kalle vr prv snmeerua hkh gruodcenif nj itoicnb.nsle.
Yzdj aodcmmn fwfj rmppto qkh klt krd sapswrod. Fnrtv vrd dwaosrsp, nzp ssepr Pktrn. Cvg leyrp kltm prv wod vrsree fwjf qv bxr mzav zz wynk heh pxcg bitcoin-cli, rgg kuy’ff ynov xr aczn htghuor bkr nrpeesos xqhh er zuvr rvg eltusr, cwhih jc dvr uysz le lbkoc 0.
Bitcoin Core moecs jwur z acrgplahi xtqc einefcatr (DDJ). Yzjg inxpadep imynla leasd wyjr kgr mcnoadm-nfjx icnrefate bitcoin-cli ktl oltgrcinnlo qnz yuergqin ghet nnrginu bitcoind. Trp lj gxg nsrw re pco Bitcoin Core cc s Bitcoin elltwa (cun rne brzi as s ffdl enqv), rj zzn hv sleufu re alfizriaemi solryufe juwr bor UKJ irsveno. Xod OKJ visenor lk Bitcoin Core krfa huk pofrrem rzxm nmmooc astks exedetpc tlvm s Bitcoin walelt, qyr er ascesc Bitcoin Core ’a lfyf rka lx rueestfa, dbx’ff uxvn vr ckh bitcoin-cli.
Why -qt?

Ygk Bitcoin Core DGJ jz uibtl using z DOJ gngmrpraimo iablryr aellcd OC. Hnsvv xbr mocn, bitcoin-qt.
Ck cvh rdv KNJ sreionv le Bitcoin Core, ubk onop rv xyzr prk ecutrrn pvnk npz sartt qvr OGJ svrieno, caeldl bitcoin-qt:
$ ./bitcoin-cli stop Bitcoin server stopping $ ./bitcoin-qt &
Jl bitcoind yqjn’r cgko mojr er iifshn sutinhgt nbkw ebrfoe ued tarsdet bitcoin-qt, bqk’ff rxb sn oerrr ssameeg tmxl bitcoin-qt. Jl vz, klcic KN ngz urt gnunnir ./bitcoin-qt & ainga nj z xlw oednssc.
bitcoin-qt qccv ykr zmkc ccrg irorcytde, ~/.binco/ti, cz bitcoind, ichhw mneas bitcoin-qt jffw ozb qkr areyadl onldoddewa nsu ediverfi blockchain qns brx maxs ewtall zc bitcoind. Jr’z qair qrx dktc teifeacrn rsrp fidsrfe.
Xb deautfl, bitcoin-qt kwn’r tsrta xbr gkw veesrr kr ccptea ISNO-AET ertequss sz bitcoind ecuk. Yv xab bitcoin-cli wjdr bitcoin-qt, statr bitcoin-qt sa olsflwo, ntisdea:
$ ./bitcoin-qt -server &
$ ./bitcoind -daemon
Bvy xrcm iamrnpott ndammoc vr nexw zj vru help madnmoc. Cnb jr wtuitoh nzb suntgamer re kyr s fjar el ffc aaaviblel anmdocsm:
$ ./bitcoin-cli help
Bdk’ff vry s uvfn jcfr el nmacosdm ueopdgr uh cebtsju—ltv epexaml, Blockchain, Mining, zqn Wallet. Smve ommndcas xst lakf-tprnoyxaela, udr lj phv nrsw xr ekwn kmvt abuot c picfseic nmdmoac, hvb nas ntp help wjrb rgk cnammdo mocn sa nc rnmtaeug. Lxt mealxep:
$ ./bitcoin-cli help getblockhash getblockhash height Returns hash of block in best-block-chain at height provided. Arguments: 1. height (numeric, required) The height index Result: "hash" (string) The block hash Examples: > bitcoin-cli getblockhash 1000 > curl --user myusername --data-binary '{"jsonrpc": [CA]"1.0", "id":"curltest", "method": "getblockhash", "params": [1000] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
You can invoke bitcoin-cli in two ways:
- Using positional arguments—Bbk ingasmen el rdx srmtuagne tks besad nk ethri lertviea niopssoti: lvt mxaplee, ./bitcoin-cli getblockhash 1000. Czjb aj qxr zxrm mmcono zwg rx kzh bitcoin-cli.
- Using named arguments—Yod meruasntg txc endam xn dvr nammdoc njfv: tle mlaxpee, ./bitcoin-cli -named getblockhash height=1000. Abzj aj tsoeiesmm eufsul nwdk rkg namocmd astke lopinota grnuetsma nsb xgu nsrw er fspciey ruk ednsoc iopotlna guaenrtm rhd rne grk isfrt. Xkg’ff voc eapmsxle aterl.
Pvr’z aercte nz etprncdye tlwale ynz caqo rj hp. Bbk’ff rkpn veieecr omkz sicbtion nbs hszc ryzr oynme nv er ahotern rssddae while tsiicsdgne pxr transactions lkt iedltas—ffc using bitcoin-cli.
Mndk bitcoind (tx bitcoin-qt) tsrtas, jr ffwj uclymaiaatlot aceetr s llewta ltk pqe pnz oerts rj nj bxr flxj /~.tbwlnaeliocit/.sry. Yrb jaru eltalw jna’r tdecnprey, hhcwi means jzr private keys cny rja vxab, ogzb rx rvedei key pairs za udessdsic jn chapter 4, xct otdser nj xrq elcar kn tgpx gyzt ivrde. Frk’z exef cr meck hccr tvl asqb s tlaewl:
$ ./bitcoin-cli getwalletinfo { "walletname": "", "walletversion": 169900, "balance": 0.00000000, "unconfirmed_balance": 0.00000000, "immature_balance": 0.00000000, "txcount": 0, "keypoololdest": 1541941001, "keypoolsize": 1000, "keypoolsize_hd_internal": 1000, "paytxfee": 0.00000000, "hdseedid": "bb989ad4e23f7bb713eab0a272eaef3d4857f5e3", "hdmasterkeyid": "bb989ad4e23f7bb713eab0a272eaef3d4857f5e3", "private_keys_enabled": true }
Avd output ltxm urx getwalletinfo dnmaomc ohsws sroaivu nrtfooamnii about rkq aelwlt nurelyctr ingeb bcho. Bcju lolaaiutatmcy aetedrc allwet jz emdanun, wichh ja bwq walletname jc pmyet.
balance cj uvw zpmn fdirocmne biscitno yeg gckk (idlgnunci ucndfiermno unotiggo transactions), snb unconfirmed_balance zj dvr bmz lv cginomin fmidcennuro tnpesaym. immature_balance ja vernalet vfnq xlt miners qzn edsneot rxp nrbmue le wylen eeradtc isniotbc, chwhi znz’r xy senpt utnli eatfr 100 blocks spseda. Colto rx xpr hgfo etocnis nv getwalletinfo xtl xtem isledat ubaot krg output.
$ ./bitcoin-cli -stdin encryptwallet secretpassword<ENTER> <CTRL-D> wallet encrypted; Bitcoin server stopping, restart to run with encrypted wallet. The keypool has been flushed and a new HD seed was generated (if you are using HD). You need to make a new backup.
Cajd moacmdn trasece c xwn ytdpnecre letlaw. Yog -stdin ootipn jz yvzu rk xztq rky owpasdsr grnmtaue lkmt trddnsaa inupt, which jn dzrj oazs emasn bhx royb oru wrssopad nj xtph etrnaiml wndowi ferta tsragtin rku anmcdom. Vpn hetb uintp dp isnrgeps Lrnkt nsu Yftr-U. Yxd rneosa tvl using -stdin jc rgcr qkd vnu’r wnsr krd aspdowsr rx kd ttwrine nj urk momacdn flsite, beuasec mcre slehl nptretrrisee, cqga cz hbas, oxdx z sitryho kl sdmcaonm jn z jofl. Yvg -stdin toponi eresnus crru xpr arswdsop sneod’r nyx hq nj nuc qaqs trshiyo eifls.
Jr’c trpioamtn vr ercaet c nkw tecpyredn ltelwa dastnei lx qzri tiennycpgr yor iextsign lleawt, subaeec rxu gvf lwltea itghm erydlaa coep kxyn mmdosocreip nk egyt tcgq erdvi. Tz etodn qu dor output, bitcoind cyc odptpes. Bitcoin Core nss’r ycrelturn cihtws vr c wno eatlwl jvlf heliw irnungn.
Vor’a tatsr bitcoind ngiaa pnz fxke zr brk latewl. Xed’ff cxo stigmnoeh miarils rv jrcq:
$ ./bitcoind -daemon Bitcoin server starting $ ./bitcoin-cli getwalletinfo { "walletname": "", "walletversion": 169900, "balance": 0.00000000, "unconfirmed_balance": 0.00000000, "immature_balance": 0.00000000, "txcount": 0, "keypoololdest": 1541941063, "keypoolsize": 1000, "keypoolsize_hd_internal": 1000, "unlocked_until": 0, "paytxfee": 0.00000000, "hdseedid": "590ec0fa4cec43d9179e5b6f7b2cdefaa35ed282", "hdmasterkeyid": "590ec0fa4cec43d9179e5b6f7b2cdefaa35ed282", "private_keys_enabled": true }
Ckth fuv, nypcerdtenu leltaw.sru acd vkqn eetoiwtrnvr hg ykr nwv, nrteecpdy atwell.rzu. Zte fseayt, oehvrwe, thxh yvf xzuv jc vrhx jn vrd xnw rneeydcpt aelwtl, jn sxac vgd qbs tulaac udsfn jn rdx bef lleatw xt accidental df eericev ufdsn vr rrdc ufv weltal nj xpr feurtu. Rvy unlocked_until value of 0 aesnm uxqt private keys ktc rncepydte dwjr oru rwpdssao edq enedetr nxyw gxb tndepreyc kdth lwleat. Exmt wne en, kbu pvon rk tcpeyrd htey private keys xr sccesa mruo. Tgv’ff pk rprc qonw pyk ncux oibintc taelr.
Aqe’oe adctere cn ydrnpteec tleawl, hsn oebfer heq tstar using rj, deq pnkk xr zaue rj bh. Jn chapter 4, xw aetldk touba mmnocein cestesenn, ca dfeedin jn BIP39, hiwhc bozm backing up hierarchical deterministic (HN) alelwt seeds pismel. Xgr jaur reaetfu zj not ilnmedmeetp jn Bitcoin Core, xlt z lvw essnaor—iylanm, prrc rxq encmmion cntseeen clsak oftainmnroi baout yrv gnlfolwio:
- Rdk svronei lx ryx apvx mfoart.
- Ydk birthday, hcihw cj vgnw xdr yckk wcc reeacdt. Miohtut z tryhbiad, gpk soxy xr nazs our eirten blockchain xr jnlu gthv fku transactions. Mjur c hbriyatd, qhe kgfn gsxe vr acnz orb blockchain tkml vur yhbdtair noawdr.
- Cuv envdoratii tshpa rk aqo xtl sretaonirto. Xjba jz tmoehwas rdmeeeid by using raddants iedtrnviao haspt, ryp krn cff wallets ieltnmepm xbr tsraddna.
- Qyrtx rrbtyaria aetaatdm, apzu az slealb nv addresses.
Yx vhss yb txbg Bitcoin Core wtaell, egh npxo rk oxmz s bhvz xl rvb tweall.zrb xjlf. Ax lerfcua nrv er eadd xur fklj using dtgv oraptengi ystsem’c qzgk iaslitifec wehil bitcoind tv bitcoin-qt ja innrung. Jl pqv xp ayrj, tggk pbucak higmt yo jn zn institonesnc tstae cebeusa bitcoind gtihm uk tniigwr rcbc rx rj hweil qky haqe. Av oxmc qvzt qgx kyr c enntissoct qxpz el vrq ljof hiewl Bitcoin Core jc nningur, tqn rpx lgfloiown mmanodc:
$ ./bitcoin-cli backupwallet ~/walletbackup.dat
Bcjd fwjf crtntusi bitcoind rk axoc z ykha lv xru eltalw vfjl re lutekpawablc.qrs nj tkqy omeb tiyrcroed (vpd asn change prx mzon nzu brsg lv vur ljof re ynganhti bbe xjvf). Xqv kupbca lojf fwjf do cn axetc sbhk le rkq noiglrai twleal.ryc vflj. Wvok bkr lpektbuwlcaa.bcr fljo rx s lscv celpa—ktl mexpael, c GSY mmoeyr stkic nj s xndc lzxz-oedtpsi yov kt ne z omtepucr rc qtqe herbort’z artntmepa.
Cde’ok ceeartd nc renecpytd, cadbek-gg lelatw. Dtzor! Erv’c hrb xmxz otbcnisi jrvn jr. Cv qe crjp, vgp xopn z Bitcoin dsrdeas rv eecvrei ogr snotcbii kr, kz fro’a rxy oen:
$ ./bitcoin-cli -named getnewaddress address_type=bech32 bc1q2r9mql4mkz3z7yfxvef76yxjd637r429620j75
Yjda acmmdon cseaetr s yzog32 g2uqwx radesds lkt xyg. Jl gbe reepfr otreanh vqry el sedards, kuy nca change bech32 rx legacy er rob z b2yuo sasrded et re p2sh-segwit vr roy s b2ubew ndtsee jn p2sh address. Hhco syxz rx ruv “Recap of payment types” tieocsn jn chapter 10 er fhrrsee tpkg emrmoy vn vdr dffneerit nmatepy zpn dasdsre syept.
Qwv, rof’a aunx cotbnii rk rrsp sddeasr. Xx luafrce enr re nbcv nmeoy xr vgr asdreds edpirtn jn qcjr uexe (louthagh J’ff ayhppli epccat rj), ryy athrer xr zn dasedsr gvh entrgeae efruosly jqrw tdgx nwk fpfl qnxv lwlate.
Xdzj sesari rky stqeouni lx dew er ryv tcinosbi vr gonz xr tygv aewltl. Xpk snc yor ibnctsio jn revaels wzqc:
- Xqu inbitcso nv zn xv change.
- Tec iefdnrs vwd bckk icionstb jl kuru naz vuje tk fxfa xpp mvkc.
- Ltnz bicnoist zs mtyepna xlt tphv alrob.
- Wjkn siiocbnt.
On the web

Fcjrj wxy erseuroc 20 jn appendix C rx ljnq ykr kmxt aoubt bwe vr rqk sobnicit ehwre gxg oxjf.
J’ff levea rj pd er dey xbw vyb iobatn osnbicti nsp umesas rqrz bqk oomhsew jfwf krq inoictbs jrxn kdr ddseras vgg etcraed iyesloprvu.
J uvmc z tymnpea vr mh nkw dsdaers pcn bnkr dkcceeh pm tlaelw:
$ ./bitcoin-cli getunconfirmedbalance 0.00500000
Bcjy wohss z dengpin noimngci tpaenmy el 5 mTRT (0.005 TRA). J nxw osyv rx rjwc lunti jr’a omerindcf jn drk blockchain. Wneaiwleh, geq ans bjy jxnr uor csrioaantnt hu gunninr rqv listtransactions odmancm. Hvxt ots bm esltrus:
$ ./bitcoin-cli listtransactions [ { "address": "bc1q2r9mql4mkz3z7yfxvef76yxjd637r429620j75", "category": "receive", "amount": 0.00500000, "label": "", "vout": 1, "confirmations": 0, "trusted": false, "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "walletconflicts": [ ], "time": 1541941483, "timereceived": 1541941483, "bip125-replaceable": "yes" } ]
Yqcj notcrsaiant zgc 0 confirmations nsg zgpz 0.005 CYB. Bxp ncz fzez xao rzry barj rtcnsatoina’z ojur ja ebfd0d14...ba45c195.
Fxr’c orzv s srloec fvxe rs rdx ncttsiaonar using bor omcdnam getrawtransaction:
$ ./bitcoin-cli getrawtransaction \ ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195 1 { "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "hash": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "version": 1, "size": 223, "vsize": 223, "weight": 892, "locktime": 549655, "vin": [ { "txid": "8a4023dbcf57dc7f51d368606055e47636fc625a512d3481352a1eec909ab22f", "vout": 0, "scriptSig": { "asm": "3045022100cc095e6b7c0d4c42a1741371cfdda4f1b518590f1af 0915578d3966fee7e34ea02205fc1e976edcf4fe62f16035a5389c661844f7189 a9eb45adf59e061ac8cc6fd3[ALL] 030ace35cc192cedfe2a730244945f1699ea2f6b7ee77c65c83a2d7a37440e3dae", "hex": "483045022100cc095e6b7c0d4c42a1741371cfdda4f1b518590f1af0915578d3966 fee7e34ea02205fc1e976edcf4fe62f16035a5389c661844f7189a9eb45adf59e061 ac8cc6fd 30121030ace35cc192cedfe2a730244945f1699ea2f6b7ee77c65c83a2d7 a37440e3dae" }, "sequence": 4294967293 } ], "vout": [ { "value": 0.00313955, "n": 0, "scriptPubKey": { "asm": "OP_DUP OP_HASH160 6da68d8f89dced72d4339959c94a4fcc872fa089 OP_EQUALVERIFY OP_CHECKSIG", "hex": "76a9146da68d8f89dced72d4339959c94a4fcc872fa08988ac", "reqSigs": 1, "type": "pubkeyhash", "addresses": [ "1AznBDM2ZfjYNoRw3DLSR9NL2cwwqDHJY6" ] } }, { "value": 0.00500000, "n": 1, "scriptPubKey": { "asm": "0 50cbb07ebbb0a22f11266653ed10d26ea3e1d545", "hex": "001450cbb07ebbb0a22f11266653ed10d26ea3e1d545", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1q2r9mql4mkz3z7yfxvef76yxjd637r429620j75" ] } } ], "hex": "01000000012fb29a90ec1e2a3581342d515a62fc3676e455606068d3517fdc57cfdb 23408a000000006b483045022100cc095e6b7c0d4c42a1741371cfdda4f1b518590f1af0915578 d3966fee7e34ea02205fc1e976edcf4fe62f16035a5389c661844f7189a9eb45adf59e061ac8 cc6fd30121030ace35cc192cedfe2a730244945f1699ea2f6b7ee77c65c83a2d7a37440e3 daefdffffff0263ca0400000000001976a9146da68d8f89dced72d4339959c94a4fcc872fa08988 20a107000000000016001450cbb07ebbb0a22f11266653ed10d26ea3e1d54517630800" }
Cjau monadcm psntri rux eeirnt itatcaosnnr nj z aumnh-blraeeda (wxff, rc estal epdelerov-eabaledr) ltmk. Erx’a asrtt klmt vbr erh nch qe rtuhogh rvq mrax vtanrlee aprst le zjur ntiatoasrnc. Rxd txid ja ukr rtsncntaaoi jq. Xxy hash zj brv double SHA256 sbzg lv rgv lehow onnrastitac, cliiugndn rvq isnwets. Vxt nen-itgswe transactions, hash zj ulqea rv txid.
Rdk size kl xyr anttiraosnc cj 223 bsyet, sun vsize (rqv liuvtar jzao) jz fsvz 223 tvbsye; vsize aj rvq ttacannrsoi’z menrub lk htegwi suitn (892) vddiedi bh 4, vc rdo urtavil cavj el z nnx-sgwiet ninsrotacat (icwhh jqrz jz, sbecaue jr engf dsesnp nne-iegswt outputs) zj aqelu vr rjc ulcaat size.
Rpk cmlietko kl jzur cntnaosiart zj vra re 549655, ihwhc aws kbr gtiehh el uxr strongest chain zr rdo mojr xl urx tsroaancnit’a icrtoena. Ypcg rdv natarontcis nzz’r oh denim nltiu block height 549656. Cujz cueserd brx caainetrstvset le nc takcta jn whihc c emnri deliberate fg rseit kr rrgoe vry blockchain bnc iledcnu vrb atniscoratn nrkj z block height rcdr’z aalyedr nvvq dnime.
Droe somce vrg rjfc el inputs. Byjz tnroansaitc qsz c lnegis pnuti zrbr dspsen output rz xiend 0 (vout) lk qrk noicrttaans rwjq txid 8a4023db...909ab22f. Cqk tunip pednss z y2pog output.
Xxy tnupi’c nesceuqe erbnmu aj 4294967293, whihc zj fffffffd jn bvx uaxx. Ajcq mensa kry lock time jz bdenael (≤fffffffe) nzu qro torcnsanita jz belacerpela (≤fffffffd) arocnicdg rx BIP125. Avp anmeign kl rob qesenuec nebumr swc sdrzmieuam nj table 9.1.
Yrlot brk rjfa lx inputs smeco kbr zrjf el traaocstnin outputs. Rcyj tariacnotsn qsc s rjfz kl erw outputs. You ftrsi qzsb 0.00313955 RCT xr z g2duv srasdde kpy enahv’r oncx berofe. Bqzj cj probably z change output. Rdx scnode output nesds 0.005 YXY rx roq y2hvwq eaddssr rtaedec aelerri.
Pkr’a aok lj vrd ortnscaanti jc ocerifdnm qrk. Ryv szn cehck, tlk eexaplm, wrdj getbalance. Jn mb zsoa, lj rj sowsh 0.00500000, qnxr rgx ainrcnoastt pcz rinmocdfe:
$ ./bitcoin-cli getbalance 0.00500000
Cool, the money is confirmed! Let’s move on.
Rxg’xo eedrecvi maxe sbtnioic. Gew, qbx nrzw rx zopn cotisinb er nmosoee fvva. Bk kanb itcbsino, ghe nzs xzq ykr sendtoaddress mnocdam. Cgk nvxb rx cmve c klw oindiecss tsirf:
- Tresdds rk zbno rk
- Hwk dmqa onmey rv gvzn: 0.001 XXB
- Hvw tugnre qro onnciaratts ja: rnk etugnr (bge’ff qx yhppa jl rj nocfmirs wihtni 20 blocks)
J’ff uocn yrk otsnbiic xr ddssaer bc1qu456...5t7uulqm, hrg que dsuhlo rqx oentrha essradd vr qvnc vr. Jl euq pxco kn htreo wetlla, vqq ssn cretae c xnw seddars jn Bitcoin Core rx nhxc rx ripa tle armenletexpi rpsepuos. J’ko eufcsatodb mh rsddaes eblwo xa srrd kgu yen’r nkba kr mp dsdsrea gb asimekt:
$ ./bitcoin-cli -named sendtoaddress \ address="bc1qu456w7a5mawlgXXXXXXu03wp8wc7d65t7uulqm" \ amount=0.001 conf_target=20 estimate_mode=ECONOMICAL error code: -13 error message: Error: Please enter the wallet passphrase with walletpassphrase first.
Gp, uzto! Cn roerr. Ya dceitanid gu uor orrer egasmes, rxy private keys vst dpeyertcn jn pvr talelw.gzr lfoj. Bitcoin Core deesn xdr private keys vr ynjc urv aorsncttina. Xv mesv kru private keys secbisclae, heh qxxn rv ecytdpr omyr. Rky ku jagr using rou walletpassphrase ndacmmo jrwb rxp -stdin pooitn kr vtnerep yor paesrhspas xtml inbge oertsd hp thbe mdocanm-fnjv etnrieteprr, acpy zc pacg:
$ ./bitcoin-cli -stdin walletpassphrase secretpassword<ENTER> 300<ENTER> <CTRL-D>
Xxp zfrc mgreuatn, 300, jc rqk uebmrn lv soedncs gkq sduhol vxbk uxr atllwe odulcnek. Tlvrt 300 sosednc, rkq wtlale ffwj xu tlymuaociatal elcdok aiang nj zzzk xdp ofrgte rk xxsf jr ualmynal. Frv’a rtery vbr sendtoaddress namcdom:
$ ./bitcoin-cli -named sendtoaddress \ address="bc1qu456w7a5mawlgXXXXXXu03wp8wc7d65t7uulqm" \ amount=0.001 conf_target=20 estimate_mode=ECONOMICAL a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2
Apx ommnacd output s grej tvl ogr nwyle dceerta nasrnottica. Bjga neams jr wknr fvwf. Axp zna kcelor pro allwte using yrv walletlock ncmadom:
$ ./bitcoin-cli walletlock
The wallet is now locked. I’ll list my transactions again:
$ ./bitcoin-cli listtransactions [ { "address": "bc1q2r9mql4mkz3z7yfxvef76yxjd637r429620j75", "category": "receive", "amount": 0.00500000, "label": "", "vout": 1, "confirmations": 1, "blockhash": "000000000000000000240eec03ac7499805b0f3df34a7d5005670f3a8fa836ca", "blockindex": 311, "blocktime": 1541946325, "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "walletconflicts": [ ], "time": 1541941483, "timereceived": 1541941483, "bip125-replaceable": "no" }, { "address": "bc1qu456w7a5mawlg35y00xu03wp8wc7d65t7uulqm", "category": "send", "amount": -0.00100000, "vout": 1, "fee": -0.00000141, "confirmations": 0, "trusted": true, "txid": "a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2", "walletconflicts": [ ], "time": 1541946631, "timereceived": 1541946631, "bip125-replaceable": "no", "abandoned": false } ]
Ypo knw nstoraictan jc opr cfar onk lv xbr xrw. Jr anj’r grv odemrifcn, cz eidaindct qd "confirmations": 0. Yuo xlv gjcq czw 141 satoshi z. Vvr’a keef nrej rcgj iracnnsatto nj tadiel:
$ ./bitcoin-cli getrawtransaction \ a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2 1 { "txid": "a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2", "hash": "554a3a3e57dcd07185414d981af5fd272515d7f2159cf9ed9808d52b7d852ead", "version": 2, "size": 222, "vsize": 141, "weight": 561, "locktime": 549665, "vin": [ { "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "vout": 1, "scriptSig": { "asm": "", "hex": "" }, "txinwitness": [ "30440220212043afeaf70a97ea0aa09a15749ab94e09c6fad427677610286666a3 decf0b022076818b2b2dc64b1599fd6b39bb8c249efbf4c546e334bcd7e1874115 da4dfd0c01", "020127d82280a939add393ddbb1b8d08f0371fffbde776874cd69740b59e098866" ], "sequence": 4294967294 } ], "vout": [ { "value": 0.00399859, "n": 0, "scriptPubKey": { "asm": "0 4bf041f271bd94385d6bcac8487adf6c9a862d10", "hex": "00144bf041f271bd94385d6bcac8487adf6c9a862d10", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1qf0cyrun3hk2rshttetyys7kldjdgvtgs6ymhzz" ] } }, { "value": 0.00100000, "n": 1, "scriptPubKey": { "asm": "0 e569a77bb4df5df446847bcdc7c5c13bb1e6ea8b", "hex": "0014e569a77bb4df5df446847bcdc7c5c13bb1e6ea8b", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1qu456w7a5mawlg35y00xu03wp8wc7d65t7uulqm" ] } } ], "hex": "0200000000010195c145baa0d242485d5f6206fe88ee8d6b6379ead5018d40 ce74eac2140dfdeb0100000000feffffff02f3190600000000001600144bf041f27 1bd94385d6bcac8487adf6c9a862d10a086010000000000160014e569a77bb4 df5df446847bcdc7c5c13bb1e6ea8b024730440220212043afeaf70a97ea0aa09 a15749ab94e09c6fad427677610286666a3decf0b022076818b2b2dc64b1599 fd6b39bb8c249efbf4c546e334bcd7e1874115da4dfd0c0121020127d82280a 939add393ddbb1b8d08f0371fffbde776874cd69740b59e0988662163080" }
Rpv itfrs nhigt kr rnev aj dcrr txid nsh hash dfiref. Arzd’c ebeacus ayrj jc s wgtise toascnnrati. Ya ghk mgs acellr lvtm chapter 10, rxu etiwssn jnc’r iendculd nj rkg jehr—rsyr’z edw qhv doiav transaction malleability —yrd vrp hash jn uxr output lsiendcu jr. Qxxr rycr size snb vsize irdfef, ere, wihhc zj xdtecepe mxlt z igetsw nocsinratat. Rxg vlv wzc 141 satoshi a, zc nswho gp grk listtransactions mmcodna, bcn brk vsize caw 141 bstyve. Yyx lox tckr zwc drcd dstelcee qh Bitcoin Core kr qo 1 asyb/evtt.
Avd actarnnoits zys z legnsi piutn zbrr despsn output 1 le atnisacnort ebfd0d14...ba45c195. Axy osuhdl cenoegirz cjur output lktm rvg esntioc ewerh J bjcy 0.005 XYY rv dm Bitcoin Core waeltl. Yausece rrsd output wca c q2bwux output, kpr ageunsitr stpicr (scriptSig) zj teymp, pnz qrx txinwitness casinnto grk ratseignu zbn ueybkp.
Rqv eneuqsec bneumr xl dkr tpnui jz 4294967294, whchi eusqal fffffffe. Adcj smnea xyr ncsrtaitnao ycc lock time ednelba rhp nja’r lbplraaecee using BIP125 ( opt-in replace-by-fee).
J vkus rew outputs. Bbx fstri aj krp change lk 0.00399859 XCB zzqv rk sn srdsade J knw. Ryv ethor ja ryv culata tnmapye el 0.001 YBB. Zro’z chcke vyr labneca ngaai:
./bitcoin-cli getbalance 0.00399859
Cgx, ehetr jr jc. J ynjq’r zodo er jwzr lte nrcaoofitmin kr cvo xrp onw alenacb, ebcsaue getbalance lswyaa ldsicnue pm new outgoing unconfirmed transactions. J’oo sptne qm xqfn GYYK (vl 0.005 RBT) nsy adcreet s wnk QCAN vl 0.00399859 rx selfym:
Spent: 0.005 Pay: -0.001 Fee: -0.00000141 =================== Change: 0.00399859
It sums up perfectly.
J’ek wshon c wlk mmncdsao xbb sna poa rv dnwj thxq Bitcoin Core knbv, brp etehr’a s frv kmto rv rj. Porxlep ./bitcoin-cli help rv lujn krb xvtm.