Bitcoin protocol specification
is the marker output. Colored coins can then be transferred using transactions that preserve the quantity of every asset. 0x01 0x00 Version 1 of the protocol. Transfer outputs are then colored: Output 3 receives 3 units from input 0, 2 units from input 1, 0 unit from input 2 and 1 unit from input. Generating a new type of asset is as simple as generating an address, can be done offline, and for free. If the LEB128-encoded asset quantity of any output exceeds 9 bytes, the marker output is deemed invalid. Existing clients that don't support the Open Assets Protocol will see all outputs as uncolored, and will not be able to perform transfer transactions.
Asset issuance outputs All the outputs before the marker output are used for asset issuance. Outputs that have an asset quantity of zero are uncolored. Clients have a way to identify colored outputs simply by traversing the Blockchain, without needing to be fed external data. 0x03 There are 3 items in the asset quantity list.
Abstract, this document describes a protocol used for storing and transferring custom, non-native assets on the Blockchain. Outputs before the marker output are used for asset issuance, and outputs after the marker output are used for asset transfer. The asset IDs of those outputs are determined using a method called order-based coloring. 1-9 bytes Metadata Arbitrary metadata to be associated with this transaction. It provides a brief description of the concepts and architecture schematics of the Bitcoin protocol. With the Open Assets Protocol, outputs can encapsulate a quantity of a user-defined asset on top of that Bitcoin amount. The asset quantity list field is used to determine the asset quantity of each output. Compatibility For backward compatibility reasons, we consider than an older client is allowed to see a colored output as uncolored. If no valid marker output exists in the transaction, all outputs are considered uncolored.