Automated Asset Management with Set Protocol.

Learn how to obtain baskets of tokenized assets that automatically rebalance based on a strategy of your choice.

DISCLOSURE: As always, this is not investment advice. Please do your own research before investing. I am not affiliated with or compensated by featured products.

Special thank you to Anthony Sassano for providing valuable feedback on this tutorial.

Set Protocol:

What is Set Protocol?

Set Protocol is a system of smart contracts developed by the Set Lab team and deployed on the Ethereum blockchain. Using this system developers can create “Sets” which are tokenized baskets of assets (e.g. 60% Ethereum + 40% Bitcoin) that are automatically rebalanced (bought & sold) based on any number of programmed conditions (e.g. Moving Averages, Bollinger Bands, RSI). Set Protocol is providing key building blocks that enable anyone to create their own ETF, hedge fund, robo-advisor, and other completely new products.

The protocol is open (anyone can create and deploy Sets), non-rent seeking (no fees for creating / buying / selling of Sets), and currently supports 4 assets: ETH, DAI, USDC and Wrapped Bitcoin (WBTC).

Set Protocol intends to begin with a centralized governance in the early days and shift over time to a community-based governance system. Even though smart contract code gets regularly audited by 3rd parties, new bugs might get discovered after the contracts have been deployed to the public. Essentially the team wants to be able to intervene in case critical vulnerabilities are discovered in faulty smart contracts.

TokenSets is the first front-end application built by the Set Lab team to help users interact with the Set Protocol smart contracts. To start, the team composed a couple of Sets defined by some popular trading strategies which are represented as ERC20 tokens on the Ethereum blockchain. These strategies are displayed on TokenSets website for end-users to browse and purchase (more details about available strategies during the tutorial below). TokenSets is just one example of what developers can build using Set Protocol.

Why is this special?

As mentioned in our ‘Intro to DeFi’ post, blockchain technology is doing to finance what the internet did to the media by democratizing the creation of new financial instruments.

Financial entrepreneurs of tomorrow are building open alternatives to traditional asset management products, and creating entirely new use-cases where back-end operations are handled by Set + other viable protocols.

Walk-through using TokenSets:

Prerequisites: In order to start using TokenSets you will need ETH to purchase Sets. Go over steps 1-5 in our Compound tutorial to learn how to set up your wallet and purchase ETH.

  1. Visit, sign in using your wallet and start browsing available trading strategies.

  2. Set Protocol’s team made some great educational content to help you better understand each strategy. Visit to learn about ‘Trend Trading Sets’. To sum up:

    • Sets are ERC20 tokens that represent a claim on the underlying assets composing each Set.

    • Each Trend Trading Set is composed of either 100% the target asset (e.g. Bitcoin, Ether) or 100% a stable asset (e.g. USDC, Dai) at any given point based on the implemented strategy (e.g. Moving Averages) that indicate when to enter and exit a position. 

    • A set amount of time has to pass in between rebalances.

    • Currently there are 2 Trend Trading Sets available on TokenSets and they are both based on Moving Averages.

    • Each Set has a dedicated page to view set’s historical performance, underlying asset allocations, next rebalance criteria, and other key facts.

    • ETH20MACO / ETH50MACO Sets automatically trigger rebalances when the price of ETH crosses the 20 / 50 Day Simple Moving Average. For example, as of this writing the ETH20MACO Set is composed entirely of USD because all underlying ETH was converted to USD during the last rebalance on August 9th when ETH breached it’s 20 Day SMA. So if you were to purchase this Set right now with 10 ETH, your 10 ETH would be immediately converted to USD and held until ETH crosses 20 Day SMA again (~$192 and moving down).

    • Keep in mind the network fee is not based on the value of your transaction, it’s dependent on how congested the Ethereum network is at the time of the Set minting. In my case the network fee turned out to ~$1.40

  3. Range Bound Sets automate buying when prices go down and selling when prices go up to  capture local maxima and minima. The ETH High Volatility Set automatically rebalances cash (DAI) into ETH if the price of ETH drops more than 50% and ETH into cash (DAI) if the price of ETH rebounds more than 40%.  For example, if you were to purchase this Set right now with 10 ETH, half would be kept in ETH while the other in DAI (as shown in the ‘Underlying Assets’ section on

  4. Buy and Hold Sets automatically rebalance underlying assets to maintain a fixed ratio over time. When you buy the BTC ETH 75% / 25% Weight Set, your assets are allocated at 75% BTC / 25% ETH and rebalance every month to maintain the 75% BTC / 25% ETH target allocation.

  5. What happens after you purchase a Set?

    • Follow your Set’s ‘Next Rebalance’ section where you will see which criteria still need to be satisfied to initiate a rebalance.

    • Once the Rebalance is ready the Set enters the proposal period, a grace period where Set token holders can review the proposed rebalance parameters and either opt in - letting the system automatically adjust your underlying assets based on proposed rebalance.

    • Alternatively, if you do not agree with the proposed rebalance, you can opt out by redeeming your Set tokens for your underlying assets BEFORE rebalancing phase begins. 

  • If you are interested in building asset management products using Set Protocol visit their developer portal to learn more:


Nodar.DeFiZap.eth @NodarJ
1/ Incredibly proud to share our Kyber hackathon project: - allocate your capital across @compoundfinance @b0xNet @tokensets and others, in a single transaction. Zap is a smart contract that auto-spreads incoming deposits based on pre-set allocations 👇F