Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: mjc on December 27, 2012, 03:11:01 AM



Title: Search by Address
Post by: mjc on December 27, 2012, 03:11:01 AM
I've been searching how to solve this problem, but keep running into the same responses.  It might be that is just the only way to resolve this.  I thought, before I give up my search I'd reach out here.

I'm looking for a way to search, given a public Bitcoin Address, for all the transactions it is part of.

I'm familiar with

   http://blockexplorer.com/address/<address>

I'm looking however for something that will give me the raw results, much in the same way as

   http://blockexplorer.com/rawblock/<block>

Does for blocks.  I'm writing a Maltego transform to visualize transactions.  I started this a few weeks but got a busy with the Holidays.  I was able to transform a Block into transactions.  This is only somewhat useful.  I'm really looking to be able to see related transactions for a given address.

If there is no web API, any suggestions of a good java API for extracting from the Berkley db create by the bitcoin-qt?

Thanks,
Michael


Title: Re: Search by Address
Post by: mjc on December 27, 2012, 03:32:17 AM
I did find
 
   http://blockexplorer.com/q/mytransactions/<address>

this might work.


Title: Re: Search by Address
Post by: payb.tc on December 27, 2012, 03:32:35 AM
not saying it contains what you're looking for, but have you read this?

http://blockchain.info/api/blockchain_api


Title: Re: Search by Address
Post by: Stephen Gornick on December 27, 2012, 03:37:54 AM
I did find
 
   http://blockexplorer.com/q/mytransactions/<address>

Are you only looking for a service (API) that ofers this? 

 - http://blockchain.info/address-balance-sheet

Somewhat related:

 - http://bitcoinmonitor.net
 - http://btcbalance.net


Title: Re: Search by Address
Post by: mjc on December 27, 2012, 03:46:53 AM
not saying it contains what you're looking for, but have you read this?

http://blockchain.info/api/blockchain_api


Yes I did, when I first started this.  Thanks for posting it as I had misplaced the link and that will come in very handy.





Title: Re: Search by Address
Post by: mjc on December 27, 2012, 03:52:48 AM
Maltego is a semantic web (Web 3.0) Tool that allows a visual representation of searches.  Essentially what it allows me to do is to define a set of Entities like:

  • Transaction
  • Block
  • Address

Then for each Entity I can create Transforms.  For instance an Address transform might be Get Associated Addresses.  This is the one I'm working on now.  It will query, something and return with a set of addresses that either sent that address BTC or that received BTC from that address.

I know tools like this exist, as I see pictures in articles all the time that show these relationships visually.  Since I'm familiar with Maltego I decided to use it.  Some of the pictures actually look like they might come from Maltego.

Once I have something worth uploading I'll start a google code project and anyone can have a look.


Title: Re: Search by Address
Post by: mjc on December 27, 2012, 04:00:11 AM

http://blockchain.info/api/blockchain_api



Actually after further review, this did have a query that I think might be easier to use:

   http://blockchain.info/rawaddr/<address>

Thanks.


Title: Re: Search by Address
Post by: BkkCoins on December 27, 2012, 02:00:15 PM
Have a look at Electrum source code. It uses an "address history" API on the Electrum server. So with a simple JSON call to any Electrum server you would get back a detailed transaction history for a given address.


Title: Re: Search by Address
Post by: grau on December 27, 2012, 06:22:10 PM
Below an excerpt from the API offered by the bitsofproof supernode.

The database it maintains is also queryable if you use the SQL option.
Both LevelDB and relational storage options are optimized to answer below APIs that are RMI calls to the server.

Code:
         /**
* get transaction outputs that could be spent by the adresses
*
* @param address
* @return list of outputs, eventually empty
*/
public List<TransactionOutput> getBalance (List<String> address);

/**
* get account statement
*
* @param addresses
* @param from
*            - unix time point the account statement should start from
* @return
*/
public AccountStatement getAccountStatement (List<String> addresses, long from);