Custom assets have been first class citizens in Byteball since the launch of the live net. Few may know that blackbytes, a widely distributed currency for private payments, is the first asset issued in the Byteball network. While creating new assets requires some programming skills, Byteball Market makes it easy for anybody to issue custom Byteball assets.

Before we go into details, let’s see what the whitepaper says about assets:

Assets in Byteball can be issued, transferred, and exchanged, and they behave similarly to the native currency ‘bytes’. They can represent anything that has value, for example debt, shares, loyalty points, airtime minutes, commodities, other fiat or crypto currencies.

In general, assets can be created with certain characteristics: they can be made private, defined with different denominations or they can require cosigners or attestation when transferring etc. We call these as the asset definition. When creating an asset via Byteball Market, some of these features are not available yet. At the time of writing, a user can specify:

the total capitalization of the asset, and

if the asset is auto-destroyable which means the coins are “destroyed” (burnt) when sent back to the address they were issued from.

In addition to the asset definition, Byteball Market allows the user the option to associate additional metadata to the asset such as decimal places, short name, ticker symbol, description, issuer name or contact information. Important to note, however, that most of these metadata are only stored in the database of Byteball Market and are only displayed in the asset directory within the Byteball Market website.

Byteball Market performs a number of steps on behalf of the user when creating an asset for a small fee since these steps require to post permanent and immutable data in the Byteball database.

asset definition: posting the asset characteristics to the Byteball DAG.

asset issuance: issuing the asset to a given address. This step creates the coins, tokens, shares, loyalty points or whatever the asset represents.

asset metadata publishing: posting the user provided information such as asset name and decimal points about the asset to the Byteball DAG. This step makes it possible for Hub operators to broadcast this data to the connected wallets and so display human readable asset names. Note, that Byteball Market offers it only for issuers that go through identity verification.

Once the user fills in the asset order form, the process starts with a payment cycle: the user has to transfer the fee in order for the asset creation steps to start.

User submits the filled in order form. Byteball Market generates a payment address and a payment request QR code/url. User sends a payment by scanning the QR code or tapping on the payment request url. Byteball Market is notified that payment became stable.

As soon as the payment is confirmed, Byteball Market starts the asset definition and issuance steps:

Asset definition with the user defined cap and some default characteristics is posted in the DAG. Byteball Market is notified that the asset definition became stable. The asset with the full cap is issued back to the same wallet the user made the payment from. The user receives the asset in their wallet.

At this moment the asset metadata has not been posted to the Byteball DAG yet and the asset is visible in its raw format: by the asset hash and the cap formatted without decimal places. If the user decides to verify the identity of the issuer provided when ordering the asset, which can be a social media alias, real name or company name, they must contact Byteball Market and may become eligible for publishing the asset metadata to the DAG. If the identity verification was successful, the process continues as below:

Byteball Market posts the metadata provided by the user when submitting the order form to the DAG. The most important data currently used by Byteball wallets are the asset name and the decimal places. Byteball Hubs are notified that the asset metadata data unit became stable in the DAG. Hubs recognize asset metadata information by monitoring posts of the Byteball Market registry address which is AM6GTUKENBYA54FYDAKX2VLENFZIMXWG for assets of verified issuers. Note that Hubs have to decide which asset registry they trust to receive metadata from. Assets published by Byteball Market are recognized by the main Byteball Hub, byteball.org/bb, and also by byteball.fr/bb. Hubs store and index the asset metadata for optimized access. Asset metadata is synchronized to Byteball light wallets. The asset displays in users wallets by their human readable name formatted with the decimal places (if applicable).

For further information of registering assets via Byteball Market please take a look at the Registration Policies. To create a custom Byteball asset or browse existing ones visit https://byteball.market.