<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sonny</id>
	<title>Bitcoin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sonny"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/wiki/Special:Contributions/Sonny"/>
	<updated>2026-04-18T01:09:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Original_Bitcoin_client/API_calls_list&amp;diff=19168</id>
		<title>Original Bitcoin client/API calls list</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Original_Bitcoin_client/API_calls_list&amp;diff=19168"/>
		<updated>2011-11-10T21:56:44Z</updated>

		<summary type="html">&lt;p&gt;Sonny: getreceivedbyaddress clarification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitcoin API call list (as of version 0.4.0)&lt;br /&gt;
&lt;br /&gt;
== Common operations ==&lt;br /&gt;
&lt;br /&gt;
=== Listing my bitcoin addresses ===&lt;br /&gt;
&lt;br /&gt;
Listing the bitcoin [[address|addresses]] in your wallet is easily done via &#039;&#039;listreceivedbyaddress&#039;&#039;. It normally lists only addresses which already have received transactions, however you can list all the addresses by setting the first argument to 0, and the second one to true.&lt;br /&gt;
&lt;br /&gt;
[[accounts explained|Accounts]] are used to organize addresses.&lt;br /&gt;
&lt;br /&gt;
== Full list ==&lt;br /&gt;
&lt;br /&gt;
Required arguments are denoted inside &amp;amp;lt; and &amp;amp;gt; Optional arguments are inside [ and ].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Parameters !! Description !! Requires unlocked wallet? (v0.4.0+)&lt;br /&gt;
|-&lt;br /&gt;
| backupwallet || &amp;lt;destination&amp;gt; || Safely copies wallet.dat to destination, which can be a directory or a path with filename. || N&lt;br /&gt;
|-&lt;br /&gt;
| encryptwallet || &amp;lt;passphrase&amp;gt; || Encrypts the wallet with &amp;lt;passphrase&amp;gt;. || N&lt;br /&gt;
|-&lt;br /&gt;
| getaccount || &amp;lt;bitcoinaddress&amp;gt; || Returns the account associated with the given address. || N&lt;br /&gt;
|-&lt;br /&gt;
| getaccountaddress || &amp;lt;account&amp;gt; || Returns the current bitcoin address for receiving payments to this account. || N&lt;br /&gt;
|-&lt;br /&gt;
| getaddressesbyaccount || &amp;lt;account&amp;gt; || Returns the list of addresses for the given account. || N&lt;br /&gt;
|-&lt;br /&gt;
| getbalance || [account] [minconf=1] || If [account] is not specified, returns the server&#039;s total available balance.&amp;lt;br/&amp;gt;If [account] is specified, returns the balance in the account. || N&lt;br /&gt;
|-&lt;br /&gt;
| getblockbycount || height || Dumps the block existing at specified height. &#039;&#039;&#039;Note: this is not available in the official release&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| getblockcount || || Returns the number of blocks in the longest block chain. || N&lt;br /&gt;
|-&lt;br /&gt;
| getblocknumber || || Returns the block number of the latest block in the longest block chain. || N&lt;br /&gt;
|-&lt;br /&gt;
| getconnectioncount || || Returns the number of connections to other nodes. || N&lt;br /&gt;
|-&lt;br /&gt;
| getdifficulty || || Returns the proof-of-work difficulty as a multiple of the minimum difficulty. || N&lt;br /&gt;
|-&lt;br /&gt;
| getgenerate || || Returns true or false whether bitcoind is currently generating hashes || N&lt;br /&gt;
|-&lt;br /&gt;
| gethashespersec || || Returns a recent hashes per second performance measurement while generating.&lt;br /&gt;
|-&lt;br /&gt;
| getinfo || || Returns an object containing various state info.&lt;br /&gt;
|-&lt;br /&gt;
| getnewaddress || [account] || Returns a new bitcoin address for receiving payments.  If [account] is specified (recommended), it is added to the address book so payments received with the address will be credited to [account].&lt;br /&gt;
|-&lt;br /&gt;
| getreceivedbyaccount || [account] [minconf=1] || Returns the total amount received by addresses with [account] in transactions with at least [minconf] confirmations. If [account] not provided return will include all transactions to all accounts. (version 0.3.24-beta)&lt;br /&gt;
|-&lt;br /&gt;
| getreceivedbyaddress || &amp;lt;bitcoinaddress&amp;gt; [minconf=1] || Returns the total amount received by &amp;lt;bitcoinaddress&amp;gt; in transactions with at least [minconf] confirmations. While some might consider this obvious, value reported by this only considers *receiving* transactions. It does not check payments that have been made *from* this address. In other words, this is not &amp;quot;getaddressbalance&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| gettransaction || &amp;lt;txid&amp;gt; || Returns an object about the given transaction containing:&lt;br /&gt;
* &amp;quot;amount&amp;quot; : total amount of the transaction&lt;br /&gt;
* &amp;quot;confirmations&amp;quot; :  number of confirmations of the transaction&lt;br /&gt;
* &amp;quot;txid&amp;quot; : the transaction ID&lt;br /&gt;
* &amp;quot;time&amp;quot; : time the transaction occurred&lt;br /&gt;
* &amp;quot;details&amp;quot; - An array of objects containing:&lt;br /&gt;
** &amp;quot;account&amp;quot;&lt;br /&gt;
** &amp;quot;address&amp;quot;&lt;br /&gt;
** &amp;quot;category&amp;quot;&lt;br /&gt;
** &amp;quot;amount&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[getwork]] || [data] || If [data] is not specified, returns formatted hash data to work on:&lt;br /&gt;
* &amp;quot;midstate&amp;quot; : precomputed hash state after hashing the first half of the data&lt;br /&gt;
* &amp;quot;data&amp;quot; : block data&lt;br /&gt;
* &amp;quot;hash1&amp;quot; : formatted hash buffer for second hash&lt;br /&gt;
* &amp;quot;target&amp;quot; : little endian hash target&lt;br /&gt;
If [data] is specified, tries to solve the block and returns true if it was successful.&lt;br /&gt;
|-&lt;br /&gt;
| help || [command] || List commands, or get help for a command. || N&lt;br /&gt;
|-&lt;br /&gt;
| keypoolrefill || || Fills the keypool, requires wallet passphrase to be set. || Y&lt;br /&gt;
|-&lt;br /&gt;
| listaccounts || [minconf=1] || Returns Object that has account names as keys, account balances as values.&lt;br /&gt;
|-&lt;br /&gt;
| listreceivedbyaccount || [minconf=1] [includeempty=false] || Returns an array of objects containing:&lt;br /&gt;
* &amp;quot;account&amp;quot; : the account of the receiving addresses&lt;br /&gt;
* &amp;quot;amount&amp;quot; : total amount received by addresses with this account&lt;br /&gt;
* &amp;quot;confirmations&amp;quot; : number of confirmations of the most recent transaction included&lt;br /&gt;
|-&lt;br /&gt;
| listreceivedbyaddress || [minconf=1] [includeempty=false] || Returns an array of objects containing:&lt;br /&gt;
* &amp;quot;address&amp;quot; : receiving address&lt;br /&gt;
* &amp;quot;account&amp;quot; : the account of the receiving address&lt;br /&gt;
* &amp;quot;amount&amp;quot; : total amount received by the address&lt;br /&gt;
* &amp;quot;confirmations&amp;quot; : number of confirmations of the most recent transaction included&lt;br /&gt;
To get a list of accounts on the system, execute bitcoind listreceivedbyaddress 0 true&lt;br /&gt;
|-&lt;br /&gt;
| listtransactions || [account] [count=10] [from=0] || Returns up to [count] most recent transactions skipping the first [from] transactions for account [account]. If [account] not provided will return recent transaction from all accounts.&lt;br /&gt;
|-&lt;br /&gt;
| move || &amp;lt;fromaccount&amp;gt; &amp;lt;toaccount&amp;gt; &amp;lt;amount&amp;gt; [minconf=1] [comment] || Move from one account in your wallet to another.&lt;br /&gt;
|-&lt;br /&gt;
| sendfrom || &amp;lt;fromaccount&amp;gt; &amp;lt;tobitcoinaddress&amp;gt; &amp;lt;amount&amp;gt; [minconf=1] [comment] [comment-to] || &amp;lt;amount&amp;gt; is a real and is rounded to 8 decimal places. Will send the given amount to the given address, ensuring the account has a valid balance using [minconf] confirmations. Returns the transaction ID if successful (not in JSON object). || Y&lt;br /&gt;
|-&lt;br /&gt;
| sendmany || &amp;lt;fromaccount&amp;gt; {address:amount,...} [minconf=1] [comment] || amounts are double-precision floating point numbers || Y&lt;br /&gt;
|-&lt;br /&gt;
| sendtoaddress || &amp;lt;bitcoinaddress&amp;gt; &amp;lt;amount&amp;gt; [comment] [comment-to] || &amp;lt;amount&amp;gt; is a real and is rounded to 8 decimal places. Returns the transaction ID &amp;lt;txid&amp;gt; if successful. || Y&lt;br /&gt;
|-&lt;br /&gt;
| setaccount || &amp;lt;bitcoinaddress&amp;gt; &amp;lt;account&amp;gt; || Sets the account associated with the given address. Assigning address that is already assigned to the same account will create a new address associated with that account. &lt;br /&gt;
|-&lt;br /&gt;
| setgenerate || &amp;lt;generate&amp;gt; [genproclimit] || &amp;lt;generate&amp;gt; is true or false to turn generation on or off.&amp;lt;br/&amp;gt;Generation is limited to [genproclimit] processors, -1 is unlimited.&lt;br /&gt;
|-&lt;br /&gt;
| settxfee || &amp;lt;amount&amp;gt; || &amp;lt;amount&amp;gt; is a real and is rounded to the nearest 0.00000001&lt;br /&gt;
|-&lt;br /&gt;
| stop || || Stop bitcoin server. || N&lt;br /&gt;
|-&lt;br /&gt;
| validateaddress || &amp;lt;bitcoinaddress&amp;gt; || Return information about &amp;lt;bitcoinaddress&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| walletlock ||  || Removes the wallet encryption key from memory, locking the wallet. After calling this method,  you will need to call walletpassphrase again before being able to call any methods which require the wallet to be unlocked.&lt;br /&gt;
|-&lt;br /&gt;
| walletpassphrase || &amp;lt;passphrase&amp;gt; &amp;lt;timeout&amp;gt; || Stores the wallet decryption key in memory for &amp;lt;timeout&amp;gt; seconds. || N&lt;br /&gt;
|-&lt;br /&gt;
| walletpassphrasechange || &amp;lt;oldpassphrase&amp;gt; &amp;lt;newpassphrase&amp;gt; || Changes the wallet passphrase from &amp;lt;oldpassphrase&amp;gt; to &amp;lt;newpassphrase&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Original Bitcoin client]]&lt;br /&gt;
* [[API reference (JSON-RPC)]]&lt;br /&gt;
* [[Lazy_API]]&lt;br /&gt;
* [[Elis-API]] - A more detailed version of this page - for developers!&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Sonny</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Privacy&amp;diff=18921</id>
		<title>Privacy</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Privacy&amp;diff=18921"/>
		<updated>2011-11-05T22:21:48Z</updated>

		<summary type="html">&lt;p&gt;Sonny: added link to Bitcoin Fog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While the Bitcoin technology [http://www.bitcointalk.org/index.php?topic=241.0 can support] strong anonymity, the current implementation is usually not very anonymous.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
The main problem is that every transaction is publicly logged. Anyone can see the flow of Bitcoins from address to address (see first image). Alone, this information can&#039;t identify anyone because the addresses are just random numbers. However, if &#039;&#039;any&#039;&#039; of the addresses in a transaction&#039;s past or future can be tied to an actual identity, it might be possible to work from that point and figure out who owns all of the other addresses. This identity information might come from network analysis, surveillance, or just Googling the address. The officially-encouraged practice of using a new address for every transaction is designed to make this attack more difficult.&lt;br /&gt;
[[File:Unknownaddress.png|thumb|The flow of Bitcoins from address to address is public.]]&lt;br /&gt;
&lt;br /&gt;
The second image shows a simple example. Someone runs both a money exchanger and a site meant to trap people. When Mr. Doe buys from the exchanger and uses those same coins to buy something from the trap site, the attacker can &#039;&#039;&#039;prove&#039;&#039;&#039; that these two transactions were made by the same person. The block chain would show:&lt;br /&gt;
[[File:knownaddress.png|thumb|Finding an &amp;quot;identity anchor&amp;quot; allows you to ruin the anonymity of the system.]]&lt;br /&gt;
* Import coins from address A. Send 100 to B. Authorized by (signature).&lt;br /&gt;
* Import coins from address B. Send 100 to C. Authorized by (signature).&lt;br /&gt;
You can&#039;t change your &amp;quot;sending address&amp;quot;; Mr. Doe &#039;&#039;must&#039;&#039; send coins from the same address that he received them on: address B. The attacker knows for a fact that address B is Mr. Doe because the attacker received $5 from Mr. Doe&#039;s Paypal account and then sent 100 BTC to that very same address.&lt;br /&gt;
&lt;br /&gt;
Another example: someone is scammed and posts the address they were using on the Bitcoin forum. It is possible to see which address they sent coins to. When coins are sent from this (the scammer&#039;s) address, the addresses that receive them can also be easily found and posted on the forum. In this way, all of these coins are marked as &amp;quot;dirty&amp;quot;, potentially over an infinite number of future transactions. When some smart and honest person notices that his address is now listed, he can reveal who he received those coins from. The Bitcoin community can now break some legs, asking, &amp;quot;Who did you receive these coins from? What did you create this address for?&amp;quot; Eventually the original scammer will be found. Clearly, this becomes more difficult the more addresses that exist between the &amp;quot;target&amp;quot; and the &amp;quot;identity point&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You might be thinking that this attack is not feasible. But consider this case:&lt;br /&gt;
* You live in China and want to buy a &amp;quot;real&amp;quot; newspaper for Bitcoins.&lt;br /&gt;
* You join the Bitcoin forum and use your address as a signature. Since you are very helpful, you manage to get 30 BTC after a few months.&lt;br /&gt;
* Unfortunately, you choose poorly in who you buy the newspaper from: you&#039;ve chosen a government agent! Maybe you are under the mistaken impression that Bitcoin is perfectly anonymous.&lt;br /&gt;
* The government agent looks at the block chain and Googles (or Baidus) every address in it. He finds your address in your signature on the Bitcoin forum. You&#039;ve left enough personal information in your posts to be identified, so you are now scheduled to be &amp;quot;reeducated&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to protect yourself from both forward attacks (getting something that identifies you using coins that you got with methods that must remain secret, like the scammer example) and reverse attacks (getting something that must remain secret using coins that identify you, like the newspaper example).&lt;br /&gt;
&lt;br /&gt;
==== Staying Anonymous ====&lt;br /&gt;
&lt;br /&gt;
It is only possible to send bitcoins from the same address with which they have been received. However, if one has bitcoins on several address, one can theoretically choose from which address to send the coins. Choosing personally generated coins or an address that you know doesn&#039;t reveal information would protect you. Unfortunately, the default Bitcoin client doesn&#039;t support this currently, so you must assume that your entire balance can identify you if any of the addresses can. (Bitcoin sends the smallest coins first, though you shouldn&#039;t rely on this.)&lt;br /&gt;
&lt;br /&gt;
You may consider a bitcoin to be &amp;quot;less-anonymous&amp;quot; when an attacker could feasibly find the true identity of a very recent owner of the bitcoin, perhaps because one of the bitcoin addresses was posted to a website, or because he knows some identifying information through other means. &lt;br /&gt;
&lt;br /&gt;
If your balance has been contaminated by both anonymous and non-anonymous coins, you may take action to make it &amp;quot;clean&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Recommended way of anonymizing your balance:&lt;br /&gt;
* Send however many coins you want to anonymize to a new [[eWallet]] account as a lump sum. There are other [[eWallet]] services however the more widely used the greater the potential for anonymity. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;This is not an endorsement of trust in the use of [[eWallet]] services.  There are no guarantees that any eWallet service won&#039;t one day take all your bitcoins and disappear. Use at your own risk.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
With this method an attacker will have to gain access to the eWallet service&#039;s transaction logs to continue to follow you in the transaction history. &lt;br /&gt;
&lt;br /&gt;
The protection that this method offers is significantly reduced if you are trying to anonymize more than about 10% of the total number of Bitcoins that the eWallet service holds. You&#039;ll end up getting your own coins back instead of other users&#039; coins.  Withdrawing Bitcoins more slowly and in smaller increments will help reduce this problem. Sending coins to an eWallet service in the largest single transfer possible will also help.&lt;br /&gt;
&lt;br /&gt;
To further enhance your anonymity, you can:&lt;br /&gt;
* Send Bitcoins from one EWallet sevice to another and &#039;&#039;then&#039;&#039; to yourself. Each transfer needs to be painstakingly investigated and many transfers will present insurmountable difficulty.&lt;br /&gt;
&lt;br /&gt;
Once you have an anonymous balance set up, be sure to keep your anonymous and non-anonymous balances completely separate.&lt;br /&gt;
&lt;br /&gt;
A future version of the client will have coderr&#039;s patch which will allow the sender to specify which coins to use in a transaction&amp;lt;ref&amp;gt;[http://bitcointalk.org/index.php?topic=24784.msg307661#msg307661 Patching The Bitcoin Client To Make It More Anonymous]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Help other people stay anonymous ====&lt;br /&gt;
* Set up a real [http://www.bitcoin.org/smf/index.php?topic=241.0 external mixing service]. Make it like an eWallet service but make sure that a user never withdraws the same coins that are put in.  Also delete empty addresses and transaction logs. &lt;br /&gt;
* Even if you&#039;re not a programmer, you can make a slightly less secure version of an external mixing service (as a Tor hidden service, preferably):&lt;br /&gt;
** Set up two Bitcoin installations.&lt;br /&gt;
** Put some amount of BTC in installation B. This is the maximum amount of BTC you can deal with at once (for all customers).&lt;br /&gt;
** Customers send BTC to installation A. You send them an equal number of coins (or minus a fee) from installation B. Send as 10-50 BTC increments.&lt;br /&gt;
** Send all coins from A to B when &#039;&#039;&#039;all&#039;&#039;&#039; orders are satisfied. You can&#039;t send coins from A to B if you have any orders that have not been satisfied from B.&lt;br /&gt;
** This can be automated, or you can do everything manually.&lt;br /&gt;
* Put lots of Bitcoins in an eWallet service and keep it there. If anyone uses the anonymization method described in &amp;quot;staying anonymous&amp;quot; above, this will enhance it. Send in smaller increments if a large amount is transferred.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [http://www.bitcoin.org/smf/index.php?topic=2893.0 RFC: Bitcoin Mixnet]&lt;br /&gt;
* [http://www.bitcoin.org/smf/index.php?topic=241.0 anonymity]&lt;br /&gt;
* [[Bitcoin Fog]]&lt;br /&gt;
* [[Bitcoin Laundry]] (Does not mix well -- you may get your own coins back.)&lt;br /&gt;
* [http://bitcointalk.org/index.php?topic=24784.0 Patching The Bitcoin Client To Make It More Anonymous]&lt;br /&gt;
* [http://arxiv.org/abs/1107.4524 An Analysis of Anonymity in the Bitcoin System] research by Fergal Reid, Martin Harrigan ([http://bitcointalk.org/index.php?topic=31539.0 discussion])&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Sonny</name></author>
	</entry>
</feed>