> For the complete documentation index, see [llms.txt](https://docs.prl.one/buttonwood/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.prl.one/buttonwood/learn/elastic-supply-assets/buttontoken.md).

# ButtonToken

The `ButtonToken` is an ERC20 *wrapper*. It takes an underlying asset and creates a new asset which rebases to $1/token while tracking the value of the underlying token. &#x20;

There will be an instance per underlying asset, for example:

* buttonETH: An asset where each token is $1, but the value tracks the price of ETH.
* buttonBTC: An asset where each token is $1, but the value tracks the price of BTC.

Example:&#x20;

* A user deposits 1 ETH into buttonETH at a current price of $4000. They receive 4000 buttonETH tokens, each worth $1.&#x20;
* Price of ETH increases to $6000. The user now has 6000 buttonETH tokens, each worth $1.&#x20;
* Price of ETH decreases to $3000. The user now has 3000 buttonETH tokens, each worth $1.&#x20;

As you can see, the user's *total wallet balance* remains equivalent to holding the underlying tokens. However, their tokens now have a stable price and are much more fit for creating contracts and interacting with the Buttonwood ecosystem. An additional benefit is that it saves gas.

&#x20;
