1. Introduction
You have probably all heard about Byteball already. The last airdrop closed last night at full moon and th the next airdrop is scheduled for 7 August 2017. Make sure that you prepare in time for a next drop of bytes and black bytes. See a tutorial to set up a wallet and link it to your Bitcoin wallet address (with balance): here.
Byteball can do more than just shove some bytes or black bytes around like currency. The Byteball wallet also comes with so-called 'bots'. Bots are small programs that run in a chat window and which you can give commands to do certain things. One of these bots is the 'Byteball Asset Manager'. This bot allows you to set up and issue private assets of your own kind against a fee. The fee is 1 MByte (0.001 GBYTE), which is about $0.69 at today's prices.
In this tutorial, I show the steps of creating private assets. This will be done via the Byteball.market website because with the bot, you cannot give your tokens a custom name and ticker. All relevant fields/actions have been marked with green boxes or arrows. Those have been added by me for explanation purposes.
Caution, this is a very long tutorial due to the many screenshots. Because cryptocurrency is very cryptic (pun intended), I preferred the long article instead of short cuts that could prove difficult to understand.
2. Creating the tokens
- Open your Byteball wallet and go to 'Chat'.
- Go to the 'Bot Store' to search for a bot.
- Click on the 'Byteball Asset Manager' bot
- Click on the 'OPEN CHAT' button.
- Say 'Help' to the bot to see a list of commands. You have the option to:
- either set up your private assets through the wallet bot
- or set up private assets via Byteball.market
I have chosen to use Byteball.market because you can only give your private assets a name and a ticker if working with the website. The bot does not offer this functionality yet.
Click on the link to the Byteball.market. Your browser opens (in this case, a mobile Chrome browser).
- Fill out the desired options for your private assets.
In my example, I chose the following parameters (circled green):
- 10,000 tokens
- Auto-destroy (so that tokens can be destroyed again after use)
- List asset to asset directory (on the Byteball.market website)
- Name, Ticker, Description (see screenshot)
- Issuer name
Click on 'Order Asset' to proceed.
- The next page shows you the price for issuing the private assets 'Wekkeltjes' and the payment address. I copied the payment address and subsequently made the payment (see screen shots below) to pay for creation of the private assets. Payment fee was 0.001 GByte (1,000,000 bytes which is currently $0.69).
You can use QR scan if appropriate (icon right topside). Payment address has been filled in and 1,000,000 bytes are ready to be send. Click 'SEND'.
- Enter wallet password (I assume you have set up a password for your wallet) and click 'OK'.
- 1,000,000 bytes send as evidenced by the wallet history.
- Almost simultaneously, the Byteball.market website shows the status of the payment received. The private assets also are assigned a hash; a long and difficult string of characters. This is the actual 'name' of the private assets within the network.
Now that the private assets have been created, you can look them up in the Asset Directory (encircled in screenshot in red).
Scroll down and you see the private assets created, the 'Wekkeltjes', the asset hash and that 10,000 private assets were created.
- Again I emphasise that I created the private assets with the auto-destroy option. This option is marked 'yes' in the details of the 'Wekkeltjes' private asset class. This page can be accessed by clicking on the 'Wekkeltjes' name (or asset hash) in the list of private assets in the Asset Directory at Byteball.market.
Shortly thereafter, the private assets are received in the wallet used to make the payment to Byteball.market. The screenshot above shows the private assets hitting the wallet. The private assets are listed as a separate class in the wallet. So I have three categories of tokens in my wallet now (bytes/black bytes/Wekkeltjes; named by the asset hash), instead of the regular two ('bytes' and 'black bytes').
Unfortunately, the software does not support yet showing the normal name given to the private assets and/or the assigned ticker. Instead, you will have to do with the asset hash. Especially if you hold multiple private assets, which all show up as a separate class in your wallet, it will be very hard to keep track of the private assets. I understand the developer is aware of this and is thinking about how to solve this, but for now this is inconvenient. It also prevents use in pilot projects with shops etc, because it should be clear to people which tokens their wallet holds.
This issue increases in importance due to the fact that renaming it yourself or deleting the specific private asset from the wallet is not possible. You're stuck with what the system puts in your wallet. This makes it a somewhat cryptic affair.
3. Sending private assets
On to sending private assets to other wallets.
From the wallet page showing the private assets, hit the 'SEND' button and make sure that the private tokens are selected. In my case, this can be recognized by the first letters 'LZR' in the asset hash. If you want to be sure that the right assets are chosen, tap the tiny arrow as marked in the green box.
- the popup window shows the available options (don't you love that Android 2.1 look?). I had already selected the 'Wekkeltjes' private assets, identifiable by the first leters 'LZR' in the name.
- The payment has been set up with half of my Wekkeltjes (my precious) ready to hit one of my other wallets. Use the QR scanner (icon marked top right with a green box) if needed. Hit 'SEND' when ready.
- Again, fill out the password and hit 'OK'.
- The wallet history shows that the payment of the private assets (5,000 'Wekkeltjes') was made. Let's see how this arrives in the receiving wallet.
- The balance of the sending wallet once the 5,000 Wekkeltjes are on their way to the receiving wallet.
The receiving wallet lists the Wekkeltjes received as as separate, third class, in the wallet and again only with the asset hash as identifier, just like the sending wallet. I did not mark these assets as 'Private' when setting them up at the Byteball.market website (see screenshots shown a few steps earlier) so I think these assets can be send to anyone. If someone wants to receive some, please let me know in the comments so we can try (copy/paste a QR code please).
If private assets like these can indeed by send to anyone as long as the sender knows the address, the current setup could lead to spamming known addresses with countless numbers of private asset classes. Classes that fill up the UI of the wallet, cannot be removed and will not go away from the wallet even if the balance is 0.
- Just like receiving the 'Wekkeltjes', I can send the Wekkeltjes back again (or to a third wallet address). In this case, I sent the 5,000 Wekkeltjes back to my original wallet address they came from.
- And without issues, the 5,000 Wekkeltjes return in my original wallet, making 10,000 again.
3. Destroying private assets
"With the ability to create tokens, comes great power". Ha, just joking but creating assets also comes with a need for housekeeping. So destroying assets is also needed for certain uses of private assets (like a shop giving out particular promo tokens). I could not establish whether it is possible to issue private assets with a certain time period attached to them, but perhaps this will be added in the future. Anyway, for this tutorial, I created the assets with the 'Auto-destroy' option. See the relevant screenshots above concerning creation of the private assets.
The Byteball.market website states that, when selected, the 'Auto-destroy' option leads to automatic destroy of the tokens when paid to the original wallet address used for payment of the creating of the private assets. So I decided to send 5,000 Wekkeltjes to that original payment address to see what would happen.
- A series of screenshots showing the payment of 5,000 Wekkeltjes (out of 10,000) from the original wallet to the origination address of Byteball.market. However, the expected result (auto destroy of 5,000) did not happen. See screenshots below.
- first a breakdown of the transactions from the original payment address of Byteball.market, clearly reflecting the steps made in the course of this tutorial:
Payment for private assets: $0.69 wasted to educate you guys (....)
Issue of the private assets 'Wekkeltjes' -> Magic Internet Money :)
Return of 50% of the Wekkeltjes in the Byteball.market payment address
But the Asset Directory listing at the Byteball.market website still shows 10,000 Wekkeltjes issued. I do not know whether:
I did something wrong by sending them to the original payment address used for creation of the Wekkeltjes as private assets
the listing is outdated and/or does not update for destroyed assets
100% of all private assets concerned must be returned before destroy takes place
I reached out to Bytebal.markets for clarification on this point.
4. Issues:
Playing with this feature of the Byteball system revealed a couple of issues. See below a short description thereof:
The name / ticker assigned to the private assets do not appear in your wallet. Instead, you only see the difficult to remember asset hash of the private assets. This is being looked at by the developer, I understand, but this is inconvenient
This inconvenience is increased by the fact that there is no way to delete the particular wallet for the private assets. If you have 10 types of private assets, you will have to know which asset hash (the difficult and long string of characters) belongs to which particular token. This makes broad use of private assets an unwieldy affair for now
If the balance of private assets in the wallet is zero, the class remains visible (and non-removable) in the wallet. This is very user unfriendly and could lead to a pile up of empty private asset classes in your wallet over time.
On top of that, I did not create the private assets as 'Private'. It is my understanding that, as a consequence, these private assets can be send to any address without consent of the holder of that address. This means that if someone would want to do harm, he could create a swarm of private assets and send them in bundles to known Byteball addresses. The holders of the wallets thereof would be stuck with the issues described under point 1 to 3 above. This needs further thought by the developers.
I have no idea how to ' destroy' my private assets created. Sending a part of them to the original payment address seemingly did not destroy them yet, as the screenshot of the Byteball.market Asset Directory shows. I have reached out to Byteball.market for a clarification on this. Perhaps it would be an idea to add the ability to set a timer on the validity/existence of private assets.
5. Conclusion
Despite the issues encountered, creation of private assets in Byteball is very easy. If the quirks can be worked out, this could serve a variety of uses, like shop promo's and use as lunch/festival token or tokens in group games to keep score. I look forward to an update of this part of the software addressing the issues mentioned.
If anyone wishes to receive a few Wekkeltjes, please:
copy/paste a QR code (I am not going to type over full addresses on my mobile phone)
promise to send them forward to the following address to find out if auto-destroy works if 100% of them are received: EW6UCKJB5YUEVUMVZL7L5SN3I4DFWCQU
I will send the remaining 'Wekkeltjes' to EW6UCKJB5YUEVUMVZL7L5SN3I4DFWCQU on 20 July 2017 anyway. You'd miss out on a great ICO BTW.