Rarebit Min Client                
A
 
A
 
A
 
A
 
A


               

 



The Rarebit protocol is designed to enable collectible digital works to be issued and traded on the bitcoin network.

Using a Rarebit client, an artist or author can issue digitally signed limited editions of a work online, and collectors can trade units of the edition with the assurance they are authentic.









     
This is a baseline technical reference client for the Rarebit protocol and javascript library. It runs in the browser as a local process.

Development and testing was performed on recent releases of Firefox and Chrome (desktop versions). The latest release of Firefox is recommended because it includes a fast javascript compiler.


Author: Used to sign a work. Creates a certificate to accompany the work, and generates a bitcoin address to uniquely refer to the signed work (a certificate ID, or CID).

Issue: Used to issue editions of a signed work. Creates bitcoin transactions that record the CID and quantity.

Transfer: Used to transfer units of an edition to new owners.
  1. Creates bitcoin transactions in which the author signs over units to new owners.
  2. Creates transactions in which current owners sign over units to new owners.

Signing a work will setup the Issue section, and issuing an edition will setup the Transfer section.

Spendable outputs are needed to pay for seeding and fees when transactions are created. Demo seed data is preloaded in the cache. This early beta has been tested only on simulated blockchain data, but it will create transactions that can be broadcast to the bitcoin network. Using this early beta to broadcast transactions is not recommended.

A full client, which will load and hash digital media files, is in development.
Create a Signature Certificate     Rarebit.createCertificate()

Enter some text (a file can be referenced by entering its hash and a title):


Author's private key or brainwallet passphrase:




Resulting certificate:


Certificate ID (CID):
 

Author:
 

A unique signature and CID are produced with each signing




Verify Certificate     Rarebit.createCertificateFromJSON()

Certificate:




Certificate ID (CID):
 

Author:
 

Transaction Cache     Rarebit.Tx.createSeedWallet()

Transaction data:




The transaction cache holds unspent outputs needed to pay for seeding/fees when new transactions are created, and also is queried when searching for lots and tracing their histories.

Seed transactions can be real or make-believe. New transactions will be added to the cache as they are created, so the data will simulate actual branches of transactions on the blockchain.

BBE JSON formatted text is expected, which can be copied/pasted from:

    http://blockexplorer.com/q/mytransactions/address
    [link]

Data for individual transactions can be obtained from:

    http://blockexplorer.com/rawtx/txhash

and combined as follows: { "1": txdata, "2": txdata, ... }

Full Rarebit clients would typically load transaction data from bitcoin exit nodes as needed.
Issue Edition (Create Origination Transaction)     Rarebit.Tx.createOrigination()

Certificate:


Author's private key or brainwallet passphrase:




Quantity:



Private key needed to pay for seeding/fee and receive change:
Sufficient outputs in cache must be spendable with this key


Fee:





Resulting transaction (raw):
Raw transaction can be broadcast by pasting to http://www.blockchain.info/pushtx. Using this early beta to broadcast transactions is not recommended.


Resulting transaction (JSON):


CID:  

Author:

Transfer Units to New Owners (Create Transfer Transaction)     Rarebit.Tx.createTransfer()

Certificate:


Current owner's private key or brainwallet passphrase:

Units owned will be spent until output quantities satisfied, any units left over will be returned to owner



New owners

New owner's public key (long form of address):

Quantity to send to this new owner:





Private key needed to pay fee and receive change:


Fee:





Resulting transaction (raw):
Raw transaction can be broadcast by pasting to http://www.blockchain.info/pushtx. Using this early beta to broadcast transactions is not recommended.


Resulting transaction (JSON):


CID:  

Author:  

Find Valid Lots     Rarebit.Tx.queryLots()

Certificate ID (CID):


Author's address (optional):

If ommitted, author will be extracted but not verified (origination may be fake)

Current owner's address (optional):




Trace (a record is generated for each output in branch):


CID:

Author:

Owned by:

Quantity:




Trace a Lot's Provenance     Rarebit.Tx.traceLotProvenance()

Transaction hash:


Output index:


Author's address (optional):

If ommitted, author will be extracted but not verified (origination may be fake)



Trace (a record is generated for each output in branch):


CID:

Author:

Owned by:

Quantity:
Generate Bitcoin Key/Address Pair

Private key or brainwallet passphrase:





Mine vanity address

Address substring:

2nd optional substring:

3rd optional substring:




Public key (long form of address):


Address:

Private key:








Miner searches for address '1substring...' (any one of the entries). Generates random keypairs until match found. Long substrings may take many human lifetimes to find.