Matt Whitlock [ARCHIVE] on Nostr: 📅 Original date posted:2014-04-15 📝 Original message:On Tuesday, 15 April 2014, ...
📅 Original date posted:2014-04-15
📝 Original message:On Tuesday, 15 April 2014, at 6:39 pm, Chris Beams wrote:
> Looks interesting. Is the source available?
The intent is to open-source it. We will do so when I'm confident that we have all the kinks worked out.
Here's what it can do presently:
$ ./btctool
usage: ./btctool <function> [<args>]
encode16
Encode stdin to hex.
decode16 [<hex>]
Decode hex from stdin or string.
encode64 [<hex>]
Encode stdin or octets to Base64.
decode64 [<base64>]
Decode Base64 from stdin or string.
encode58 <version> [<hex>]
Encode stdin or octets to Base58Check.
decode58 [<base58>]
Decode Base58Check from stdin or string.
disassemble [<script>]
Disassemble hex script.
sha256 [<hex>]
Hash stdin or octets using SHA-256.
rmd160 [<hex>]
Hash stdin or octets using RIPEMD-160.
privkey [<hex>]
Derive private key from stdin or octets.
pubkey [<privkey>]
Derive public key from private key.
address [<pubkey>]
Derive address from public key.
address <m> [<pubkey>...]
Derive m-of-n P2SH address from public keys.
encrypt [<privkey>]
Encrypt private key per BIP38.
decrypt [<privkey>]
Decrypt private key per BIP38.
shares <m> <n> [<privkey>]
Distribute private key into m-of-n shares.
join [<share>...]
Join shares to reconstitute private key.
privkeys <k> [<privseed>]
Derive k private keys from private seed.
pubkeys <k> [<pubseed>]
Derive k public keys from public seed.
addresses <k> [<pubseed>]
Derive k addresses from public seed.
addresses <k> <m> [<pubseed>...]
Derive k m-of-n P2SH addresses from public seeds.
$ ./chaintool
usage: ./chaintool <function> [<args>]
init
Initialize a new cache file.
add <label> <pubkey>
Add a public key.
add <label> :<pubseed>
Add a public seed.
add <label> <m> {<pubkey>|:<pubseed>}...
Add public keys/seeds for m-of-n P2SH.
rm <label>
Remove a public key or seed.
ls
List public keys and seeds.
sync <blocksdir>
Synchronize with block chain.
tip
Print hash of block at tip of main chain.
getbalance [<label>...]
Get available balance.
listunspent [<label>...]
List unspent outputs in JSON.
createtx [<fee>] [<label>...]
Create transaction from address+amount pairs on stdin.
signtx <tx> [{<privkey>|<privseed>}...]
Sign transaction with private key(s)/seed(s).
Published at
2023-06-07 15:18:38Event JSON
{
"id": "20b9be1421bd2185eab0681b70fef95b31f308faf91fcf359893c25d60eb3aa6",
"pubkey": "f00d0858b09287e941ccbc491567cc70bdbc62d714628b167c1b76e7fef04d91",
"created_at": 1686151118,
"kind": 1,
"tags": [
[
"e",
"b1081907a3decdbf6a84447f24c9c7defcfbbfd883e2139aec6fd057d31eb12a",
"",
"root"
],
[
"e",
"2b718eff8e69de0ed0a9e2bc4052c3a0c9b0d24c42462e4f24a23b5a5285ef32",
"",
"reply"
],
[
"p",
"67d068d66210043001fce4b17d5084112d3e379c073f25548dfcfa3bb9b770bf"
]
],
"content": "📅 Original date posted:2014-04-15\n📝 Original message:On Tuesday, 15 April 2014, at 6:39 pm, Chris Beams wrote:\n\u003e Looks interesting. Is the source available?\n\nThe intent is to open-source it. We will do so when I'm confident that we have all the kinks worked out.\n\nHere's what it can do presently:\n\n$ ./btctool\nusage: ./btctool \u003cfunction\u003e [\u003cargs\u003e]\n encode16\n Encode stdin to hex.\n decode16 [\u003chex\u003e]\n Decode hex from stdin or string.\n encode64 [\u003chex\u003e]\n Encode stdin or octets to Base64.\n decode64 [\u003cbase64\u003e]\n Decode Base64 from stdin or string.\n encode58 \u003cversion\u003e [\u003chex\u003e]\n Encode stdin or octets to Base58Check.\n decode58 [\u003cbase58\u003e]\n Decode Base58Check from stdin or string.\n disassemble [\u003cscript\u003e]\n Disassemble hex script.\n sha256 [\u003chex\u003e]\n Hash stdin or octets using SHA-256.\n rmd160 [\u003chex\u003e]\n Hash stdin or octets using RIPEMD-160.\n privkey [\u003chex\u003e]\n Derive private key from stdin or octets.\n pubkey [\u003cprivkey\u003e]\n Derive public key from private key.\n address [\u003cpubkey\u003e]\n Derive address from public key.\n address \u003cm\u003e [\u003cpubkey\u003e...]\n Derive m-of-n P2SH address from public keys.\n encrypt [\u003cprivkey\u003e]\n Encrypt private key per BIP38.\n decrypt [\u003cprivkey\u003e]\n Decrypt private key per BIP38.\n shares \u003cm\u003e \u003cn\u003e [\u003cprivkey\u003e]\n Distribute private key into m-of-n shares.\n join [\u003cshare\u003e...]\n Join shares to reconstitute private key.\n privkeys \u003ck\u003e [\u003cprivseed\u003e]\n Derive k private keys from private seed.\n pubkeys \u003ck\u003e [\u003cpubseed\u003e]\n Derive k public keys from public seed.\n addresses \u003ck\u003e [\u003cpubseed\u003e]\n Derive k addresses from public seed.\n addresses \u003ck\u003e \u003cm\u003e [\u003cpubseed\u003e...]\n Derive k m-of-n P2SH addresses from public seeds.\n\n$ ./chaintool\nusage: ./chaintool \u003cfunction\u003e [\u003cargs\u003e]\n init\n Initialize a new cache file.\n add \u003clabel\u003e \u003cpubkey\u003e\n Add a public key.\n add \u003clabel\u003e :\u003cpubseed\u003e\n Add a public seed.\n add \u003clabel\u003e \u003cm\u003e {\u003cpubkey\u003e|:\u003cpubseed\u003e}...\n Add public keys/seeds for m-of-n P2SH.\n rm \u003clabel\u003e\n Remove a public key or seed.\n ls\n List public keys and seeds.\n sync \u003cblocksdir\u003e\n Synchronize with block chain.\n tip\n Print hash of block at tip of main chain.\n getbalance [\u003clabel\u003e...]\n Get available balance.\n listunspent [\u003clabel\u003e...]\n List unspent outputs in JSON.\n createtx [\u003cfee\u003e] [\u003clabel\u003e...]\n Create transaction from address+amount pairs on stdin.\n signtx \u003ctx\u003e [{\u003cprivkey\u003e|\u003cprivseed\u003e}...]\n Sign transaction with private key(s)/seed(s).",
"sig": "7986398696017a1bbe21b26e523cfdf19e4415f3b4a70a97d8055d77f3c843533dc3e1c68822e6d3928e05e990d516319f0995cca14784faba5a6e8ec75d004c"
}