Creating a Dispenser Using Freewallet 2.0.1
If you are an artist or collector on the Counterparty platform then you are undoubtedly aware of the ongoing controversy regarding the development of the software. Ideally, creators and users should be blissfully ignorant to the innerworkings of the platform that they are on. They should just mint, swap, buy, and sell with ease. Sadly, that is not the case for Counterparty enjoyooors.
Without going into the who, what, why, when, and where of it all this article will focus on creating a dispenser using Freewallet 2.0.1
Why 2.0.1
The reason that it must be stated that this tutorial is specifically for Freewallet 2.0.1 is because there are now two versions of the wallet as well as two ledgers to interact with. These instructions do not apply to Freewallet Classic. If you’re looking for instructions for creating a dispenser on Classic, read this article instead.
It’s going to be a bit confusing doing this and the reason for that is because the developer of Freewallet has stated that “I don’t really have much desire to keep updating the wallet to chase all the changes and updates that the CP 2.0 developers are making at this time.” Which to me is perfectly understandable. The protocol is in a state of flux. A change to the wallet today may become obsolete tomorrow. The best course of action may be to take no action. But some people NEED to sell their tokens and WANT to use their beloved Freewallet. If you match that description, than this is for you.
Initiating the sequence.
Creating a dispenser begins with clicking on “Actions” and then on “Create Dispenser.” Alternatively, you can right click on an asset name and choose “Create Dispenser” from the list of choices.
The Create Dispenser Screen
Here is where things get a bit tricky. The source address is the wallet where the token you want to sell currently resides. With the “classic” method, you would specify the dispenser address that you want to use, complete the other fields, and the dispenser would be created in one Bitcoin transaction.
With the “new” method, even though you copied and pasted an address into the dispenser field, if you are attempting to create the dispenser from your main (source) wallet address that is where the dispenser is going to be created.
The reason for this is a recent update to the Counterparty protocol that requires the dispenser address and the source address to be the same. This has not been addressed in Freewallet which is why no matter what you put in the dispenser field, the dispenser is going to be opened at the source address.
Again — Regardless of what you put in the Dispenser address field, when you complete the transaction that creates the dispenser, it will be created at whatever address is shown in the Source field.
What does this mean?
It means that before you can create a dispenser you need to do two Bitcoin transactions. The reason for this is because you do not want more than 1 dispenser open on your main wallet address. Ideally, you want none.
Bitcoin Transaction #1
From inside Freewallet, click on the Address icon and choose “Change Address.” Locate a fresh address (one that has not had any Bitcoin or Counterparty transactions) and change to that address.
Once in the new wallet, right click on the Bitcoin icon and choose “Send BTC to” and then copy that Source address. This is where you will be sending some Bitcoin and the tokens you want to sell to.
Now that you have the fresh address copied, change wallet addresses again back to your main wallet (where your Bitcoin and tokens are held).
Right click on the Bitcoin icon and Choose “Send Bitcoin to”
Paste in the fresh wallet address and choose some amount of Bitcoin to send. You should send enough Bitcoin to cover two transaction fees. Depending on the state of the mempool this could be anywhere from 0.00002 BTC to 0.002. You will use half of this amount to open your dispenser. The balance can then be used to close the dispenser in the future (if you made no sales, or just want your tokens back).
Bitcoin Transaction #2
Next, locate the token you want to put into a dispenser and right click on it. Choose “Send xxxx To” and again paste in the fresh address you copied prior. The number of “xxxx” that you send should be the total amount you want to sell through the dispenser.
Once those two transactions have cleared you are ready to create your dispenser.
Change addresses for a third time from your main wallet to the fresh address that you have been interacting with. If you did it right, the fresh address should now have some amount of Bitcoin and one or more of the tokens that you intend to sell displayed.
Opening the Dispenser
Now that you are in the new wallet with some bitcoin and the tokens you can click on the Actions icon and choose “Create Dispenser.” Alternatively, you can right click on an asset name and choose “Create Dispenser” from the list of choices.
The Create Dispenser Screen
Now your Source and Dispenser address (1) are the same. If you want to sell your token for a fixed amount in Fiat (for example $25.00 USD) regardless of the Bitcoin price at the time of the dispense, you can use the Oracle feature (2). This is optional. If you want to sell your asset for some amount of Bitcoin, regardless of the value leave it set to “None”.
The token name is pre-filled for you since you choose to set up the dispenser for it above. Available is the number of that token in the new wallet. Escrow (3) is the number of tokens you want to place in the dispenser for sale. In this example, I am putting 2 of 11 of the token PEPEERAS in a dispenser. Give Amount (4) is always “1” unless you intend to give multiple of the token for the price. BTC Amount (5) is the price you want to sell one token (or multiple if you so choose) for. In this example, I want to sell 1 PEPEERAS for 0.0013 BTC.
Once you have filled in those 5 items, click the green “Create Dispenser” button. The Bitcoin transaction Fee should auto-populate to whatever the lowest mempool fee is at the time of your transaction.
Ignore the Warning
This warning does not apply anymore because dispensers will only dispense when the transaction is marked in a certain way. This is also a new protocol change. Tokens will only be dispensed if the incoming Bitcoin transaction includes a Counterparty header (which is done automatically when you send from any of the new Counterparty wallets when you answer “Yes” to the question, “are you sending this BTC to a dispenser?”)
Answer “Yes” once again
A second screen will pop up where it will display the details of the dispenser. If all looks correct, click “Yes” to send the transaction to the Bitcoin Blockchain.
Once the transaction has confirmed, your dispenser will be “live” on the Counterparty blockchain. You will be able to view it from any Counterparty block explorer (Tokenscan, Horizon, etc.) and link to it when you announce it in Telegram rooms, on Twitter, or any other method of advertising you choose.
Final Thoughts
Is this really an “upgrade?” In my opinion, no it’s not. I can understand the logic and reason behind the change but I don’t have to like it. Before the protocol change this could be done in one transaction. Now it takes 3 transactions (when using Freewallet). Is this cumbersome? Yes. Yes it is. There’s no sense sugar coating it. There is a lot going on in the ecosystem right now and the best course of action is to do nothing. But if you NEED to set up a dispenser and you WANT to use Freewallet then here it is.
I have been told that other wallets are already or will soon be able to do all three steps for you behind the scenes. Of course there will probably be a fee for that convenience and you will still be paying all the transaction fees which is a bummer, but it is what it is.
If you want to learn more about dispeners and everything else that Freewallet can do, please read the excellent User Manual created by community member Davesta.