-
Notifications
You must be signed in to change notification settings - Fork 181
/
Copy pathgenerate.xml
579 lines (474 loc) · 48.6 KB
/
generate.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
<?xml version = "1.0" ?>
<generate script="generate.gsl" language="en-us">
<!-- Help resources. -->
<help>
<!-- TODO: generate part of help output from shorthand. -->
<shorthand name="BTC" description="Bitcoin Denomination" />
<shorthand name="BX" description="Bitcoin Explorer" />
<shorthand name="EC" description="Elliptic Curve" />
<shorthand name="HD" description="Hierarchical Deterministic" />
<shorthand name="PREVOUT" description="Previous Output" />
<shorthand name="PUBKEY" description="EC Public Key" />
<shorthand name="QRCODE" description="Quick Response Code" />
<shorthand name="RACE" description="Research and development in Advanced Communications Technologies" />
<shorthand name="RIPEMD" description="RACE Integrity Primitives Evaluation Message Digest" />
<shorthand name="SHA" description="Secure Hash Algorithm" />
<shorthand name="SOCKS" description="Socket Secure (proxy protocol)" />
<shorthand name="SX" description="Spesmilo Exchanger (the original version of Bitcoin Explorer)" />
<shorthand name="TX" description="Transaction" />
<shorthand name="UTXO" description="Unspent Transaction Output" />
<shorthand name="WIF" description="Wallet Import Format" />
</help>
<!-- Configuration file sections. -->
<!-- TODO: generate example.cfg from this. -->
<!-- IMPORTANT: update the 'settings' command when these change. -->
<configuration section="general">
<!-- Only hd-new and stealth-encode currently use the testnet distinction, apart from swapping servers. -->
<setting name="network" default="mainnet" description="The network to use, either 'mainnet' or 'testnet'. Defaults to 'mainnet'." />
<setting name="retries" type="byte" description="Number of times to retry contacting the server before giving up." />
<setting name="wait" default="2000" type="uint32_t" description="Milliseconds to wait for a response from the server." />
</configuration>
<configuration section="mainnet">
<setting name="url" type="uri" default="tcp://obelisk.airbitz.co:9091" description="The URL of the Obelisk mainnet server." />
</configuration>
<configuration section="testnet">
<setting name="url" type="uri" default="tcp://obelisk-testnet.airbitz.co:9091" description="The URL of the Obelisk testnet server." />
</configuration>
<!-- General resources. -->
<resource>
<string name="BX_PRINTER_USAGE_FORMAT" value="Usage: %1% %2% %3%" />
<string name="BX_PRINTER_DESCRIPTION_FORMAT" value="Info: %1%" />
<string name="BX_PRINTER_OPTION_TABLE_HEADER" value="Options (named):" />
<string name="BX_PRINTER_ARGUMENT_TABLE_HEADER" value="Arguments (positional):" />
<string name="BX_PRINTER_VALUE_TEXT" value="VALUE" />
<string name="BX_COMMAND_USAGE" value="Usage: bx COMMAND [--help]" />
<string name="BX_COMMANDS_HEADER" value="Info: The bx commands are:" />
<string name="BX_COMMANDS_HOME_PAGE" value="Bitcoin Explorer home page:" />
<string name="BX_CONNECTION_FAILURE" value="Could not connect to server: %1%" />
<string name="BX_DEPRECATED_COMMAND" value="The '%1%' command has been replaced by '%2%'."/>
<string name="BX_INVALID_COMMAND" value="'%1%' is not a bx command. Enter 'bx help' for a list of commands." />
<string name="BX_INVALID_PARAMETER" value="Error: %1%" />
<string name="BX_UNEXPECTED_EXCEPTION" value="Unexpected error: %1%" />
<string name="BX_CONFIG_DESCRIPTION" value="The path to the configuration settings file." />
<string name="BX_HELP_DESCRIPTION" value="Get a description and instructions for this command." />
</resource>
<!-- Bitcoin Explorer Commands -->
<!-- The 'command' element attributes typeX multipleX are currently unused and are intended to eventually provide type information for output bindings. -->
<command symbol="address-decode" formerly="decode-addr" typeX="wrapper" category="WALLET" description="Convert a Bitcoin address to its component parts.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The Bitcoin address to convert. If not specified the address is read from STDIN."/>
</command>
<command symbol="address-embed" formerly="embed-addr" typeX="address" category="WALLET" description="Generate a Bitcoin address with an embedded record of binary data.">
<option name="version" type="byte" description="The desired Bitcoin address version." />
<argument name="DATA" stdin="true" type="raw" description="The binary data to encode as Base16. This can be text or any other data. If not specified the data is read from STDIN." />
</command>
<command symbol="address-encode" formerly="encode-addr" typeX="address" category="WALLET" description="Convert a RIPEMD160 value to a Bitcoin address.">
<option name="version" type="byte" description="The desired Bitcoin address version." />
<argument name="RIPEMD160" stdin="true" type="btc160" description="The Base16 hash to convert. If not specified the value is read from STDIN."/>
</command>
<command symbol="address-validate" formerly="validaddr" typeX="address" multipleX="true" category="WALLET" description="Validate a Bitcoin address.">
<argument name="BITCOIN_ADDRESS" stdin="true" type="string" description="The Bitcoin address to validate. If not specified the address is read from STDIN." />
<define name="BX_ADDRESS_VALIDATE_VALID_ADDRESS" value="The address is valid." />
<define name="BX_ADDRESS_VALIDATE_INVALID_ADDRESS" value="The address is not valid." />
</command>
<command symbol="base16-decode" typeX="raw" category="ENCODING" description="Convert a Base16 value to binary data.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 value to decode as binary data. If not specified the value is read from STDIN." />
</command>
<command symbol="base16-encode" typeX="base16" category="ENCODING" description="Convert binary data to Base16.">
<argument name="DATA" stdin="true" type="raw" description="The binary data to encode as Base16. This can be text or any other data. If not specified the data is read from STDIN." />
</command>
<command symbol="base58check-decode" typeX="wrapper" category="ENCODING" description="Convert a Base58Check value to Base16.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="BASE58CHECK" stdin="true" type="base58" description="The Base58Check value to decode. If not specified the value is read from STDIN." />
</command>
<command symbol="base58check-encode" typeX="base58" category="ENCODING" description="Convert a Base16 value to Base58Check.">
<option name="version" type="byte" description="The desired version number." />
<argument name="BASE16" stdin="true" type="base16" description="The Base16 value to Base58Check encode. If not specified the value is read from STDIN." />
</command>
<command symbol="base58-decode" typeX="base16" category="ENCODING" description="Convert a Base58 value to Base16.">
<argument name="BASE58" stdin="true" type="base58" description="The Base58 value to decode as Base16. If not specified the value is read from STDIN." />
</command>
<command symbol="base58-encode" typeX="base58" category="ENCODING" description="Convert a Base16 value to Base58.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 value to encode as Base58. If not specified the value is read from STDIN." />
</command>
<command symbol="base64-decode" typeX="raw" category="ENCODING" description="Convert a Base64 value to binary data.">
<argument name="BASE64" stdin="true" type="base64" description="The Base64 value to decode as binary data. If not specified the value is read from STDIN." />
</command>
<command symbol="base64-encode" typeX="base64" category="ENCODING" description="Convert binary data to Base64.">
<argument name="DATA" stdin="true" type="raw" description="The binary data to encode as Base64. This can be text or any other data. If not specified the data is read from STDIN." />
</command>
<command symbol="bci-fetch-last-height" category="ONLINE" obsolete="true" description="Get the last block height from blockchain.info.">
<define name="BX_BCI_FETCH_LAST_HEIGHT_OBSOLETE" value="This command is no longer supported. Use fetch-height." />
</command>
<command symbol="bci-history" category="ONLINE" obsolete="true" description="Get the list of outputs, values and spends for an address from blockchain.info.">
<define name="BX_BCI_HISTORY_OBSOLETE" value="This command is no longer supported. Use fetch-history." />
</command>
<command symbol="bitcoin160" typeX="base16" category="HASH" description="Perform a RIPEMD160 hash of a SHA256 hash of Base16 data.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 data to hash. If not specified the data is read from STDIN."/>
</command>
<command symbol="bitcoin256" typeX="base16" category="HASH" description="Perform a SHA256 hash of a SHA256 hash of Base16 data and then reverse the byte order.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 data to hash. If not specified the data is read from STDIN."/>
</command>
<command symbol="blke-fetch-transaction" category="ONLINE" obsolete="true" description="Get a Bitcoin transaction from blockexplorer.com.">
<define name="BX_BLKE_FETCH_TRANSACTION_OBSOLETE" value="This command is no longer supported. Use fetch-tx." />
</command>
<command symbol="btc-to-satoshi" formerly="satoshi" typeX="uint64_t" category="MATH" description="Convert BTC to satoshi.">
<argument name="BTC" stdin="true" type="btc" description="The number of BTC to convert. If not specified the value is read from STDIN."/>
</command>
<!-- TODO: ensure proper handling of Unicode PASSPHRASE. -->
<command symbol="ec-lock" formerly="brainwallet" typeX="ec_private" category="WALLET" stub="true" description="Make a passphrase-protected EC private key (BIP38) from an EC private key.">
<argument name="EC_PRIVATE_KEY" required="true" type="ec_private" description="The EC private key." />
<argument name="PASSPHRASE" required="true" description="The Unicode passphrase." />
<define name="BX_EC_LOCK_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="ec-add" typeX="ec_public" category="MATH" description="Calculate the EC function POINT + (SECRET * curve-generator-point).">
<argument name="POINT" required="true" type="ec_public" description="The Base16 EC point to add."/>
<argument name="SECRET" required="true" type="ec_private" description="The Base16 EC secret to add."/>
<define name="BX_EC_ADD_OUT_OF_RANGE" value="Function exceeds valid range." />
</command>
<command symbol="ec-add-secrets" formerly="ec-add-modp" typeX="ec_private" category="MATH" description="Calculate the EC function (SECRET + SECRET) % curve-order.">
<argument name="SECRET" stdin="true" limit="-1" type="ec_private" description="The set of Base16 secrets to add. If not specified the secrets are read from STDIN."/>
<define name="BX_EC_ADD_SECRETS_OUT_OF_RANGE" value="Sum exceeds valid range." />
</command>
<command symbol="ec-multiply" typeX="ec_public" category="MATH" description="Calculate the EC product (POINT * SECRET).">
<argument name="POINT" required="true" type="ec_public" description="The Base16 EC point to multiply."/>
<argument name="SECRET" required="true" type="ec_private" description="The Base16 EC secret to multiply."/>
<define name="BX_EC_MULITPLY_OUT_OF_RANGE" value="Product exceeds valid range." />
</command>
<command symbol="ec-multiply-secrets" formerly="ec-tweak-add" typeX="ec_private" category="MATH" description="Calculate the EC function (SECRET * SECRET) % curve-order.">
<argument name="SECRET" stdin="true" limit="-1" type="ec_private" description="The set of Base16 EC secrets to multiply. If not specified the secrets are read from STDIN."/>
<define name="BX_EC_MULITPLY_SECRETS_OUT_OF_RANGE" value="Function exceeds valid range." />
</command>
<command symbol="ec-new" formerly="newkey" typeX="ec_private" category="WALLET" description="Create a new EC private key from entropy.">
<argument name="SEED" stdin="true" type="base16" description="The Base16 randomness seed for the new key. Must be at least 128 bits in length. If not specified the seed is read from STDIN." />
<define name="BX_EC_NEW_SHORT_SEED" value="The seed is less than 128 bits long." />
<define name="BX_EC_NEW_INVALID_KEY" value="The seed produced an invalid key." />
</command>
<command symbol="ec-to-address" formerly="addr" typeX="address" category="WALLET" description="Convert an EC public key to a Bitcoin address.">
<option name="version" type="byte" description="The desired Bitcoin address version." />
<argument name="EC_PUBLIC_KEY" stdin="true" type="ec_public" description="The Base16 EC public key to convert. If not specified the key is read from STDIN." />
</command>
<command symbol="ec-to-public" formerly="pubkey" typeX="ec_public" category="WALLET" description="Derive the EC public key of an EC private key. Defaults to the compressed public key format.">
<option name="uncompressed" description="Derive using the uncompressed public key format." />
<argument name="EC_PRIVATE_KEY" stdin="true" type="ec_private" description="The Base16 EC private key. If not specified the key is read from STDIN."/>
</command>
<command symbol="ec-to-wif" typeX="wif" category="WALLET" description="Convert an EC private key to a WIF private key. The result associates with the compressed public key format by default.">
<option name="uncompressed" description="Associate the result with the uncompressed public key format." />
<argument name="EC_PRIVATE_KEY" stdin="true" type="ec_private" description="The Base16 EC private key to convert. If not specified the key is read from STDIN."/>
</command>
<!-- TODO: ensure proper handling of Unicode PASSPHRASE in Windows builds. -->
<command symbol="ec-unlock" typeX="ec_private" category="WALLET" stub="true" description="Extract the EC private key from a passphrase-protected (BIP38) EC private key.">
<argument name="PASSPHRASE" required="true" description="The Unicode passphrase." />
<define name="BX_EC_UNLOCK_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="fetch-balance" typeX="balance_row" category="ONLINE" network="true" description="Get the balance in satoshi of a Bitcoin address. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The Bitcoin address. If not specified the address is read from STDIN." />
</command>
<command symbol="fetch-header" category="ONLINE" typeX="header" network="true" description="Get the block header from the specified hash or height. Height is ignored if both are specified. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<option name="hash" shortcut="s" type="btc256" description="The Base16 block hash."/>
<option name="height" shortcut="t" type="size_t" description="The block height."/>
</command>
<command symbol="fetch-height" formerly="fetch-last-height" typeX="size_t" category="ONLINE" network="true" description="Get the last block height. Requires an Obelisk server connection.">
<argument name="server-url" description="The URL of the Obelisk server to use. If not specified the URL is obtained from configuration settings or defaults."/>
</command>
<command symbol="fetch-history" typeX="history_row" category="ONLINE" network="true" description="Get list of output points, values, and spends for a Bitcoin address. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The Bitcoin address. If not specified the address is read from STDIN." />
</command>
<command symbol="fetch-public-key" formerly="get-pubkey" typeX="ec_public" category="ONLINE" stub="true" network="true" description="Get the EC public key of the address, if it exists on the blockchain. Requires an Obelisk server connection.">
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The Bitcoin address of the public key. If not specified the address is read from STDIN."/>
<define name="BX_FETCH_PUBLIC_KEY_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="fetch-stealth" typeX="stealth_row" category="ONLINE" network="true" description="Get metadata on potential payment transactions by stealth prefix. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<option name="height" shortcut="t" type="size_t" description="The minimum block height of transactions to include."/>
<!--<option name="scan_secret" type="ec_private" description="The Base16 EC private key to use locally in confirming stealth transactions."/>-->
<!--<option name="scan_pubkey" shortcut="p" type="ec_public" description="The Base16 EC public key to use locally in confirming stealth transactions."/>-->
<argument name="PREFIX" type="base2" description="The Base2 stealth prefix used to locate transactions. Defaults to all stealth transactions." />
<define name="BX_FETCH_STEALTH_PREFIX_TOO_LONG" value="WARNING: stealth prefix is limited to 32 bits." />
</command>
<command symbol="fetch-tx" formerly="fetch-transaction" typeX="transaction" category="ONLINE" network="true" description="Get a transaction by its hash. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="HASH" stdin="true" type="btc256" description="The Base16 transaction hash of the transaction to get. If not specified the transaction hash is read from STDIN." />
</command>
<command symbol="fetch-tx-index" formerly="fetch-transaction-index" typeX="string" multipleX="true" category="ONLINE" network="true" description="Get the block height and index of a transaction. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="HASH" stdin="true" type="btc256" description="The Base16 transaction hash of the transaction index to get. If not specified the transaction hash is read from STDIN." />
</command>
<command symbol="fetch-utxo" formerly="get-utxo" typeX="output" multipleX="true" category="ONLINE" stub="true" network="true" description="Get enough unspent transaction outputs from a Bitcoin addresses to pay a number of satoshi. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="SATOSHI" type="uint64_t" required="true" description="The whole number of satoshi." />
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The Bitcoin address. If not specified the address is read from STDIN." />
<define name="BX_FETCH_UTXO_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="genaddr" category="ELECTRUM" obsolete="true" description="Generate a Bitcoin address deterministically from an Electrum wallet.">
<define name="BX_GENADDR_OBSOLETE" value="Electrum style key functions are obsolete. Use HD (BIP32) commands instead." />
</command>
<command symbol="genpriv" category="ELECTRUM" obsolete="true" description="Generate a private key deterministically from an Electrum seed.">
<define name="BX_GENPRIV_OBSOLETE" value="Electrum style key functions are obsolete. Use HD (BIP32) commands instead." />
</command>
<command symbol="genpub" category="ELECTRUM" obsolete="true" description="Generate a public key deterministically from an Electrum wallet.">
<define name="BX_GENPUB_OBSOLETE" value="Electrum style key functions are obsolete. Use HD (BIP32) commands instead." />
</command>
<command symbol="hd-new" formerly="hd-seed" typeX="hd_private" category="WALLET" description="Create a new HD (BIP32) private key from entropy.">
<argument name="SEED" stdin="true" type="base16" description="The Base16 randomness seed for the new key. Must be at least 128 bits in length. If not specified the seed is read from STDIN." />
<define name="BX_HD_NEW_SHORT_SEED" value="The seed is less than 128 bits long." />
<define name="BX_HD_NEW_INVALID_KEY" value="The seed produced an invalid key." />
</command>
<command symbol="hd-private" typeX="hd_private" category="WALLET" description="Derive a child HD (BIP32) private key from another HD private key.">
<option name="hard" shortcut="d" description="Signal to create a hardened key." />
<option name="index" type="uint32_t" description="The HD index, defaults to zero." />
<argument name="HD_PRIVATE_KEY" stdin="true" type="hd_private" description="The parent HD private key. If not specified the key is read from STDIN." />
</command>
<command symbol="hd-public" typeX="hd_public" category="WALLET" description="Derive a child HD (BIP32) public key from another HD public or private key.">
<option name="hard" shortcut="d" description="Signal to create a hardened key." />
<option name="index" type="uint32_t" description="The HD index, defaults to zero." />
<argument name="HD_PUBLIC_KEY" stdin="true" type="hd_key" description="The parent HD public or private key. If not specified the key is read from STDIN." />
<define name="BX_HD_PUBLIC_HARD_OPTION_CONFLICT" value="The hard option requires a private key." />
</command>
<command symbol="hd-to-address" typeX="address" category="WALLET" description="Convert a HD (BIP32) public or private key to a Bitcoin address.">
<argument name="HD_KEY" stdin="true" type="hd_key" description="The HD public or private key to convert. If not specified the key is read from STDIN." />
</command>
<command symbol="hd-to-ec" typeX="ec_private" category="WALLET" description="Convert a HD (BIP32) public or private key to the equivalent EC public or private key.">
<argument name="HD_KEY" stdin="true" type="hd_key" description="The HD public or private key to convert. If not specified the key is read from STDIN." />
</command>
<command symbol="hd-to-public" typeX="hd_public" category="WALLET" description="Derive the HD (BIP32) public key of a HD private key.">
<argument name="HD_PRIVATE_KEY" stdin="true" type="hd_private" description="The HD private key. If not specified the key is read from STDIN." />
</command>
<command symbol="hd-to-wif" typeX="wif" category="WALLET" description="Convert a HD (BIP32) private key to a WIF private key.">
<argument name="HD_PRIVATE_KEY" stdin="true" type="hd_private" description="The HD private key to convert. If not specified the key is read from STDIN." />
</command>
<command symbol="help" typeX="string" category="META" description="Get the list of commands.">
<argument name="COMMAND" description="The command for which help is requested." />
</command>
<command symbol="initchain" category="ONLINE" obsolete="true" description="Initialize a new blockchain database.">
<define name="BX_INITCHAIN_OBSOLETE" value="Server administration tools are no longer supported." />
</command>
<command symbol="input-sign" formerly="sign-input" typeX="endorsement" category="TRANSACTION" description="Create an endorsement for a transaction input.">
<option name="index" type="uint32_t" description="The ordinal position of the input within the transaction, defaults to zero." />
<option name="sign_type" type="hashtype" description="A token that indicates how the transaction should be hashed for signing. Options are 'all', 'none', 'single', and 'anyone_can_pay', defaults to 'all'." />
<option name="nonce" type="base16" description="The Base16 random value used to seed a signing nonce. Must be at least 128 bits in length. If not specified the deterministic signature algorithm is used." />
<argument name="EC_PRIVATE_KEY" required="true" type="ec_private" description="The Base16 EC private key to sign with."/>
<argument name="PREVOUT_SCRIPT" required="true" type="script" description="The previous output script to use in signing." />
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction. If not specified the transaction is read from STDIN."/>
<define name="BX_INPUT_SIGN_SHORT_NONCE" value="The optional nonce is less than 128 bits long." />
<define name="BX_INPUT_SIGN_INDEX_OUT_OF_RANGE" value="The index does not refer to an existing input." />
<define name="BX_INPUT_SIGN_FAILED" value="The signing operation failed." />
</command>
<command symbol="input-set" formerly="set-input" typeX="transaction" category="TRANSACTION" description="Assign a script to an existing transaction input.">
<option name="index" type="uint32_t" description="The ordinal position of the input within the transaction, defaults to zero." />
<argument name="ENDORSEMENT_SCRIPT" required="true" type="script" description="The endorsement script to assign to the input." />
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction. If not specified the transaction is read from STDIN."/>
<define name="BX_INPUT_SET_INDEX_OUT_OF_RANGE" value="The index does not refer to an existing input." />
</command>
<command symbol="input-validate" formerly="validsig" typeX="string" category="TRANSACTION" description="Validate a transaction input endorsement.">
<option name="index" type="uint32_t" description="The ordinal position of the input within the transaction, defaults to zero." />
<argument name="EC_PUBLIC_KEY" required="true" type="ec_public" description="The Base16 EC public key to verify against."/>
<argument name="PREVOUT_SCRIPT" required="true" type="script" description="The previous output script used in signing." />
<argument name="ENDORSEMENT" required="true" type="endorsement" description="The endorsement to validate."/>
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction. If not specified the transaction is read from STDIN."/>
<define name="BX_INPUT_VALIDATE_INDEX_OUT_OF_RANGE" value="The index does not refer to an existing input." />
<define name="BX_INPUT_VALIDATE_INDEX_VALID_ENDORSEMENT" value="The endorsement is valid." />
<define name="BX_INPUT_VALIDATE_INDEX_INVALID_ENDORSEMENT" value="The endorsement is not valid." />
</command>
<command symbol="message-sign" typeX="signature" category="MESSAGING" description="Create a message signature.">
<argument name="WIF" type="wif" required="true" description="The WIF private key to use for signing." />
<argument name="MESSAGE" stdin="true" type="raw" description="The binary message data to sign. If not specified the message is read from STDIN." />
</command>
<command symbol="message-validate" typeX="string" category="MESSAGING" description="Validate a message signature.">
<argument name="BITCOIN_ADDRESS" required="true" type="address" description="The Bitcoin address of the message signer."/>
<argument name="SIGNATURE" required="true" type="signature" description="The message signature." />
<argument name="MESSAGE" stdin="true" type="raw" description="The binary message data for which the signature applies. If not specified the message is read from STDIN." />
<define name="BX_MESSAGE_VALIDATE_INDEX_VALID_SIGNATURE" value="The signature is valid." />
<define name="BX_MESSAGE_VALIDATE_INDEX_INVALID_SIGNATURE" value="The signature is not valid." />
</command>
<command symbol="mnemonic-decode" typeX="base16" category="WALLET" description="Convert an Electrum mnemonic to its seed. WARNING: mnemonic should be generated from a random seed. WARNING: This implementation is deprecated in favor of BIP39.">
<argument name="WORD" stdin="true" limit="-1" description="The set of words from the Electrum word list. If not specified the words are read from STDIN." />
<define name="BX_EC_MNEMONIC_DECODE_SHORT_SENTENCE" value="At least three words are required." />
</command>
<command symbol="mnemonic-encode" formerly="mnemonic" typeX="string" multipleX="true" category="WALLET" description="Convert a seed to its Electrum mnemonic. WARNING: This implementation is deprecated in favor of BIP39.">
<argument name="SEED" stdin="true" type="base16" description="The Base16 randomness seed. Must be at least 128 bits in length. If not specified the seed is read from STDIN." />
<define name="BX_EC_MNEMONIC_ENCODE_SHORT_SEED" value="The seed is less than 128 bits long." />
</command>
<command symbol="mpk" category="ELECTRUM" obsolete="true" description="Extract a master public key from a deterministic wallet seed.">
<define name="BX_MPK_OBSOLETE" value="Electrum style key functions are obsolete. Use HD (BIP32) commands instead." />
</command>
<command symbol="newseed" category="ELECTRUM" obsolete="true" description="Create a new Electrum style deterministic wallet seed.">
<define name="BX_NEWSEED_OBSOLETE" value="Electrum style key functions are obsolete. Use HD (BIP32) commands instead." />
</command>
<command symbol="qrcode" category="WALLET" typeX="raw" stub="true" description="Generate a QR code image file for a Bitcoin address.">
<option name="file" type="string" description="The image file path. If not specified the image is written to STDOUT."/>
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The Bitcoin address. If not specified the address is read from STDIN."/>
<define name="BX_QRCODE_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="ripemd160" formerly="ripemd-hash" typeX="base16" category="HASH" description="Perform a RIPEMD160 hash of Base16 data.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 data to hash. If not specified the data is read from STDIN."/>
</command>
<command symbol="satoshi-to-btc" formerly="btc" typeX="btc" category="MATH" description="Convert satoshi to BTC.">
<argument name="SATOSHI" stdin="true" type="uint64_t" description="The whole number of satoshi to convert. If not specified the value is read from STDIN."/>
</command>
<command symbol="script-decode" formerly="showscript" typeX="string" multipleX="true" category="TRANSACTION" description="Decode a script to plain text tokens.">
<argument name="SCRIPT" fileX="true" stdin="true" type="base16" description="The Base16 script. If not specified the script is read from STDIN."/>
</command>
<command symbol="script-encode" formerly="rawscript" typeX="base16" category="TRANSACTION" description="Base16 encode a plain text script.">
<argument name="TOKEN" stdin="true" limit="-1" type="string" description="The plain text script tokens that make up the script. If not specified the tokens are read from STDIN."/>
</command>
<command symbol="script-to-address" formerly="scripthash" typeX="address" category="TRANSACTION" description="Create a BIP16 pay-to-script-hash address from an encoded script.">
<argument name="TOKEN" fileX="true" limit="-1" type="string" description="The script. If not specified the script is read from STDIN."/>
</command>
<command symbol="seed" typeX="base16" category="WALLET" description="Generate a pseudorandom seed.">
<option name="bit_length" type="size_t" default="128" description="The length of the seed in bits. Must be divisible by 8 and must not be less than 128." />
<define name="BX_SEED_BIT_LENGTH_UNSUPPORTED" value="The seed size is not supported." />
</command>
<command symbol="send-tx" formerly="sendtx-obelisk" typeX="string" category="ONLINE" network="true" description="Broadcast a transaction to the Bitcoin network via an Obelisk server.">
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction to send. If not specified the transaction is read from STDIN."/>
<define name="BX_SEND_TX_OUTPUT" value="Sent transaction at %1%." />
</command>
<command symbol="send-tx-node" formerly="sendtx-node" typeX="string" category="ONLINE" network="true" description="Broadcast a transaction to the Bitcoin network via a single Bitcoin network node.">
<option name="host" shortcut="t" type="string" default="localhost" description="The IP address or DNS name of the node. Defaults to localhost." />
<option name="port" type="uint16_t" default="8333" description="The IP port of the Bitcoin service on the node. Defaults to 8333, the standard for mainnet." />
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction to send. If not specified the transaction is read from STDIN."/>
<define name="BX_SEND_TX_NODE_OUTPUT" value="Sent transaction at %1%." />
</command>
<command symbol="send-tx-p2p" formerly="sendtx-p2p" typeX="string" category="ONLINE" network="true" description="Broadcast a transaction to the Bitcoin network via the Bitcoin peer-to-peer network.">
<option name="nodes" type="size_t" default="2" description="The number of network nodes to send the transaction to, defaults to two." />
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction to send. If not specified the transaction is read from STDIN."/>
<define name="BX_SEND_TX_P2P_SIGNAL" value="Caught signal: %1%" />
<define name="BX_SEND_TX_P2P_START_OKAY" value="Started." />
<define name="BX_SEND_TX_P2P_START_FAIL" value="Start failed: %1%" />
<define name="BX_SEND_TX_P2P_CHECK_OKAY" value="%1% connections." />
<define name="BX_SEND_TX_P2P_CHECK_FAIL" value="Check failed: %1%" />
<define name="BX_SEND_TX_P2P_SETUP_OKAY" value="Sending %1%." />
<define name="BX_SEND_TX_P2P_SETUP_FAIL" value="Setup failed: %1%" />
<define name="BX_SEND_TX_P2P_SEND_OKAY" value="Sent at %1%." />
<define name="BX_SEND_TX_P2P_SEND_FAIL" value="Send failed: %1%" />
</command>
<command symbol="sendtx-bci" category="ONLINE" obsolete="true" description="Broadcast a transaction to the Bitcoin network via blockchain.info.">
<define name="BX_SENDTX_BCI_OBSOLETE" value="This command is no longer supported. Use send-tx, send-tx-node or send-tx-p2p." />
</command>
<command symbol="settings" typeX="string" multipleX="true" category="META" description="Display the loaded configuration settings.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
</command>
<command symbol="sha160" typeX="base16" category="HASH" description="Perform a SHA160 (also known as SHA-1) hash of Base16 data.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 data to hash. If not specified the value is read from STDIN."/>
</command>
<command symbol="sha256" typeX="base16" category="HASH" description="Perform a SHA256 hash of Base16 data.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 data to hash. If not specified the value is read from STDIN."/>
</command>
<command symbol="sha512" typeX="base16" category="HASH" description="Perform a SHA512 hash of Base16 data.">
<argument name="BASE16" stdin="true" type="base16" description="The Base16 data to hash. If not specified the value is read from STDIN."/>
</command>
<command symbol="showblkhead" category="TRANSACTION" obsolete="true" description="Decode a block header.">
<define name="BX_SHOWBLKHEAD_OBSOLETE" value="This command is obsolete. Use fetch-header with formatting instead." />
</command>
<command symbol="stealth-decode" formerly="stealth-show-addr" typeX="stealth" category="STEALTH" description="Decode a stealth address.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="STEALTH_ADDRESS" type="stealth" stdin="true" description="The stealth payment address. If not specified the address is read from STDIN." />
</command>
<command symbol="stealth-encode" typeX="stealth" category="STEALTH" description="Encode a stealth payment address.">
<option name="prefix" type="base2" description="The Base2 stealth prefix that will be used to locate payments." />
<option name="signatures" type="byte" description="The number of signatures required to spend a payment to the stealth address. Defaults to the number of SPEND_PUBKEYs." />
<argument name="SCAN_PUBKEY" required="true" type="ec_public" description="The Base16 EC public key required to generate a payment." />
<argument name="SPEND_PUBKEY" limit="-1" type="ec_public" description="The set of Base16 EC public keys corresponding to private keys that will be able to spend payments to the address. Defaults to the value of SCAN_PUBKEY." />
<define name="BX_STEALTH_ENCODE_PREFIX_TOO_LONG" value="The prefix is limited to 32 bits." />
<define name="BX_STEALTH_ENCODE_SIGNATURES_OVERFLOW" value="The number of signatures is greater than the number of SPEND_PUBKEYs." />
<define name="BX_STEALTH_ENCODE_MULTISIG_NOT_SUPPORTED" value="WARNING: multiple signature stealth transactions are not yet fully supported." />
</command>
<command symbol="stealth-initiate" category="STEALTH" obsolete="true" description="Create a new stealth public key from which a payment address can be generated.">
<define name="BX_STEALTH_INITIATE_OBSOLETE" value="This command is obsolete. Use stealth-public instead." />
</command>
<command symbol="stealth-newkey" category="STEALTH" obsolete="true" description="Generate new keys and the associated stealth address.">
<define name="BX_STEALTH_NEWKEY_OBSOLETE" value="This command is no longer supported. Use stealth-encode instead." />
</command>
<command symbol="stealth-public" formerly="stealth-uncover" typeX="ec_public" category="STEALTH" description="Derive the stealth public key necessary to address and to identify a stealth payment.">
<argument name="SPEND_PUBKEY" required="true" type="ec_public" description="The Base16 EC spend public key of a stealth address." />
<argument name="SHARED_SECRET" stdin="true" type="ec_private" description="The Base16 EC shared secret corresponding to the SPEND_PUBKEY. If not specified the key is read from STDIN." />
<define name="BX_STEALTH_PUBLIC_OUT_OF_RANGE" value="Function exceeds valid range." />
</command>
<command symbol="stealth-secret" formerly="stealth-uncover-secret" typeX="ec_private" category="STEALTH" description="Derive the stealth private key necessary to spend a stealth payment.">
<argument name="SPEND_SECRET" required="true" type="ec_private" description="The Base16 EC spend secret for spending a stealth payment." />
<argument name="SHARED_SECRET" stdin="true" type="ec_private" description="The Base16 EC shared secret corresponding to the SPEND_PUBKEY. If not specified the key is read from STDIN." />
<define name="BX_STEALTH_SECRET_OUT_OF_RANGE" value="Sum exceeds valid range." />
</command>
<command symbol="stealth-shared" typeX="ec_private" category="STEALTH" description="Derive the secret shared between an ephemeral key pair and a scan key pair. Provide scan SECRET and ephemeral PUBKEY, or ephemeral SECRET and scan PUBKEY.">
<argument name="SECRET" required="true" type="ec_private" description="A Base16 EC private key. Either the scan or ephemeral secret." />
<argument name="PUBKEY" required="true" type="ec_public" description="A Base16 EC public key. Either the scan or ephemeral public key." />
<define name="BX_STEALTH_SHARED_OUT_OF_RANGE" value="Product exceeds valid range." />
</command>
<command symbol="tx-decode" typeX="transaction" category="TRANSACTION" description="Decode a Base16 transaction.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction. If not specified the transaction is read from STDIN."/>
</command>
<command symbol="tx-encode" typeX="transaction" category="TRANSACTION" description="Encode an unsigned transaction as Base16.">
<option name="lock_time" type="uint32_t" description="The transaction lock time." />
<option name="version" type="uint32_t" default="1" description="The transaction version." />
<option name="input" multiple="true" type="input" description="The set of transaction input points encoded as TXHASH:INDEX:SEQUENCE. TXHASH is a Base16 transaction hash. INDEX is the 32 bit input index in the context of the transaction. SEQUENCE is the optional 32 bit input sequence and defaults to the maximum value." />
<option name="output" multiple="true" type="output" description="The set of transaction output data encoded as TARGET:SATOSHI:SEED. TARGET is an address (including stealth or pay-to-script-hash) or a Base16 script. SATOSHI is the 32 bit spend amount in satoshi. SEED is required for stealth outputs and not used otherwise. The same seed should NOT be used for multiple outputs." />
<argument name="TRANSACTION" description="The encoded transaction file path. If not specified the transaction is written to STDOUT."/>
<define name="BX_TX_ENCODE_LOCKTIME_CONFLICT" value="The specified lock time is ineffective because all sequences are set to the maximum value." />
</command>
<!-- This was originally designed for PGP signing -->
<command symbol="tx-sign" formerly="signtx" typeX="transaction" multipleX="true" category="TRANSACTION" stub="true" description="Sign a set of transactions using a private key. Output is suitable for sending to Bitcoin network.">
<argument name="EC_PRIVATE_KEY" required="true" type="ec_private" description="The EC private key to be used for signing." />
<argument name="TRANSACTION" fileX="true" stdin="true" limit="-1" type="transaction" description="The set of Base16 transactions. If not specified the transactions are read from STDIN."/>
<define name="BX_TX_SIGN_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="uri-decode" typeX="uri" category="WALLET" description="Validate and decompose a Bitcoin URI into its parts.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="URI" type="uri" stdin="true" description="The Bitcoin URI to decode. The URI should be quoted when entered on the command line. If not specified the URI is read from STDIN." />
<define name="BX_URI_DECODE_NOT_BITCOIN" value="The URI is not of the 'bitcoin' scheme." />
</command>
<command symbol="uri-encode" category="WALLET" description="Compose a Bitcoin URI from specified parts.">
<option name="amount" type="btc" description="The value of the amount parameter." />
<option name="label" type="string" description="The value of the label parameter." />
<option name="message" type="string" description="The value of the label parameter." />
<option name="request" type="uri" description="The value of the payment request parameter." />
<option name="stealth" type="stealth" description="The stealth address for the address part." />
<argument name="BITCOIN_ADDRESS" type="address" description="The Bitcoin address for the address part." />
<define name="BX_URI_ENCODE_ADDRESS_CONFLICT" value="Only one Bitcoin or stealth address may specified." />
</command>
<command symbol="validate-tx" formerly="validtx" typeX="string" category="ONLINE" network="true" description="Determine if a transaction is valid for submission to the blockchain. Requires an Obelisk server connection.">
<argument name="TRANSACTION" fileX="true" stdin="true" type="transaction" description="The Base16 transaction. If not specified the transaction is read from STDIN."/>
<define name="BX_VALIDATE_TX_VALID" value="The transaction is valid." />
<define name="BX_VALIDATE_TX_INVALID_INPUT" value="The transaction has an invalid input at index %1%." />
<define name="BX_VALIDATE_TX_UNCONFIRMED_INPUTS" value="The transaction is valid, with unconfirmed inputs at index: %1%." />
</command>
<command symbol="wallet" category="WALLET" obsolete="true" description="Experimental command line wallet.">
<define name="BX_WALLET_OBSOLETE" value="This experimental command is no longer supported." />
</command>
<command symbol="watch-address" formerly="monitor" typeX="transaction" category="ONLINE" network="true" description="Watch the network for transactions in which an address participates. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="BITCOIN_ADDRESS" stdin="true" type="address" description="The participating Bitcoin address. If not specified the address is read from STDIN." />
<define name="BX_WATCH_ADDRESS_ADDRESS_WAITING" value="Watching address: %1%..." />
</command>
<!--<option name="scan_secret" type="ec_private" description="The Base16 EC private key to use locally in confirming stealth transactions."/>-->
<!--<option name="scan_pubkey" shortcut="p" type="ec_public" description="The Base16 EC public key to use locally in confirming stealth transactions."/>-->
<!--<command symbol="watch-stealth" typeX="transaction" category="ONLINE" network="true" description="Watch the network for transactions by stealth prefix. Requires an Obelisk server connection. WARNING: THIS COMMAND IS EXPERIMENTAL.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="PREFIX" stdin="true" type="base2" description="The Base2 stealth prefix to watch. If not specified the prefix is read from STDIN." />
<define name="BX_WATCH_STEALTH_PREFIX_WAITING" value="Watching stealth prefix: %1%..." />
<define name="BX_WATCH_STEALTH_PREFIX_TOO_LONG" value="WARNING: stealth prefix is limited to 32 bits." />
</command>-->
<command symbol="watch-tx" formerly="watchtx" typeX="transaction" category="ONLINE" network="true" stub="true" description="Watch the network for a transaction by hash. Requires an Obelisk server connection.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="HASH" stdin="true" type="btc256" description="The Base16 transaction hash to watch. If not specified the hash is read from STDIN." />
<define name="BX_WATCH_TX_WAITING" value="Watching transaction: %1%..." />
<define name="BX_WATCH_TX_NOT_IMPLEMENTED" value="This command is not yet implemented." />
</command>
<command symbol="wif-to-ec" typeX="ec_private" category="WALLET" description="Convert a WIF private key to an EC private key.">
<argument name="WIF" stdin="true" type="wif" description="The value to convert. If not specified the value is read from STDIN."/>
</command>
<command symbol="wif-to-public" typeX="ec_public" category="WALLET" description="Derive the EC public key from a WIF private key.">
<argument name="WIF" stdin="true" type="wif" description="The WIF private key. If not specified the value is read from STDIN."/>
</command>
<command symbol="wrap-decode" formerly="unwrap" typeX="wrapper" category="ENCODING" description="Validate the checksum of a Base16 data and recover its version byte and data.">
<option name="format" type="encoding" description="The output format. Options are 'info', 'json' and 'xml', defaults to 'info'." />
<argument name="WRAPPED" stdin="true" type="wrapper" description="The Base16 data to unwrap. If not specified the value is read from STDIN." />
</command>
<command symbol="wrap-encode" formerly="wrap" typeX="wrapper" category="ENCODING" description="Add a version byte and checksum to Base16 data.">
<option name="version" type="byte" description="The desired version number." />
<argument name="PAYLOAD" stdin="true" type="base16" description="The Base16 data to wrap. If not specified the value is read from STDIN." />
</command>
</generate>