(last generated with veil v1.0.0.6)



deterministiczerocoinstate


The current state of the mintpool of the deterministic zerocoin wallet.

Examples:

veil-cli mintpoolstatus

exportzerocoins include_spent (denomination)


Exports zerocoin mints that are held by this wallet.dat file

Note: Do not EVER send this data to anyone or store it insecurely! These are effectively your private keys for your zerocoins and provide ownership of them!


Arguments:
1. "include_spent" (bool, required) Include mints that have already been spent
2. "denomination" (integer, optional) Export a specific denomination of zerocoin

Result:
[ (array of json object)
{
"d": n, (numeric) the mint's zerocoin denomination
"p": "pubcoin", (string) The public coin
"s": "serial", (string) The secret serial number
"r": "random", (string) The secret random number
"t": "txid", (string) The txid that the coin was minted in
"h": n, (numeric) The height the tx was added to the blockchain
"u": used, (boolean) Whether the mint has been spent
"v": version, (numeric) The version of the zerocoin
"k": "privkey" (string) The zerocoin private key (V2+ zerocoin only)
"sh": "serialhash" (string) The zerocoin's serialhash
}
,...
]

Examples:

veil-cli exportzerocoins false 5


Editors note: The above is obviously an invalid example, as it specifies a non-existent denomination of zerocoin, but intentionally so, as we wouldn't want to provide a single line that would without adjustment reveal data enabling the trivial harvesting of a users coins, if someone were to paste this command without knowing what it does.


getzerocoinbalance



Return the wallet's total zerocoin balance.

Result:
amount (numeric) Total zerocoin balance

Examples:

veil-cli getzerocoinbalance



getarchivedzerocoin



Display zerocoins that were archived because they were believed to be orphans.
Provides enough information to recover mint if it was incorrectly archived.

Result:
[
{
"txid": "xxx", (string) Transaction ID for archived mint
"denomination": amount, (numeric) Denomination value
"serial": "xxx", (string) Serial number in hex format
"randomness": "xxx", (string) Hex encoded randomness
"pubcoin": "xxx" (string) Pubcoin in hex format
}
,...
]
Examples:

veil-cli getarchivedzerocoin



importzerocoins importdata



[{"d":denomination,"p":"pubcoin_hex","s":"serial_hex","r":"randomness_hex","t":"txid","h":height, "u":used},{"d":...}]

Import zerocoin mints.
Adds raw zerocoin mints to the wallet.dat
Note it is recommended to use the json export created from the exportzerocoins RPC call.

Arguments:
1. "importdata" (string, required) A json array of json objects containing zerocoin mints

Result:
{
"added": n, (numeric) The quantity of zerocoin mints that were added
"value": amount (numeric) The total zerocoin value of zerocoin mints that were added
}
Examples:


veil-cli importzerocoins '[{"d":100,"p":"mypubcoin","s":"myserial","r":"randomness_hex","t":"mytxid","h":104923, "u":false},{"d":5,...}]'


Editors note: For substantial numbers of zerocoins this should be done using the command line interface and not the Debug Console, which has a lower capacity for input and output text in a command. Be sure to strip out all spaces and line-endings after pasting the `exportzerocoins false` data before pasting the data between the single quotes in the above command. A good programmers' text editor should have a method for selecting and replacing with nothing, the spaces and line-endings, such as **\s** in BBEdit. This data is highly sensitive, and should be deleted once imported, but at least the 10000 denomination zerocoins should win a stake and invalidate the data used in the import before too long. I might suggest large numbers of "tens" be spent before this process, possibly for reminting to larger denominations in order to reduce the amount of zerocoin data to be exported and imported.


listmintedzerocoins (fVerbose) (fMatureOnly)


List all zerocoin mints in the wallet.

Arguments:
1. fVerbose (boolean, optional, default=false) Output mints metadata
2. fMatureOnly (boolean, optional, default=false) List only mature mints. (Set only if fVerbose is specified)

