Balancer 101: Smart Pool Overview
What Are Smart Pools and Why Do They Matter?
In the first installment of our educational series we provided you with a foundational understanding of Balancer and blockchain in general. We covered topics like decentralization, smart contracts, DeFi, market making, and liquidity pools. Gaining a solid grasp of these concepts is essential before moving on, as we will build on them in the articles to come.
Today’s lesson is going to be on Smart Pools — one of Balancer’s core DeFi innovations.
Review — Smart Contracts
Recall that smart contracts are lines of code stored on the blockchain that automatically carry out a function once a condition is met. Their automated nature makes these contracts “smart” — as they do not require a human input to execute. Liquidity pools and AMMs are smart contracts, but smart contracts can also be used to build a variety of other decentralized applications.
Let’s consider what would happen if we were able to chain together a series of smart contracts. Perhaps a smart contract could be created that would govern the actions (or inputs) of another smart contract. This is what Balancer did when they invented Smart Pools.
Traditional liquidity pools are smart contracts that weigh groups of tokens against each other, “pooling” them together to determine a market price for each token. These pools are continually rebalanced by traders, and generate fees for liquidity providers each time a trade is executed. The pool’s settings — such as what tokens are included, and the trading fee — are set in stone when the pool is first created, and cannot be further altered.
Smart Pools are the next generation of liquidity pool, enabling pool creators to continually adjust the parameters of their pools after launch. They can save creators gas fees (since the creator doesn’t have to create a new pool for each setting change), respond to market conditions, increase profitability and enable countless new use cases.
Smart pools have six variable parameters that pool creators can set and change at will. These variables are:
- Change Tokens — allows the pool controller to change which tokens are included in the pool.
- Change Weights — allows the pool controller to change the proportions used to balance the pool tokens.
- Change Swap Fee — allows the pool controller to adjust the fee the pool collects from each trade to suit market conditions.
- Limit LPs — allows the pool controller to restrict who has permission to interact with the pool.
- Limit Max Deposited Value — allows the pool controller to place a cap on the total value that the pool can hold.
- Start/Stop Trading — allows the pool controller to protects from “front running” and can be used to stop impermanent loss during times of large volatility.
These variables can be utilized in any combination to form a pool that accomplishes your goals.
Before we get to the really exciting stuff, we need to cover blockchain oracles. In the context of blockchain, an oracle is anything that can connect a blockchain with off-chain data. As we established in the previous article, blockchains are fantastic at storing and managing data, but they are a closed system. It’s only through utilizing an oracle that “off-chain” (or real world) data can be referenced by smart contracts.
The nature of Decentralized Finance means smart contracts must refer to live price feeds in order to perform many desirable functions. Whether it’s the price of Ether, commodities like gold or silver, a stock or stock index; or complex derivatives — an oracle is what gets that data on-chain so the smart contract can read it and act accordingly.
This is how oracles work in the most general sense, but the way that an oracle looks can vary greatly. Oracles can be used to provide data from all sorts of sources, like physical sensors measuring external variables (temperature, humidity, etc), a person with special knowledge, or online data feeds from websites.
Oracles have varying features which impact the types of data sources they can use, plus how fast, reliable and secure they are. These factors must be carefully considered when choosing what type of oracle and data source(s) to use. In DeFi we typically prefer to use decentralized oracles that acquire data from multiple trusted sources and validate it, to minimise the risks of any given source providing “bad” data, deliberately or otherwise. Here is a useful video for understanding oracles and the problems they solve.
Oracles + Smart Pools = Limitless Potential
Now that we have established an understanding of Oracles and Smart Pools, let’s explore the powerful possibilities that they enable when used together. Perhaps the most valuable aspect of DeFi is that the entire ecosystem is composable — meaning that everything people create can be combined and used in tandem to create new and unique innovations. A common analogy used is that DeFi smart contracts are “money legos” that developers can combine to create other applications.
Imagine a tech-savvy entrepreneur uses a smart contract to create a Smart Pool — so that the contract itself is the “controller” of those variable parameters. Next, let’s say that the contract integrates an Oracle that measures market volatility and other trading indicators, to use as inputs that automatically adjust the pool variables. A smart pool created in this manner has the potential to drastically outperform regular liquidity pools, increasing a Liquidity Provider’s returns.
The rest of this series will be dedicated to understanding some of Balancer’s pilot smart pool configurations. This list will by no means be exhaustive — but it will give you a sense of the breadth of innovation that Smart Pools make possible! We’ve only just started.
For more information on Balancer, please check out the documentation and join the community on Discord / the Balancer forum. If you have any questions about Balancer, Smart Pools or using Balancer’s “money legos” as a developer, there are always people around on Discord who’d be delighted to help.