# Setting up a Dispenser

You can set up a Dispenser to dispense Counterparty Tokens (including XCP) <mark style="color:green;">to directly receive Bitcoin</mark> (BTC) on any address you own. \
\
Dispensers work by sending Bitcoin from a Counterparty wallet (such as Freewallet or Horizon wallet) to an address with an active dispenser to instantly receive the Counterparty token up for sale.

For a quick overview and tutorial for setting up a dispenser, check out [this informative article by Subterranean](https://subterranean.medium.com/creating-a-dispenser-using-freewallet-2-0-7271d468ff8a) or continue reading below.\
\ <mark style="color:yellow;">At this time only Counterparty wallets can trigger dispenses</mark>, but accidental self dispenses can occur if you as the user are not careful. Make sure to take note of any open Dispensers you might have before sending Bitcoin to yourself from another Counterparty wallet.

To create a dispenser, first navigate to the Actions tab in the upper right hand of Freewallet and select "Create Dispenser".

<figure><img src="/files/Sx3e8a4cbPshYVd7DuHc" alt=""><figcaption></figcaption></figure>

You can also find this option by right-clicking any asset you own in the left panel of Freewallet and selecting "Create TOKEN Dispenser"

<figure><img src="/files/IxGltBjbE091xVZMYrpz" alt=""><figcaption></figcaption></figure>

Next, the Create Dispenser pop-up will show and give you a few inputs and options for your Dispenser.

<figure><img src="/files/ABj2D31WIICHfzloLGtf" alt=""><figcaption><p>The Create Dispenser input form, shown with mostly blank inputs in this screenshot</p></figcaption></figure>

Note the Source and Dispenser are the same address as this will be the address the buyer must send BTC to trigger the Token dispense.

* The <mark style="color:red;">Source</mark> is the address that holds the Token you would like to dispense.
* The <mark style="color:yellow;">Dispenser</mark> is the address that will trigger the Token dispenser when a set amount of BTC is sent to it. (At this time the Source and Dispenser address must be the same address.)
* The Token Name is the Token you would like to Dispense.
* The Available input is how many of the Token(s) are on your address.
* The <mark style="color:orange;">Escrow</mark> amount is how many total tokens you would like to escrow into the Dispenser (they will not be able to be accessed when the Dispenser is open).
* The <mark style="color:blue;">Give Amount</mark> is how many (out of the total Escrow amount) you would like to Give (or dispense) when the correct amount of BTC is sent to the address.
* The <mark style="color:purple;">BTC Amount</mark> is the total amount of BTC needed to be received to the address to initiate the dispense. This specific BTC amount, when sent will dispense the token as per the Give Amount you inputted.

For example:&#x20;

If I wanted to dispense 1 BIGGIEPEPE at 0.1 BTC each and wanted to put 5 total BIGGIEPEPE’s cards up for Escrow the inputs would read:

*`Token Name: BIGGIEPEPE`* \
*`Escrow: 5`* \
*`Give Amount: 1`* \
*`BTC Amount: 0.1 BTC`*

In this example somebody could send 0.5 BTC and dispense all 5 BIGGIEPEPE tokens at once, or somebody could just send 0.1 BTC and get 1 BIGGIEPEPE in return automatically dispensed to the address they sent from.

* The Oracle selection was created recently and will denote the BTC amount in USD and the BTC price will fluctuate depending on the USD spot price at that time.&#x20;
* You can simply enter a USD amount in the USD Amount input area and the price of this Dispenser will fluctuate in regards to Bitcoin amount, but remain the same USD amount.

<figure><img src="/files/oxRhW9vPIcj4niryAXFF" alt=""><figcaption><p>Oracle settings shown with Green arrow and USD Amount input shown with Green Oval</p></figcaption></figure>

When you change the Oracle to “BTC-USD – US Dollar (USD)” the BTC Amount input automatically changes to be Denoted in USD. You also have the choice of a few Fiat options for the Oracle:

<figure><img src="/files/JVR3GFXgrRKS16e6wmAV" alt=""><figcaption><p>Other Fiat options for the Oracle feature</p></figcaption></figure>

* The last step is to select your Fee you wish to use when creating the Dispenser. If you have questions about this, check out the [What BTC fee Should I Use?](/freewallet.io-user-manual/getting-started/what-btc-fee-should-i-use.md) section.
* To close an open dispenser on an address you have access to, refer to the [Closing a Dispenser](/freewallet.io-user-manual/freewallet-functions/closing-a-dispenser.md) section of this User Manual.

<mark style="color:green;">**Unlike Counterparty DEx and BTCpay orders, Dispensers have no expiration date and will remain live until either the token is sold out or the seller closes the dispenser.**</mark>

At this time there is only one way to set up a dispenser and it is from the 'Source' address only:

* It is common for users to use "Address #1", but <mark style="color:yellow;">setting up multiple dispensers on the same address will cause ALL active dispensers</mark> bought on this address at or under that BTC price <mark style="color:red;">to be automatically dispensed</mark>.
* It is recommended to <mark style="color:yellow;">use separate addresses for separate dispensers</mark> at this time due to these specific details of the functionality.
* This means if you do not want to use "Address #1" you will have to pick an address you control and <mark style="color:yellow;">manually send the Token(s) you would like to dispense along with some BTC</mark> to cover the BTC fee’s associated with creating the dispenser.
* You can read up on [Viewing, Creating and Importing Addresses](/freewallet.io-user-manual/freewallet-functions/viewing-creating-and-importing-addresses.md) section if you have questions on how to access addresses on your account other than the default “Address #1” as well as how to quickly add new addresses to your wallet for this purpose.
* <mark style="color:yellow;">In the event you would like to Dispense multiple tokens</mark> as a 'bundle' with a single BTC price for all items in an active dispenser. It is possible to set up multiple dispensers on the same Counterparty address <mark style="color:yellow;">each with the same BTC price</mark> and this function will cause them all to be dispensed if bought for that bundle BTC price.

[This video below](https://www.youtube.com/watch?v=EmV_xAf-nRA) by RobotLoveCoffee <mark style="color:yellow;">shows a visual process</mark> on how to create a dispenser, though take note that in his example the Source and Dispenser addresses are different.&#x20;

{% embed url="<https://youtu.be/EmV_xAf-nRA>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://davestaxcp.gitbook.io/freewallet.io-user-manual/freewallet-functions/setting-up-a-dispenser.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