Result (with fVerbose=false):
[
"xxx" (string) Pubcoin in hex format
,...
]

Result (with fVerbose=true):
[
{
"serial hash": "xxx", (string) Mint serial hash in hex format
"version": n, (numeric) Zerocoin version number
"zerocoin ID": "xxx", (string) Pubcoin in hex format
"denomination": n, (numeric) Coin denomination
"confirmations": n (numeric) Number of confirmations
}
,...]

Examples:

veil-cli listmintedzerocoins
veil-cli listmintedzerocoins true true



listspentzerocoins



List all the spent zerocoin mints in the wallet.

Result:
[
"xxx" (string) Pubcoin in hex format
,...
]

Examples:


veil-cli listspentzerocoins



listzerocoinamounts



Get information about your zerocoin amounts.

Result:
[
{
"denomination": n, (numeric) Denomination Value
"mints": n (numeric) Number of mints
}
,...]

Examples:

veil-cli listzerocoinamounts



mintzerocoin amount (utxos)



Mint the specified zerocoin amount.

Arguments:
1. amount (numeric, required) Enter an amount of veil to convert to zerocoin
2. allowbasecoin (bool, optional) Whether to allow transparent, non-private, coins to be included (WARNING: setting to true will result in loss of privacy and can reveal information about your wallet to the public!!
3. utxos (string, optional) A json array of objects
Each object needs the txid (string) and vout (numeric)
[
{
"txid":"txid", (string) The transaction id
"vout": n (numeric) The output number
}
,...
]

Result:
[
{
"txid": "xxx", (string) Transaction ID
"value": amount, (numeric) Minted amount
"pubcoin": "xxx", (string) Pubcoin in hex format
"randomness": "xxx", (string) Hex encoded randomness
"serial": "xxx", (string) Serial in hex format
"time": nnn (numeric) Time to mint this transaction
}
,...
]

veil-cli mintzerocoin false 50


Mint 13 from a specific output:


veil-cli mintzerocoin 13 "[{\"txid\":\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\",\"vout\":1}]"



reconsiderzerocoins



Check archived zerocoin list to see if any mints were added to the blockchain.

Result:
[
{
"txid" : "xxx", (string) the mint's zerocoin denomination
"denomination" : amount, (numeric) the mint's zerocoin denomination
"pubcoin" : "xxx", (string) The mint's public identifier
"height" : n (numeric) The height the tx was added to the blockchain
}
,...
]

Examples:


veil-cli reconsiderzerocoins
curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "reconsiderzerocoins", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

resetspentzerocoin



Scan the blockchain for all of the zerocoins that are held in the wallet.dat.
Reset mints that are considered spent that did not make it into the blockchain.

Result:
{
"restored": [ (array) JSON array of restored objects
{
"serial": "xxx" (string) Serial in hex format
}
,...
]
}
Examples:


veil-cli resetspentzerocoin



resetmintzerocoin (fullscan)



Scan the blockchain for all of the zerocoins that are held in the wallet.dat.
Update any meta-data that is incorrect. Archive any mints that are not able to be found.

Arguments:
1. fullscan (boolean, optional) Rescan each block of the blockchain
WARNING - may take 30+ minutes!

Result:
{
"updated": [ (array) JSON array of updated mints
"xxx" (string) Hex encoded mint
,..
],
"archived": [ (array) JSON array of archived mints
"xxx" (string) Hex encoded mint
,...
]
}
Examples:


veil-cli resetmintzerocoin true



rescanblockchain ("start_height") ("stop_height")



Rescan the local blockchain for wallet related transactions.

Arguments:
1. "start_height" (numeric, optional) block height where the rescan should start
2. "stop_height" (numeric, optional) the last block height that should be scanned

Result:
{
"start_height" (numeric) The block height where the rescan has started. If omitted, rescan started from the genesis block.
"stop_height" (numeric) The height of the last rescanned block. If omitted, rescan stopped at the chain tip.
}

Examples:

veil-cli rescanblockchain 100000 120000



searchdeterministiczerocoin



Make an extended search for deterministically generated zerocoins that have not yet been recognized by the wallet.

Arguments
1. "count" (numeric) Which sequential zerocoin to start with
2. "range" (numeric) How many zerocoins to generate
3. "threads" (numeric) How many threads should this operation consume

Examples

veil-cli searchdeterministiczerocoin 1, 100, 2


What does searchdeterministiczerocoin do?

You can compare searchdeterministiczerocoin with searching for specific keys within a bunch of keys.


With count you start from a specific key and search for a range in the keys.


For example, if you have 1000 keys and you want to find the correct key, you need to search between all these keys to find the correct one. To find the specific key you need to do a search from count 0 to specific range, with the amount of threads you can increase the search speed.


spendzerocoin amount mintchange minimizechange securitylevel ( "address" )



Spend zerocoin to a veil address.

Arguments:
1. amount (numeric, required) Amount to spend
2. mintchange (boolean, required) Re-mint any leftover change
3. minimizechange (boolean, required) Try to minimize the returning change [false]
4. securitylevel (numeric, required) Amount of checkpoints to add to the accumulator
A checkpoint contains 10 blocks worth of zerocoinmints.
The more checkpoints that are added, the more untraceable the transaction.
Use [100] to add the maximum amount of checkpoints available.
Adding more checkpoints makes the minting process take longer
5. "address" (string, optional, default=change) Send to specified address or to a new change address.
If there is change then an address is required

Result:
{
"txid": "xxx", (string) Transaction hash
"bytes": nnn, (numeric) Transaction size
"fee": amount, (numeric) Transaction fee (if any)
"spends": [ (array) JSON array of input objects
{
"denomination": nnn, (numeric) Denomination value
"pubcoin": "xxx", (string) Pubcoin in hex format
"serial": "xxx", (string) Serial number in hex format
"acc_checksum": "xxx", (string) Accumulator checksum in hex format
}
,...
],
"outputs": [ (array) JSON array of output objects
{
"value": amount, (numeric) Value in veil
"address": "xxx" (string) veil address or "zerocoinmint" for reminted change
}
,...
]
}

Examples:


veil-cli spendzerocoin 5000 false true 100 "VSJRSsuU9zfyrvxVaAEFQqK4MxZg6vgeS6"



spendzerocoinmints mints_list ("address")


Spend zerocoin mints to a VEIL address.


Arguments:

1. mints_list (string, required) A json array of zerocoin mints serial hashes

2. "address" (string, optional, default=change) Send to specified address or to a new change address


Result:

{

"txid": "xxx", (string) Transaction hash

"bytes": nnn, (numeric) Transaction size

"fee": amount, (numeric) Transaction fee (if any)

"spends": [ (array) JSON array of input objects

{

"denomination": nnn, (numeric) Denomination value

"pubcoin": "xxx", (string) Pubcoin in hex format

"serial": "xxx", (string) Serial number in hex format

"acc_checksum": "xxx", (string) Accumulator checksum in hex format

}

,...

],

"outputs": [ (array) JSON array of output objects

{

"value": amount, (numeric) Value in VEIL

"address": "xxx" (string) VEIL address or "zerocoinmint" for reminted change

}

,...

]

}


Examples:

veil-cli spendzerocoinmints '["0d8c16eee7737e3cc1e4e70dc006634182b175e039700931283b202715a0818f", "dfe585659e265e6a509d93effb906d3d2a0ac2fe3464b2c3b6d71a3ef34c8ad7"]' "VSJRSsuU9zfyrvxVaAEFQqK4MxZg6vgeS6"



rescanzerocoinwallet


Scan the blockchain for all of the zerocoins that are held in the wallet.dat file.