Issue & Redeem Sets

Learn how to issue and redeem Sets via


Set Contracts have the ability for Investors to provide their own collateral via their connected wallet to Issue a desired Set token in return, inversely Investors are able to Redeem Set tokens in return for the their allocation of the underlying collateral.

Issue & Redeem Menu

Comparison: Issuing & Redeeming vs Buying & Selling

So whats the difference between Issuing/Redeeming a Set & Buying/Selling, and is there any benefits of one approach over another? Lets go over a couple of examples to understand the user journeys from an Investor PoV.

For the following examples:

  • EXAMPLE is a Set token comprised of WBTC, WETH & DPI that the Investor is intending to buy or issue.

  • 1 EXAMPLE is required to be 100% collateralised by 0.01 WBTC, 0.1WETH & 1 DPI

Example 1: Buy Button, Investors Journey

The Investor buys 100 EXAMPLE Set tokens via TokenSets (Buy & Sell Sets) for 50 ETH

  1. The Investor accepts proposed transaction to buy 100 EXAMPLE tokens for 50 ETH.

  2. The required 50 ETH gets sent from the Investor wallet to the Set Contract.

  3. The Set contract creates a series of DEX orders via a 0x API Router to convert the received 50 ETH into all the underlying assets in the correct quantities that constitute to 100 EXAMPLE tokens. In this example case, 100 EXAMPLE requires 1 WBTC, 10 WETH & 100 DPI of collateral.

  4. The Set contract, now holding the underlying assets ensuring 100% collateralisation, issues 100 EXAMPLE tokens and sends them to the Investors connected wallet, completing the Issuance transaction.

Example 2: Issue Button, Investors Journey

Now lets compare this to how an Investor can use the Issue button to mint 100 EXAMPLE tokens, comprising of WBTC, WETH & DPI, using their own provided collateral.

  1. The investor accepts the proposed Issue transaction to convert 1 WBTC, 10 WETH & 100 DPI, that he currently holds within his wallet, into 100 EXAMPLE tokens.

  2. The required 1 WBTC, 10 WETH & 100 DPI gets sent from the Investors wallet to the Set Contract.

  3. The Set contract, now holding the underlying assets ensuring 100% collateralisation, issues 100 EXAMPLE tokens and sends them to the Investors connected wallet, completing the Issuance transaction.

What's the difference?

Looking at both examples, it's clear that the difference between buying via single asset and issuance via provided collateral is that with the latter there is no need for the smart contract to perform all the respective trades on your behalf meaning that the operation is far less gas intensive and cheaper to execute. However, this is on the assumption that you own the required collateral in the first place. Issuance may also be of advantage to large Investors that source better exchange deals and rates elsewhere and want to provide their own collateral, avoiding slippage.

In any case, both options are available and by understanding how they work gives you the knowledge to execute the most capital efficient method for you.

Note: Both examples are representative of an Investor wanted to trade their own assets for Set tokens, however, it's worth noting that the Redemption and Selling process follows the exact same concept, just with the logic reversed.

Example 3: Redeem Button, Investors Journey

In this example, Investor can use the Redeem button to burn 100 EXAMPLE tokens and receive the underlying collateral back into their connected wallet (WBTC, WETH & DPI).

  1. The investor accepts the proposed redemption transaction to convert 100 EXAMPLE tokens, that he currently holds within his wallet, into 1 WBTC, 10 WETH & 100 DPI.

  2. The required 100 EXAMPLE tokens gets sent from the Investors wallet to the Set Contract.

  3. The Set contract, now holding the EXAMPLE tokens that represents a portion of the underlying Set collateral, then burns 100 EXAMPLE tokens and sends the representative collateral (1 WBTC, 10 WETH & 100 DPI) back to the Investors connected wallet, completing the Redemption transaction.

Why redeem a Set?

When you sell a Set token via the Sell button, you instruct the smart contract to liquidate the underlying collateral, burn the Set token and receive a single asset in return (e.g. ETH). In contrast the redemption process burns the Set token and frees your underlying collateral from a Set in a less gas intensive transaction whilst also having the major benefit of zero slippage if the Investor remains bullish on the assets and just wants custody again.

Set Issuance

Direct Set Issuance

To Issue a Set via TokenSets you first need to navigate to the particular Sets details page. For the example of the DeFi Pulse Index that would be here. Once you're on the Set details page you then have access to the Issue & Redeem buttons pictured below to show the overlay.

The next step is granting token approval permissions to the Set smart contract via the overlay below. At the bottom you will see a button that allows you to approve all the underlying tokens with one batched transaction to save time.

Issue Flow - Token Approvals

Once the underlying tokens are approved, you will be presented with the main Issuance overlay where you can provide the underlying assets required to Issue the desired Set Tokens. Pressing the Max button calculates the total amount of issuable Set tokens based on the quantity of eligible assets you hold within your connected wallet. Once you have completed the form, press Issue to preview the transaction.

Issue Flow - Preview Module

For this example, we are connected to TokenSets via the MetaMask browser wallet which facilitates the transaction preview appearing. Once we confirm the proposed transaction, the required assets are sent from the connected wallet to the underlying Set smart contract, which, in turn issues the respective Set token back to your connected wallet in return, completing the issuance flow.

Set Redemption

Redeeming a Set on TokenSets from a UI perspective is an almost identical process to the Issuance user journey. The difference lies in the preview module where you can input how many Set tokens you want to transact, and currently hold within your connected wallet, and send to underlying Set smart contract in return for the corresponding collateral.

Redemption Flow - Preview Module