Difference between revisions of "Colorcore"

From Bitcoin Wiki
Jump to: navigation, search
(How to use Colorcore?)
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[https://github.com/OpenAssets/colorcore Colorcore] is an open source colored coin wallet compatible the [[Colored Coins#Open_Assets|Open Assets protocol]] and [[Coinprism]].  
+
[https://github.com/OpenAssets/colorcore Colorcore] is an open source [[Colored Coins]] wallet compatible with the [[Colored Coins#Open_Assets|Open Assets protocol]] and [[Coinprism]].  
==Colored Coins==
 
  
 +
It supports two modes: a command line interface, and a JSON/RPC server. The command line interface is suitable for managing a local wallet without going through any third-party service. The JSON/RPC interface is suitable for server-side implementations of colored coins and programmatic colored coins wallet management.
  
==Specifications==
+
[[Colored Coins#Open_Assets|Open Assets]] is a protocol for issuing and transferring custom digital tokens in a secure way on the Bitcoin blockchain (or any compatible blockchain).
 
 
  
 
==Features==
 
==Features==
 
* '''Issue you own coins'''
 
* '''Issue you own coins'''
 
Anybody can issue their own coins. It only takes a single Bitcoin transaction. The only fee you have to pay is the Bitcoin transaction fee (which can be zero), which makes Colorcore much more efficient than alternatives like XCP (about $20 to issue an asset).
 
Anybody can issue their own coins. It only takes a single Bitcoin transaction. The only fee you have to pay is the Bitcoin transaction fee (which can be zero), which makes Colorcore much more efficient than alternatives like XCP (about $20 to issue an asset).
Also, you don't need to buy any intermediary coin (like XCP) since colored coins work directly on top of Bitcoin.
+
Also, you don't need to buy any intermediary coin (like XCP) since [[Colored Coins]] work directly on top of Bitcoin.
 
* '''Send and receive assets'''
 
* '''Send and receive assets'''
 
Use your address to receive assets from other people. You can also send assets, again for the price of a standard Bitcoin transaction.
 
Use your address to receive assets from other people. You can also send assets, again for the price of a standard Bitcoin transaction.
Line 24: Line 23:
 
* Run the following commands:
 
* Run the following commands:
  
<code>git clone https://github.com/OpenAssets/colorcore.git
+
    git clone https://github.com/OpenAssets/colorcore.git
cd colorcore
+
    cd colorcore
pip install --upgrade -r requirements.txt
+
    pip install --upgrade -r requirements.txt
</code><br />
 
  
 
* Edit the config.ini file with the username, password and port for your local Bitcoin Core instance (rpcurl setting).
 
* Edit the config.ini file with the username, password and port for your local Bitcoin Core instance (rpcurl setting).
Line 36: Line 34:
 
*'''Get your balance'''<br/>
 
*'''Get your balance'''<br/>
 
Run the following command to get your balance:<br/>
 
Run the following command to get your balance:<br/>
<code>  python colorcore.py getbalance</code><br/>
+
    python colorcore.py getbalance
 
[[Image:Colorcore_1.png‎‎|400px]]<br/>
 
[[Image:Colorcore_1.png‎‎|400px]]<br/>
 
All the addresses with a non-zero balance on your Bitcoin Core wallet will be displayed. The 'assets' field will show how much assets you have. If you don't have any asset, it will be empty. Each asset has a 'assetAddress' field as well as a 'quantity' field. 'assetAddress' is what identifies the asset. It is cryptographically secure, and it is impossible for two people to be owner of the same asset address. 'quantity' is an integer indicating how many units of that asset you own.<br/>
 
All the addresses with a non-zero balance on your Bitcoin Core wallet will be displayed. The 'assets' field will show how much assets you have. If you don't have any asset, it will be empty. Each asset has a 'assetAddress' field as well as a 'quantity' field. 'assetAddress' is what identifies the asset. It is cryptographically secure, and it is impossible for two people to be owner of the same asset address. 'quantity' is an integer indicating how many units of that asset you own.<br/>
 
*'''Create your own asset'''<br />
 
*'''Create your own asset'''<br />
 
First, you need to create an address in Bitcoin Core. This address will represent your asset, and the private key associated will be required for any issuance of the asset. Note that the protocol supports multi-sig addresses for issuance, though that is not implemented in Colorcore 1.0.
 
First, you need to create an address in Bitcoin Core. This address will represent your asset, and the private key associated will be required for any issuance of the asset. Note that the protocol supports multi-sig addresses for issuance, though that is not implemented in Colorcore 1.0.
Run the following command on bitcoind (not Colorcore):
+
Run the following command on bitcoind (not Colorcore):<br/>
<code> bitcoind getnewaddress</code><br />
+
    bitcoind getnewaddress
 
This will generate a private key and return the address. Make sure your wallet.dat file is properly backed up.
 
This will generate a private key and return the address. Make sure your wallet.dat file is properly backed up.
 
Now transfer a small amount of bitcoins (0.0002 BTC is enough) to that newly created address.
 
Now transfer a small amount of bitcoins (0.0002 BTC is enough) to that newly created address.
Run the following command to issue one million colored coins:
+
Run the following command to issue one million colored coins:<br/>
<code> python colorcore.py issueasset <address> 1000000</code><br/>
+
    python colorcore.py issueasset <address> 1000000
 
You can issue up to 9,223,372,036,854,775,807 colored coins at once. Unlike older colored coins implementations, you only need 0.000006 BTC for issuing coins, regardless of the quantity you want to issue.
 
You can issue up to 9,223,372,036,854,775,807 colored coins at once. Unlike older colored coins implementations, you only need 0.000006 BTC for issuing coins, regardless of the quantity you want to issue.
This command will return a transaction hash. You can look up that transaction hash on the coinprism.info block explorer.
+
This command will return a transaction hash. You can look up that transaction hash on the [[Coinprism.info]] block explorer.
 
*'''How do I give my asset a name?'''<br />
 
*'''How do I give my asset a name?'''<br />
 
Of course, this is not very useful if you can't identify what asset is what. In order to link information such as a name to your coin, you need to create a metadata file, and host it on your web server. Of course, this doesn't introduce centralization since you are already the issuer of the coin, and the value of your coin (if any) already comes from you. Since you are responsible for the value of the coin you are issuing, it is not an issue if you also host the information about this coin. The metadata file is a JSON file and contains the following information:
 
Of course, this is not very useful if you can't identify what asset is what. In order to link information such as a name to your coin, you need to create a metadata file, and host it on your web server. Of course, this doesn't introduce centralization since you are already the issuer of the coin, and the value of your coin (if any) already comes from you. Since you are responsible for the value of the coin you are issuing, it is not an issue if you also host the information about this coin. The metadata file is a JSON file and contains the following information:
 
<br />
 
<br />
<code>
+
    {"source_addresses": [
  {"source_addresses": [
 
 
     "source address for the coin (can be obtained from the getbalance call)"
 
     "source address for the coin (can be obtained from the getbalance call)"
  ],
+
    ],
  "contract_url": "https://yoursite.com/more-info-about-the-coin",
+
    "contract_url": "https://yoursite.com/more-info-about-the-coin",
  "name_short": "ICECC",
+
    "name_short": "ICECC",
  "name": "The Ice Cream Coin",
+
    "name": "The Ice Cream Coin",
  "issuer": "Vanilla Inc",
+
    "issuer": "Vanilla Inc",
  "description": "This coin is worth an ice cream at any Vanilla Inc shop.",
+
    "description": "This coin is worth an ice cream at any Vanilla Inc shop.",
  "description_mime": "text/x-markdown; charset=UTF-8",
+
    "description_mime": "text/x-markdown; charset=UTF-8",
  "type": "Points",
+
    "type": "Points",
  "divisibility": 0,
+
    "divisibility": 0,
  "link_to_website": true,
+
    "link_to_website": true,
  "icon_url": "https://yoursite.com/coin-icon.jpg",
+
    "icon_url": "https://yoursite.com/coin-icon.jpg",
  "image_url": "https://yoursite.com/coin-image.jpg",
+
    "image_url": "https://yoursite.com/coin-image.jpg",
  "version": "1.0"}
+
    "version": "1.0"
</code><br />
+
    }
 +
 
 
The assuming you have placed that file at: https://yoursite.com/icecream, use the following argument when issuing the coins:
 
The assuming you have placed that file at: https://yoursite.com/icecream, use the following argument when issuing the coins:
<code>  python colorcore.py issueasset <address> 1000000 --metadata u=https://yoursite.com/icecream</code><br />
+
  python colorcore.py issueasset <address> 1000000 --metadata u=https://yoursite.com/icecream
You can then lookup the color address on coinprism.info, and you should see all that information.
+
You can then lookup the color address on [[Coinprism.info]], and you should see all that information.
 
<br />
 
<br />
 
Only the URL (https://yoursite.com/icecream) is stored on the Blockchain.
 
Only the URL (https://yoursite.com/icecream) is stored on the Blockchain.
Line 77: Line 75:
 
==History==
 
==History==
  
* Coinprism launches [https://github.com/OpenAssets/colorcore Colorcore], an open source colored coin wallet compatible with open assets and Coinprism: September 2nd 2014 <ref>[http://www.reddit.com/r/Bitcoin/comments/2f9sfy/announcing_colorcore_the_open_source_colored_coin/ Colorcore: the colored coin wallet compatible with open assets]</ref>
+
* [[Coinprism]] launches [https://github.com/OpenAssets/colorcore Colorcore], an open source colored coin wallet compatible with open assets and Coinprism: September 2nd 2014 <ref>[http://www.reddit.com/r/Bitcoin/comments/2f9sfy/announcing_colorcore_the_open_source_colored_coin/ Colorcore: the colored coin wallet compatible with open assets]</ref>
 +
 
 +
==License==
 +
Colorcore is licensed under the [http://opensource.org/licenses/MIT MIT License].
  
 
==External Links==
 
==External Links==
  
* [https://www.coinprism.com Coinprism] Official website
+
* [https://github.com/OpenAssets/colorcore Colorcore] Reference Implementation
 +
* [https://www.coinprism.com Coinprism] Web Wallet
 
* [https://www.coinprism.info Coinprism.info] Blockchain explorer & asset directory
 
* [https://www.coinprism.info Coinprism.info] Blockchain explorer & asset directory
* [https://coinprism.desk.com/ Coinprism Support Center] Support Center
 
* [http://forum.coinprism.com Coinprism Developer Forum] Official Developer Forum
 
 
* [http://docs.coinprism.apiary.io/ Coinprism API] Coinprism API documentation
 
* [http://docs.coinprism.apiary.io/ Coinprism API] Coinprism API documentation
 
* [https://github.com/OpenAssets/open-assets-protocol Open Assets protocol]
 
* [https://github.com/OpenAssets/open-assets-protocol Open Assets protocol]
* [http://blog.coinprism.com Coinprism Blog] Official Blog
+
* [https://github.com/OpenAssets/openassets Open Assets Python Library]
* [https://bitcointalk.org/index.php?topic=517139.0 Coinprism on BitcoinTalk] BitcoinTalk
+
* [https://bitcointalk.org/index.php?topic=767005.0 Colorcore on BitcoinTalk] BitcoinTalk
 
* [https://coinprism.desk.com/customer/portal/emails/new Contact the coinprism team] Contact
 
* [https://coinprism.desk.com/customer/portal/emails/new Contact the coinprism team] Contact
 
* [https://twitter.com/Coinprism @Coinprism] Twitter
 
* [https://twitter.com/Coinprism @Coinprism] Twitter
Line 95: Line 95:
 
* [http://reddit.com/r/coinprism Coinprism on Reddit] Coinprism subreddit
 
* [http://reddit.com/r/coinprism Coinprism on Reddit] Coinprism subreddit
 
* [http://www.crunchbase.com/organization/coinprism/ Crunchbase profile] Crunchbase
 
* [http://www.crunchbase.com/organization/coinprism/ Crunchbase profile] Crunchbase
 
==Founder==
 
Flavien Charlon
 
  
 
==References==
 
==References==
 
<references />
 
<references />
 
==Screenshots==
 
[[Image:Coinprism_wallet.png‎‎|400px]]
 
[[Image:Coinprism_blockchain_explorer.png|400px]]
 
[[Image:Coinprism_asset_directory.png|400px]]
 
[[Image:Coinprism_fund_address.png|400px]]
 
  
 
[[Category:EWallets]]
 
[[Category:EWallets]]

Latest revision as of 21:38, 6 September 2014

Colorcore is an open source Colored Coins wallet compatible with the Open Assets protocol and Coinprism.

It supports two modes: a command line interface, and a JSON/RPC server. The command line interface is suitable for managing a local wallet without going through any third-party service. The JSON/RPC interface is suitable for server-side implementations of colored coins and programmatic colored coins wallet management.

Open Assets is a protocol for issuing and transferring custom digital tokens in a secure way on the Bitcoin blockchain (or any compatible blockchain).

Features

  • Issue you own coins

Anybody can issue their own coins. It only takes a single Bitcoin transaction. The only fee you have to pay is the Bitcoin transaction fee (which can be zero), which makes Colorcore much more efficient than alternatives like XCP (about $20 to issue an asset). Also, you don't need to buy any intermediary coin (like XCP) since Colored Coins work directly on top of Bitcoin.

  • Send and receive assets

Use your address to receive assets from other people. You can also send assets, again for the price of a standard Bitcoin transaction.

  • Manage crowdfunding campaigns

Finally a way to manage a truly decentralized crowdfuding campaign. You don't have to trust a complex and limited exchange protocol, the "distribute" feature creates standard Bitcoin transactions. There is no magic behind it.

Every asset created or exchanged using Colorcore are visible on the Coinprism.info block explorer, and can be sent to a Coinprism web-wallet.

Installation and dependencies

Colorcore does not connect to any external service. All it needs is access to the Bitcoin blockchain, via Bitcoin Core. Therefore in order to run Colorcore, you need Bitcoin Core running with RPC enabled and the -txindex=1 -server=1 flags.

Follow these instructions to install Colorcore:

  • Windows users: make sure you have Python 3 and pip installed on your machine
  • Run the following commands:
   git clone https://github.com/OpenAssets/colorcore.git
   cd colorcore
   pip install --upgrade -r requirements.txt
  • Edit the config.ini file with the username, password and port for your local Bitcoin Core instance (rpcurl setting).

You are now ready to run Colorcore.

How to use Colorcore?

  • Get your balance

Run the following command to get your balance:

   python colorcore.py getbalance

Colorcore 1.png
All the addresses with a non-zero balance on your Bitcoin Core wallet will be displayed. The 'assets' field will show how much assets you have. If you don't have any asset, it will be empty. Each asset has a 'assetAddress' field as well as a 'quantity' field. 'assetAddress' is what identifies the asset. It is cryptographically secure, and it is impossible for two people to be owner of the same asset address. 'quantity' is an integer indicating how many units of that asset you own.

  • Create your own asset

First, you need to create an address in Bitcoin Core. This address will represent your asset, and the private key associated will be required for any issuance of the asset. Note that the protocol supports multi-sig addresses for issuance, though that is not implemented in Colorcore 1.0. Run the following command on bitcoind (not Colorcore):

   bitcoind getnewaddress

This will generate a private key and return the address. Make sure your wallet.dat file is properly backed up. Now transfer a small amount of bitcoins (0.0002 BTC is enough) to that newly created address. Run the following command to issue one million colored coins:

   python colorcore.py issueasset <address> 1000000

You can issue up to 9,223,372,036,854,775,807 colored coins at once. Unlike older colored coins implementations, you only need 0.000006 BTC for issuing coins, regardless of the quantity you want to issue. This command will return a transaction hash. You can look up that transaction hash on the Coinprism.info block explorer.

  • How do I give my asset a name?

Of course, this is not very useful if you can't identify what asset is what. In order to link information such as a name to your coin, you need to create a metadata file, and host it on your web server. Of course, this doesn't introduce centralization since you are already the issuer of the coin, and the value of your coin (if any) already comes from you. Since you are responsible for the value of the coin you are issuing, it is not an issue if you also host the information about this coin. The metadata file is a JSON file and contains the following information:

   {"source_addresses": [
   "source address for the coin (can be obtained from the getbalance call)"
   ],
   "contract_url": "https://yoursite.com/more-info-about-the-coin",
   "name_short": "ICECC",
   "name": "The Ice Cream Coin",
   "issuer": "Vanilla Inc",
   "description": "This coin is worth an ice cream at any Vanilla Inc shop.",
   "description_mime": "text/x-markdown; charset=UTF-8",
   "type": "Points",
   "divisibility": 0,
   "link_to_website": true,
   "icon_url": "https://yoursite.com/coin-icon.jpg",
   "image_url": "https://yoursite.com/coin-image.jpg",
   "version": "1.0"
   }

The assuming you have placed that file at: https://yoursite.com/icecream, use the following argument when issuing the coins:

 python colorcore.py issueasset <address> 1000000 --metadata u=https://yoursite.com/icecream

You can then lookup the color address on Coinprism.info, and you should see all that information.
Only the URL (https://yoursite.com/icecream) is stored on the Blockchain.

History

  • Coinprism launches Colorcore, an open source colored coin wallet compatible with open assets and Coinprism: September 2nd 2014 [1]

License

Colorcore is licensed under the MIT License.

External Links

References