Wrapped Tezos (wXTZ) FAQ and Docs
This space will guide you through the recently asked questions about wXTZ and connect you to our Github/APIs.
Wrapped Tezos (wXTZ) is a fully collateralized representation of XTZ conforming to the FA1.2 token standard - a collateralized staking position that unlocks the power of DeFi.
- LIQUID — wXTZ will be liquid and may be used as a standard developer building block (FA1.2) for Tezos DeFi, and to participate in DeFi systems on Tezos.
- COLLATERALIZED — Each wXTZ token will be collateralized with 1 Tez (XTZ).
- REWARDS — Locked XTZ generates staking rewards from the baker of users' choice.
- SECURE — The suite of wXTZ contracts is audited by Trail of Bits and managed by StakerDAO.
- FEES — Interacting with wXTZ will have no fees by StakerDAO at launch (contracts interaction requires only the standard network fees on the Tezos network). Changes to the fee structure will be managed by the StakerDAO governance process. NON-CUSTODIAL - XTZ used to collateralize wXTZ is managed by the user's private keys. Only the user has access to their XTZ vault.
Following the launch of the wXTZ beta, Stove is building a website to allow anyone to create wXTZ vaults with the Thanos wallet. To learn more about Stove Labs wXTZ Vault Manager, click here.
- At launch, wrapping is available in Galleon wallet. Additional services to wrap XTZ and manage wXTZ vaults can be deployed by the community.
- Users who wrap their XTZ can delegate their baking rights to their baker of choice.
- DEVELOPER TOOLS — wXTZ will be liquid and may be used as a standard developer building block (FA1.2) for Tezos DeFi. Wrapped Tezos conforms the base layer asset to the FA1.2 token standard making it easier for builders to work with the L1 asset in their DeFi applications and Dapps
- INCREASED YIELD — Receive staking rewards while utilizing wXTZ to further increase yield (e.g use your wXTZ in yield generating dApps and DeFi applications while continuing to receive your baking rewards from your baker of choice).
wXTZ was the eighth proposal submitted by the Staker Operations team (Ops) based on STKR token holder feedback. The purpose of the proposal was to introduce two major developments to the StakerDAO ecosystem, STKR 2.0 (STKR) and Wrapped Tezos (wXTZ).
Proposal 008 - StakerDAO 2.0 and Wrapped Tezos (5L8LRHCaB) Upvoters
October 18, 2020 at 4:54 PM
October 18, 2020 at 11:01 PM
October 19, 2020 at 3:15 PM
October 21, 2020 at 4:36 PM
- 80% Council Participation
- 4/5 Votes Cast
Currently the wXTZ contracts are controlled by the Staker Council. They can pause or upgrade them, and can change certain parameters like tax points (which are currently set to 0%). Following the STKR Gov 2.0 rollout, these control points will move to community control.
*Please note transactions may take up to a few minutes*
DO NOT SEND YOUR WXTZ TO THE KT1 ADDRESS OR THE TOKEN CONTRACT ADDRESS (...NaH). ONLY SEND TO YOUR TZ1 MANAGER ADDRESS!!! PLEASE USE TEST DEPOSITS.
Step 1: If you haven’t already, download the Galleon Wallet application: Link *Always verify your links. Galleon links are available from the Cryptonomic website. (https://cryptonomic.tech/galleon.html).
Step 2: If you already use Galleon, this will be an update. You will be able to use your current keys. If you are new to Galleon, open up the application and “Create New Wallet” Note: You may use a Ledger, however, your Ledger will display the transactions as an “Unrecognized Operation” as the Tezos ledger app doesn’t support parsing smart contract invocations. There is no need to be alarmed.
Step 3: New users will go through the process of creating a password, creating a new account, and backing up your seed phrase
A Vault is a special tool (smart contract) that lets the owner deposit and lock Tez (XTZ) collateral to generate wXTZ.
- Users can return wXTZ and unlock their XTZ at any time.
- XTZ/wXTZ Vaults are non-custodial and are managed by the user’s private keys. Only the user has access to their XTZ/wXTZ vault.
Step 4: Once you're inside the application, you will see the main page as well as your tz1 address. You will need to send yourself XTZ to mint wXTZ if you do not yet have XTZ in the wallet.
Step 5: After you've received XTZ into your Galleon wallet, click on the wXTZ image on the left hand side under "Tokens". Then click on the "Vaults" tab.
Step 6: Select “Deploy New Vault”. You can select your baker of choice, the gas price to confirm the transaction, and your password to confirm origination. You can always change your baker later. Note: You can find a list of bakers on a site like Baking Bad or directly on the baker’s website.
Step 7: Once your transaction is confirmed, you will be able to add XTZ into the Vault. Please select an amount, and the Tezos network transaction fee.
If you are not using a ledger, you’ll need to enter your wallet password before hitting “Deposit”.
If you are using a ledger, simply hit “Deposit” and confirm the operation on your ledger. Remember, the Tezos Ledger app can’t parse custom operations so the operation will be displayed as “Unrecognized Operation”. There is no need to be alarmed.
price, and your password then click “Deposit”.
Step 8: You now have Wrapped Tezos (wXTZ)! You can always add more XTZ into your Vault, add/change your baker under "Set Delegate", or withdraw, which we will discuss further below.
Step 9: If you want to send your wXTZ elsewhere like to Thanos (check out our Thanos guide further below), select the “Send” tab. You can input the tz1 address, the amount, the network fee, your password, and “Send”.
Step 10: At any point in time, you can send wXTZ back to Galleon. Make sure to use the tz1 address on your Manager address page!
Step 11: Lastly, if you want to withdraw the XTZ in your vault, go back to the “Vaults” tab and click on a Vault you want to withdraw from. You will have to hold an equal amount of wXTZ in the Galleon wallet to the amount of XTZ you want to withdraw. Note: wXTZ tokens are fungible and therefore any wXTZ is redeemable for the XTZ in your vault
Step 12: You can now send your XTZ wherever you would like using the main page "Manager Address" -> "Send" tab.
If you aren’t familiar with DEXter, DEXter is a decentralized exchange on Tezos. In the guide below, we’ll walk through trading on DEXter as well as providing liquidity.
Step 1: First, you’ll want to set up a wallet to connect to DEXter. There are several options, but the most popular may be Thanos.
Step 2: After you have your wallet ready, you’ll also want to make sure you have XTZ or wXTZ in your wallet, depending on which pair you want to trade. Or both if you’re depositing liquidity.
Step 3: Next, you’ll want to click on “Connect Wallet”.
Step 4: After you’re connected, you can easily begin trading on the “Exchange” tab. The image below shows the setup to trade wXTZ for XTZ. However, you can click on the arrow buttons in the middle to trade XTZ for wXTZ.
Step 5: Enter an amount to trade and click on “Exchange wXTZ for XTZ” or “Exchange XTZ for wXTZ”.
Step 6: You’re all done! Note: If you’re trading a large amount, you may need to allow for greater slippage.
Step 7: If you want to add liquidity, you’ll navigate to the “Liquidity Pool” tab -> “Add Liquidity”.
Step 8: Enter an amount to add and click on “Add liquidity”.
Step 9: You’ll see your share of the liquidity pool on the right side, however, these LP tokens are not transferable.
Step 10: If you’re ready to exit the liquidity pool, navigate to the “Remove Liquidity” section.
That should be everything you need to get started on DEXter!
A note about the expected volatility of wXTZ: Wrapped Tezos represents a new asset class on Tezos. It is directly exchangeable for 1 XTZ but only by users who have a XTZ vault with a positive balance and a desire to burn wXTZ can unlock their XTZ. At any given time, especially before there is ample external utility and more liquidity for wXTZ, it is likely that wXTZ will not stay closely pegged to XTZ. Expect significant volatility.
Step 1: Click on MetaMask and scroll down in the Assets tab to "Add Token".
Step 2: Select "Custom Token" and input the following information:
wXTZ Token Contract:
Token Symbol: wXTZ
Decimals of Precision: 6
StakerDAO has provided some basic documentation below. Feel free to reach out to us at [email protected] if you need help integrating or further clarifications.
- 1.A FA1.2 Compliant Token: Controls the wXTZ tokens
- 2.Many “Vault” Contracts which are originated for users. Vaults hold Tez which collateralize the wXTZ tokens
- 3.A “Core” contract which originates Vaults on behalf of users and which coordinates interactions between Vaults and the token contract.
StakerDAO manages a Delphinet and Mainnet deployment of Wrapped Tezos. Relevant contract addresses are:
There are no “authoritative” vault contracts as there will be many vaults contracts.
The token contract conforms to the TZIP-7 specification for an FA1.2 contract. Developers should refer to the specification to understand how to interact with the token contract.
The Core contract is permissioned. The only functionality available publicly is the ability to request a vault.
Users can request a new vault by:
- Packing bytes representing the vault owner and initial delegate in the form of pair (option key_hash) address, where the optional key_hash is the initial baker and the address is the vault owner
- Invoking the Core contract with: Amount = 0 XTZ Entrypoint = ‘runEntrypointLambda’ Parameter = ‘Pair “createOven” 0x<bytes from step one>’
An example Vault contract can be seen at KT1DsemgwT17v6Ch93oRheHwKFGCkdXRjUwP. Remember, there are many vaults.
Vaults have an “owner” who owns the rights to the XTZ in the vault. This field can be seen in the Vault’s storage.
Users can perform three functions:
1.Deposit: Locks XTZ in the vault and mints wXTZ to the Vault Owner’s address. Anyone can deposit into the vault.
Invoke the Vault contract with:
- Amount = <Amount to deposit>
- Entrypoint = `default`
- Parameter = ‘Unit’
2. Withdraw: Burns wXTZ from the Vault Owner’s address and transfers XTZ from the Vault to the Owner’s address in the vault and mints wXTZ to the Vault Owner’s address. Only the Vault owner may call withdraw.
Invoke the Vault contract with:
- Amount =0 XTZ
- Entrypoint = `withdraw`
- Parameter = ‘<nat>’ : A natural number representing the number of mutez to withdraw.
3. SetDelegate: Sets the baker for the Vault. Only the Vault owner may call SetDelegate.
Invoke the Vault contract with:
- Amount =0 XTZ
- Entrypoint = `setDelegate`
- Parameter = ‘Some <baker address>’ or ‘None’ :
As part of wrapping XTZ, users will be able to delegate their vault to a Baker of their choice. Many XTZ holders will want to continue their relationship with their existing Baker, and we are providing this information so that you can support these users, and successfully interact with the wXTZ contract when you send users their rewards.
Rewards payout fees:
Bakers should be aware that staking done through the wXTZ contracts will increase reward payout fees. This is because the wXTZ smart contracts execute code upon receiving rewards.
Additionally, Bakers should be aware that the StakerDAO governance model may upgrade wXTZ smart contracts from time to time which may change payout fees. Therefore hardcoding fees is not recommended.
Bakers should contact the distributors of their reward distribution software to better understand the options available to them. StakerDAO is in conversations with Tezos Rewards Distributor (TRD) to support this functionality out of the box.
If you’d like to hardcode fees to payout vaults, we recommend the following parameters for maximum safety:
- Fee: 0.018000 XTZ (18000 Mutez)
- Gas Limit: 150,000 units
Storage Limit: 10 bytes
StakerDAO partners can offer more useful tools to end users with wXTZ.
The “Vault and mint” solution offers new value-added services, such as the ability to create a vault and mint the wrapped token for clients wishing to increase yield
Staker integration Partners — reach out to [email protected] to offer vaulting and minting services to your customers.