Introducing {Set} Protocol

A Specification for a Decentralized Basket of Tokens

Felix Feng
Set Labs
Published in
4 min readNov 14, 2017


Today, we are announcing {Set} protocol, a standard interface for a collateralized basket of ERC20 standard tokens. Our mission is to help build the decentralized world by utilizing the concept of abstraction in novel ways on the blockchain.

Learn more at, read the whitepaper, check out the code, or join us on slack. In the coming weeks, we will be launching a beta client that allows for the creation, issuance, redemption, and exchange of {Set}s.


With the advent of Initial Coin Offerings (ICOs) and the tokenization of digital and non-digital assets, there is an explosion of new cryptographic tokens. We have thousands of tokens represented on CoinMarketCap, and a long tail of others that are not listed. As the ecosystem develops and more assets get tokenized at an increasing rate, it is possible that there will be millions or even billions of tokens.

With more and more tokens, there is growing complexity and pains with dealing with these tokens. In addition, the transaction fees of dealing with a multitude of tokens grows linearly with the number of tokens that are needed to transfer. For example, if one wants to send 100 tokens one would need to broadcast 100 transactions and thus pay 100 transaction fees. The problem is that there has not been a standard for thinking about and dealing with a multitude of tokens as one token.

The basics: {Set}

We introduce the {Set} (the braces reminiscent of the mathematical set), a standard for an abstract token fully collateralized by its underlying tokens. {Set}s allow users to group together different tokens and synthesize them into a single higher-order token that represents its underlying parts. The reverse process, redemption, allows users to split a {Set} back into its underlying parts. With {Set}s:

  • Anyone can construct and exchange complex financial instruments such as market indices, index funds, or ETFs.
  • Decentralized application developers can present higher-level abstractions and help users save gas and trading fees.
  • Organizations such as governments and enterprises can efficiently mass-distribute packages of goods and services to a variety of users.

{Set}s are trustless, as smart contracts autonomously hold the underlying tokens as collateral.

Our first target: Index / ETF token

Given the popularity of investment in decentralized projects, we believe the Index / ETF tokens are the first killer use case of {Set}s. {Set}s allow anyone to:

  • Create and issue their own basket of tokens for investment
  • Save gas and exchange trading fees by transacting a single token instead of many
  • Benchmark portfolio performance against a market index {Set} token
  • Create advanced derivatives by combining {Set}s with decentralized loans or options

Therefore, we are initially focused on building a web application and tools that allows investors and developers to create, issue, redeem, and exchange {Set}s easily.

The vision: {Set} as a tool for abstraction

In software engineering and computer science, abstraction is a tool that allows programmers to think on a certain level of complexity, hiding the details not important to the problem at hand. In blockchains, we see abstraction as an underutilized tool.

While our vision begins with joining tokens together into token {Set}s, we envision other elements being joined together such as:

  • Addresses or identities to form a higher-order entity such as a family or company
  • Smart Contracts with similar interfaces where we can do atomic map-reduce actions across smart contracts

Given the mathematical upbringings of {Set}, many ideas behind set theory and group theory apply — much of which has been largely unexplored in the blockchain space.

As this is just the beginning for {Set}, we will be forming a non-profit foundation that will continue research how {Set}s can be applied to solve hard decentralized problems.

{Set} Community

{Set}s aim to be a building block that can be used to build increasingly complex decentralized applications, and we want to emphasize that {Set} protocol is a community-based effort. {Set} will only be as successful as the community that rallies behind it.

With this ethos, we are releasing our whitepaper and code for review. We will also proposing to make {Set} an EIP, inviting participation from the Ethereum developer community. We also plan to be open sourcing all of our tools that make it easy for us to utilize {Set}s.

What’s Next

We’re just getting started with {Set}. Engage with us by joining our slack channel, signing up for our update list, or by saying hello if you’re interested in helping out. To be clear, we do not plan to have an ICO or offer a token.

In the next few weeks, we will be launching our beta client and providing updates about our roadmap, foundation (non-profit), and spokes (for-profit).



Felix Feng
Set Labs

Founder of Set. Investor @TuringCap. Previously @Radius & B.S. @UCBerkeley